Programming Principles is a categorized reference guide to software design principles and programming practices. It is intended to support developers during implementation, architecture discussions, code reviews, and maintenance. The collection covers foundational ideas such as KISS, YAGNI, DRY, separation of concerns, and avoiding premature optimization. It also explains relationships between components through coupling, cohesion, composition, orthogonality, and inversion of control. Object-oriented guidance includes SOLID, encapsulation, substitution, interface segregation, and command-query separation. Testing sections introduce FIRST and Arrange-Act-Assert, while each topic includes reasoning, practical guidance, and links for further study.
Features
- KISS, YAGNI, and DRY principles
- SOLID design principles
- Coupling and cohesion guidance
- Composition and dependency management
- Testing design principles
- Further reading for each concept