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

Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be cancelled.
Eoin Woods

Edmond Lau
In his book Software Abstractions, MIT Professor Daniel Jackson explains just how important it is to choose the right abstractions. "Pick the right ones, and programming will flow naturally from design; modules will have small and simple interfaces; and new functionality will more likely fit in without extensive reorganization, " Jackson writes. "Pick the wrong ones, and programming will be a series of nasty surprises: interfaces will become baroque and clumsy as they are forced to accommodate u ...more
Edmond Lau, The Effective Engineer: How to Leverage Your Efforts In Software Engineering to Make a Disproportionate and Meaningful Impact

More quotes...