Jaune's Book.
- KISS - Keep It Simple, Stupid!
- DRY - Don't Repeat Yourself
- SOLID
- YAGNI - You aren't gonna need it
- best practices should be the easiest way
- The Early Days of Id Software: Programming Principles
- Agile Principles
- Fail-fast, Fail-safe and Fail Gracefully
- Comprehensible
- code should be easy to understand
- naming matter
- Explicit
- no ambiguity nor black magic
- complexity should be visible
- Flexible
- easy to iterate
- adding new features should be simple
- feature flags
- Stable
- fail as soon as possible (compile time, boot)
- fail gracefully
- failing is not a execption
- Testable
- code should be testable
- UI should be testable
- behaviors should be testable
- Observable
- log should be easy
- npm - install recursively packages using dependencies discribe in the
package.json
- TypeScript - JavaScript but typed
- Webpack - bundle your application, using modules' dependencies, everything is be a module
- React
- SSR - Server side rendering
- Error Boundaries - Fail gracefully
- CSS Modules - Make CSS modular
- SCSS - CSS but 'better'
- lerna - Multiple package in on repo
- .nvmrc - Switch node environment (nvm, nvs)
- engineslist - Check node environment
- browserslist - Check browser environment
- Semantic Versioning - Versions have meaning
- Conventional Commits
- Conventional Changelog
- commitlint
- husky
- lint-staged
No implicit globals
testing frameworks
ICU, extract strings