Chapter 2 - A Pragmatic Approach Flashcards

1
Q

What is ETC?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is DRY?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What ortogonatity means?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What cohesion means?

A

A module is cohesive if it is independent, and it has a well-defined purpose to exist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Reversibility

A

We should avoid irreversible decisions. We should always abstract Third-Party-Libraries and vendors. In this way, we can swap implementations very easily.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is Tracer Bullet?

A

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 well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

How does people estimate in the Real World?

A

People usually estimate with a range of scenarios instead of a single number.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly