- Rely on automation/IDE
- Strive for pragmatism
- Don’t add bells and whistles (newlines, spaces for “beauty”, ordering imports etc.)
- Avoid unnecessary stylistic changes
- They increase the chance of git conflicts (esp. in imports)
- They make it harder to review the PR
- Ultimately, a waste of time
- Write small functions that do one thing with no side-effects
- Compose small functions to do more things
- Same with components: don’t write giant components, write small composable components
- Prefer
map/filteroverreduce/forEach - Watch out when using destructive methods like
poporsort(yes,sortis destructive!) - Avoid initializing things on the module level, prefer to export an init function instead
- Keep in mind the React component life-cycle, avoid excessive re-renders
- Glue regular JS functions and events with React using hooks
- Write small
useEffecthooks that do just one thing and have only necessary dependencies
Infamously, the hardest problem in computer science.
- Components are classes, so their names should be in PascalCase
- Config-like constants should be in UPPER_CASE, e.g.
INFURA_URL - Regular
constvariables should be in camelCase - Avoid prepositions in variable names:
🙅restoreFromLocalStoragerestoreStoredValue👍
- Try to name boolean vars with
is, e.g.isLoadingvsloading - If something needs to be exported just for unit tests, export it with a
_prefix, e.g._getOnboardConfig