Logic should appear in only one place.
Leave it better than when you found it.
Use domain-specific types.
Write software that is loosely couple with high cohesion.
Will your code stand the test of time?
The code should communicate the intent of the developers.
You don’t speak in code, but you can make the code speak to others.
This is a technique that can replace your if/else and case statements.
As in, don’t repeat yourself.
Code that is easier to understand is more likely to be reused.