Volume 2: Inside Software: How Real Systems Are Built1/10
  1. 01Software Design 101-110
  2. 02Application Architecture 111-120
  3. 03Web and Mobile Apps 121-130
  4. 04Developer Workflow 131-140
  5. 05Testing and Quality 141-150
  6. 06Distributed Systems 151-160
  7. 07Cloud Platforms 161-170
  8. 08Delivery and Operations 171-180
  9. 09Applied Security 181-190
  10. 10Real-World Systems 191-200

Chapter 01 of 10

Software Design 101-110

10 lessons72 min readingParts 101-110
  1. 01From Requirements to SoftwareHow does a vague idea become something developers can build?7 min read
  2. 02Functional and Non-Functional RequirementsWhat is the difference between what a system does and how well it must do it?8 min read
  3. 03Software ArchitectureWhat does architecture mean in a software project?7 min read
  4. 04Separation of ConcernsWhy divide software into parts with different responsibilities?7 min read
  5. 05Coupling and CohesionWhat makes a software component easy or difficult to change?7 min read
  6. 06Monoliths and MicroservicesWhen should software be one deployable application or many services?7 min read
  7. 07Stateful and Stateless ComponentsWhy is it easier to scale some application components than others?7 min read
  8. 08Configuration and SecretsWhy should deploy-time settings and passwords stay outside application code?7 min read
  9. 09Technical DebtWhat do developers mean when they say a codebase has debt?7 min read
  10. 10Choosing the Simplest Useful DesignHow do teams avoid both underbuilding and overengineering?8 min read