-
Notifications
You must be signed in to change notification settings - Fork 49
Home
Juliano Lazzarotto edited this page Apr 4, 2024
·
16 revisions
What you should consider when reviewing and coding:
- How declarative is it? (Always prioritize readability)
- Avoid mutations (favour ISA)
- Avoid index accessing (prefer deconstruction)
- Prefer shorthand notations
- Is it properly typed or overtyped? (type based on client, not on dev)
- Pay attention to null/undefined when checking (specially numbers + empty strings)
- Prefer
??
for defaulting - Components should represent its intention (a Button should have an onPress prop, don't break known APIs)
- DRY
- Avoid margins (they are evil) (we won't approve the PR at all)
- Optimize only if you can prove that is slow, or justify (a lot) the why
- Avoid
typeof
prefer schemas and type guards - Import react
import * as React from 'react'
and to identify React hooks -> I.eReact.useCallback
(typescript suggestion) - Avoid leaking implementation (don't leak the motor under the hood) expose a client design API the implementation is irrelevant
- Group up same logic
- Branch logic as soon as you can
- Prefer
=>
overfunction()
(2 rare cases when you shouldn't) - Don’t use
React.useEffect
as part of the logic - Don’t use
try
catch
as part of the logic (errors should crash the app, exceptions should be handled and the app should respond) - Pay attention to the commit lint rules
- Add tests (dahhh)
- Think about your changes as a FSM (this will make other understand it clearly)
- Add stories and cover all states specially the asynchronous ones
© EMURGO Inc. 2024