Software Design


Design Patterns: Elements of Reusable Object-Oriented Software
Domain-Driven Design: Tackling Complexity in the Heart of Software
A Philosophy of Software Design
Head First Design Patterns
Clean Code: A Handbook of Agile Software Craftsmanship
Refactoring: Improving the Design of Existing Code
Patterns of Enterprise Application Architecture
Designing Data-Intensive Applications
Code Complete: A Practical Handbook of Software Construction
Clean Architecture
Implementing Domain-Driven Design
Fundamentals of Software Architecture: An Engineering Approach
Building Microservices: Designing Fine-Grained Systems
Working Effectively with Legacy Code
The Pragmatic Programmer: From Journeyman to Master
Residues by Barry    O'ReillySimulacra and Simulation by Jean BaudrillardOrder Out of Chaos by Ilya PrigogineResilience by David      ChandlerMatter and Memory by Henri Bergson
Residuality
19 books — 1 voter

Will highly comprehensible code, by virtue of being easy to modify, inevitably be supplanted by increasingly less elegant code until some equilibrium is achieved between comprehensibility and fragility? Perhaps simple on the outside/fragile on the inside can be an effective survival strategy for evolving artifacts.
Brian Foote Joseph Yoder

The best features are the ones you get without even knowing they exist.
John Ousterhout, A Philosophy of Software Design

More quotes...