Software Structure by Design

Software Structure by Design

A Practical Handbook of Clean Architecture, Modular Design, Refactoring, and Maintainable SoftwareBy Rohan Dasgupta
Michael Caine
Listen with Sir Michael Caine™ and 1,000+ voices
Length14h 43m

About this audiobook

You already know your codebase is hard to change. This book tells you which decisions made it that way and what to do next. Software structure is not a matter of taste. It is a set of decisions about coupling, cohesion, and dependency direction that determine how much every future change will cost. Software Structure by Design is a practical handbook for developers, tech leads, and anyone inheriting a codebase they did not design. It shows you how to read the structure you have, understand why it resists change, and reshape it without stopping delivery. The book moves from principles to boundaries to the hard work of making structure stick. You will learn to treat coupling and cohesion as a cost you can measure, invert dependencies so frameworks and databases sit at the edges instead of the centre, and draw component boundaries that survive a release. Separate chapters handle the database boundary, the web boundary, and the honest trade between a modular monolith and services. Then you make the structure durable with fitness checks, the humble object pattern, characterisation tests, strangler migrations, and decision records. A complete worked application runs through every boundary at the end, tying the techniques together. What you will learn: • Read coupling and cohesion as a cost, not an abstraction, and use that reading to prioritise refactoring • Apply paradigms as constraints that shape design rather than as academic rules • Put design principles to work in real code, including dependency inversion and stable abstractions • Draw component boundaries that hold up across releases and team changes • Design the domain layer so business rules stay independent of delivery mechanisms • Place the database and the web/UI at the edges with clear, testable boundaries • Choose between a modular monolith and services based on honest trade-offs, not fashion • Test the architecture itself with fitness checks, characterisation tests, and the humble object pattern • Refactor toward structure safely using strangler migrations and document decisions so the structure survives Written for developers, tech leads, and architects who need to improve an existing system rather than start from a blank page, this book assumes you can write code and want to make the code you have easier to change. If you are responsible for a codebase that has grown beyond its original design, this handbook gives you a clear path from diagnosis to durable structure.

Audiobook details

Rating★★★★★ 4.8 (10)
Includes Amazon
GenreTechnology
Length14 hrs 43 mins
Narrated byListen with 1,000+ voices
FormateBook with Audio
Publish dateSep 27, 2026
LanguageEnglish

Table of contents

1Software Structure by Design
2Foreword
3Preface
4About This Book
5Chapter 1: What Structure Buys You
Show all chapters
61.1 The Cost of Change
71.2 Coupling as a Cost Multiplier
81.3 Cohesion and the Shape of a Module
91.4 Reading a Codebase for Structure
101.5 Architecture Shows Up in Delivery Speed
111.6 What This Book Will and Will Not Claim
12Chapter 2: Paradigms as Constraints
132.1 Structured Programming as Control-Flow Discipline
142.2 Object Orientation as Dependency Direction
152.3 Functional Programming as State Restriction
162.4 Choosing Constraints Deliberately
17Chapter 3: Design Principles in Practice
183.1 Single Responsibility as Reason to Change
193.2 Open-Closed and the Shape of Extension Points
203.3 Substitution and Honest Contracts
213.4 Interface Segregation and Client-Side Shape
223.5 Dependency Inversion and Who Owns the Interface
233.6 When Principles Conflict
24Chapter 4: Component Boundaries
254.1 What a Component Is
264.2 Cohesion Principles for Components
274.3 Coupling Principles for Components
284.4 Breaking Cycles
294.5 Release Units and Versioning Discipline
30Chapter 5: Dependency Direction and Inversion
315.1 Plugin Architecture and the Direction of Control
325.2 Ports and Adapters
335.3 Keeping Frameworks at the Edge
345.4 Boundary Crossing Costs
35Chapter 6: The Domain Layer
366.1 Entities and Identity
376.2 Value Objects
386.3 Use Cases as Application Operations
396.4 Invariants and Where They Live
406.5 Keeping the Domain Free of Frameworks
41Chapter 7: Boundaries for the Database
427.1 Repositories as Domain-Facing Ports
437.2 Mapping Between Domain and Schema
447.3 The Schema as a Replaceable Detail
457.4 Transactions and Consistency Boundaries
467.5 Migrating the Schema Safely
47Chapter 8: Boundaries for the Web and UI
488.1 Controllers as Thin Translators
498.2 Request and Response Models
508.3 Presenters and View Models
Hands of Time
Hands of TimeRebecca Struthers8h 8m4.4 (1.3K)$26 · $0.00
Never Lost Again
Never Lost AgainBill Kilday10h 1m4.4 (805)$29 · $0.00
How the Internet Happened
How the Internet HappenedBrian McCullough13h 28m4.3 (2.7K)$23 · $0.00
Collected Writings of Nikola Tesla
Collected Writings of Nikola TeslaNikola Tesla, Thomas Commerford Martin21h 50m4.3 (1.7K)$1 · $0.00
Just Aspire
Just AspireAjai Chowdhry9h 13m4.4 (260)$29 · $0.00
The Little Book of Aliens
The Little Book of AliensAdam Frank8h 20m4.3 (1.3K)$26 · $0.00
The inventions, researches and writings of Nikola Tesla (Annotated)
The inventions, researches and writings of Nikola Tesla (Annotated)Thomas Commerford Martin16h 59m4.3 (1.3K)$2 · $0.00
Kargil
KargilV.P. Malik15h 18m4.3 (2K)$24 · $0.00
Experiments with Alternating Currents
Experiments with Alternating CurrentsNikola Tesla9h 6m4.3 (874)$1 · $0.00
Fire on the Horizon
Fire on the HorizonTom Shroder, John Konrad8h 23m4.3 (858)$26 · $0.00
The Smell of Kerosene (Annotated)
The Smell of Kerosene (Annotated)National Aeronautics and Space Administration, Donald L. Mallick, Peter W. Merlin11h 32m4.3 (523)$2 · $0.00
The Boy Who Harnessed the Wind
The Boy Who Harnessed the WindWilliam Kamkwamba, Bryan Mealer10h 5m4.2 (78.9K)$29 · $0.00
Across the Airless Wilds
Across the Airless WildsEarl Swift10h 8m4.3 (1.3K)$29 · $0.00
Console Wars
Console WarsBlake J. Harris20h 41m4.2 (13.7K)$46 · $0.00
Improvised Munitions Handbook
Improvised Munitions HandbookU.S. Department of Defense4h 49m4.3 (1.6K)$1.99 · $0.00
Escaping Gravity
Escaping GravityLori Garver10h 54m4.2 (2.2K)$20 · $0.00
Wireless Wars
Wireless WarsJonathan Pelson8h 2m4.3 (418)$20 · $0.00
Let There Be Water
Let There Be WaterSeth M. Siegel8h 36m4.2 (2.3K)$20 · $0.00
The Perfectionists
The PerfectionistsSimon Winchester11h 46m4.2 (9.9K)$29 · $0.00
Rethinking Narcissism
Rethinking NarcissismDr. Craig Malkin6h 7m4.2 (3.4K)$24 · $0.00

You may also like

ITIL® 4 Create, Deliver and Support (CDS)
ITIL® 4 Create, Deliver and Support (CDS)Claire Agutter3h 36m4.6 (23)$40 · $0.00
ITIL® 4 Essentials: Your essential guide for the ITIL 4 Foundation exam and beyond, second edition
ITIL® 4 Essentials: Your essential guide for the ITIL 4 Foundation exam and beyond, second editionClaire Agutter4h4.2 (50)$40 · $0.00
Horizons
HorizonsJames Poskett15h 18m3.7 (472)$33 · $0.00
A Color Notation: How to Numerically Describe Colors
A Color Notation: How to Numerically Describe ColorsA. H. Munsell3h 52m3.8 (159)$2 · $0.00
Numerical Analysis Using MATLAB, Excel and VBA
Numerical Analysis Using MATLAB, Excel and VBAOmar Halabi12h 9m$75
Airfoils, Lift and Drag Illustrated
Airfoils, Lift and Drag IllustratedPatrick Zwolinska11h 22m$50
Statistical Methods for Engineers and Scientists
Statistical Methods for Engineers and ScientistsPriya Ramanathan15h 5m$95
Blender for Beginners
Blender for BeginnersImad Muratspahic1h 18m$5.20 · $0.00
AP Computer Science Principles Exam Study Guide
AP Computer Science Principles Exam Study GuideMarie Peterson8h 32m$10
Invisible Income
Invisible IncomeSara Melo1h 34m$1.80 · $0.00
From Zero To Automatic
From Zero To AutomaticSara Melo1h 25m$1.80 · $0.00
Operation Research
Operation ResearchKnowledge Flow1h 15m$4.10 · $0.00
Self Publishing: Optimize Your Entire Publishing Business With AI Assistants (How to Rise to the Top in Book Sales Through Creative Disruption)
Self Publishing: Optimize Your Entire Publishing Business With AI Assistants (How to Rise to the Top in Book Sales Through Creative Disruption)Peter Felts1h 8m$3.50 · $0.00
Algorithms in Java, Coded and Tested
Algorithms in Java, Coded and TestedBianca Zielinski7h 25m$5 · $0.00
Machine Learning in the Cloud
Machine Learning in the CloudLionel Jansen8h 21m$5 · $0.00
Build a 2.5D RPG with Godot 4 and C#
Build a 2.5D RPG with Godot 4 and C#Gregory Whitlock7h 8m$5 · $0.00
Bio-Inspired AI in C++
Bio-Inspired AI in C++Zoe Becker7h 10m$5 · $0.00
Python Programming Made Practical
Python Programming Made PracticalAustin Gray7h 21m5.0 (1)$6.50 · $0.00
Ethical Hacking Practice Lab
Ethical Hacking Practice LabAaron Blake7h 51m$6.50 · $0.00
C++ for Natural Language Processing
C++ for Natural Language ProcessingRoland Kessler7h 10m$5 · $0.00