References
Architecture
Clean Architecture - Robert C. Martin (Prentice Hall) Part 3 "Design Principles" dedicates one chapter to each of the five SOLID principles, with worked examples and the motivation behind each. Part 5 "Architecture" covers the Clean Architecture philosophy in depth.
Clean Code - Robert C. Martin (Prentice Hall) Practical guidance on writing readable, maintainable code. Covers naming, functions, comments, formatting, and error handling with concrete before/after examples.
Online references:
- The Clean Architecture - Robert C. Martin, 2012
- SOLID Relevance - Robert C. Martin, 2020
C++ Software Design
C++ Software Design - Klaus Iglberger (O'Reilly) A modern treatment of software design specifically for C++. Covers classic design patterns reimagined for C++17/20, including value semantics, type erasure, and the trade-offs between object-oriented and value-based approaches. Highly recommended for contributors working on the OCUDU core libraries.
OOP Design Patterns
Design Patterns: Elements of Reusable Object-Oriented Software - Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (Addison-Wesley) The original "Gang of Four" reference catalogue for software design patterns.
Head First Design Patterns - Eric Freeman & Elisabeth Robson (O'Reilly) An accessible introduction to design patterns with many examples and a step-by-step teaching style. A good starting point before tackling the GoF book.
Online references: