Code Quality


Refactoring: Improving the Design of Existing Code
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
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
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