Chapter 2 - A Pragmatic Approach Flashcards
What is ETC?
It stands for Easy-To-Change. It is the base for best design principles. If the code is easy to change, it means our product can move fast and move well. That has to be our primary goal when developing good code.
What is DRY?
It stands for Don’t Repeat Yourself. It means we should not have duplicated knowledge in our codebase.
Furthermore, it is important to notice that code duplication not always means knowledge duplication. DRY is about knowledge duplication.
What ortogonatity means?
It is a critical concept when building systems. Two modules are orthogonal if they are independent. I.e. they can change without requiring change in the other module.
What cohesion means?
A module is cohesive if it is independent, and it has a well-defined purpose to exist.
Reversibility
We should avoid irreversible decisions. We should always abstract Third-Party-Libraries and vendors. In this way, we can swap implementations very easily.
What is Tracer Bullet?
Tracer Bullet development is ideal for cases when we’re not sure about how a part of the system will be implemented. Using tracer bullet, we implement first the critial parts and then present it to the users.
How does people estimate in the Real World?
People usually estimate with a range of scenarios instead of a single number.