Code Quality


Refactoring: Improving the Design of Existing Code (Addison-wesley Object Technology Series)
Code Complete: A Practical Handbook of Software Construction
Clean Code: A Handbook of Agile Software Craftsmanship
A Philosophy of Software Design
Working Effectively with Legacy Code
Building Evolutionary Architectures: Support Constant Change
Code Health Guardian: The Old-New Role of a Human Programmer in the AI Era
Head First Design Patterns
Unit Testing: Principles, Practices, and Patterns
The Clean Coder: A Code of Conduct for Professional Programmers
Clean Code in Python: Refactor your legacy code base
Beyond Legacy Code
Game Programming Patterns
Agile Software Development, Principles, Patterns, and Practices (Alan Apt Series)
Vladimir Khorikov
“ Tests shouldn’t verify units of code. Instead they should verify units of behavior: something that is meaningful for the problem domain and ideally something that a business person can recognize as useful. The number of classes it takes to implement such a unit of behavior is irrelevant. The unit could span across multiple classes or only one class, or even take up just a tiny method. [...] A test should tell a story about the problem your code helps to share, and this story should be cohesive a ...more ”
― Vladimir Khorikov, Unit Testing: Principles, Practices, and Patterns