Basic
Books
- Structure and Interpretation of Computer Programs
- Is Parallel Programming Hard, And, If So, What Can You Do About It?
- Interactive Linear Algebra
Atomic design
A programming pattern that divides components into different chemical stages to allow reusability as much as possible. Mostly useful for frontend design.
- Atoms
- Molecules
- Organisms
- …
Source: Brad Frost
Coding style
At the linux kernel guideline are some good advices: The linux kernel - coding style Google have some guidelines for some languages as well. Use positive booleans for better readability, like described here | Google Code health
Principles
- YAGNI
- stop thinking about future possible mutation of your actual requirements, just let it simple
Code review
-
Be kind! People are more receptive to feedback if you assume competence and treat them with respect.
-
Focus your comments on the code, not the author. Avoid statements with the word ‘you’ which can give the impression that you are judging the person and not the artifact.
-
Explain why you are making the comment. You may be aware of alternatives that are not obvious to the author, or they may be aware of additional constraints.
-
Express the tradeoffs your suggestion entails and take a pragmatic approach to working with the author to achieve the right balance.
-
Approach your role as a guide, not a test grader. Balance giving direct guidance with leaving some degrees of freedom for the author.
-
Consider marking low priority comments with severity like Nit, Optional, or FYI to help the author prioritize the important ones.
Source: Google testing blog