👨‍💻
Software Engineering
Clean Architecture
Clean Architecture
  • Overview
  • Foreword
  • Preface
  • Part 1
    • Introduction
    • 1: Design & Architecture
    • 2: A Tale of Two Values
  • Part 2: Programming Paradigms
    • 3: Paradigm Overview
    • 4: Structured Programming
    • 5: Object-Oriented Programming
    • 6: Functional Programming
  • Part 3: Design Principles
    • Intro
    • 7: Single Responsibility Principle
    • 8: Open-Closed Principle
  • Part 5: Architecture
    • 22: Clean Architecture
Powered by GitBook
On this page
  • What is Architecture?
  • Architecture Paths
  • ⛔ Rigidity
  • ⛔ Speculative Generality
  • ✅ Clean

Foreword

By Kevil Henney - May 2017

What is Architecture?

Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change. - Grady Booch

Not only does a good architecture meet the needs of its users, developers, and owners at any given point in time, it meets them over time.

If you think good architecture is expensive, try bad architecture. - Brain Foote and Joseph Yoder

Architecture is the decisions that you wish you could get right early in a project, but that you are not necessarily more likely to get them right than any other. - Ralph Johnson

Understanding the past is hard enough. Our grasp of the present is slippery at best. Predicting the future is nontrivial.

Architecture Paths

⛔ Rigidity

  • Strong and stable architecture comes from authority and rigidity.

  • If change is expensive, change is eliminated.

  • The architect's mandate is total and totalitarian, with the architecture becoming a dystopia for its developers and a constant source of frustration for all.

⛔ Speculative Generality

  • Hard coded guesswork.

  • Countless parameters.

  • Tombs of dead code.

  • Accidental Complexity

✅ Clean

  • Recognition that software is soft, preserving it as a first-class property of the system.

  • We operate with incomplete knowledge

  • We create things and we discover things.

  • We ask questions and run experiments.

  • Architecture is a journey rather than a destination.

  • Architecture is a process of enquiry rather than a frozen artifact.

Architecture is a hypothesis that needs to be proven by implementation and measurement. - Tom Gilb

Walking the Clean Path requires care and attention, thought & observation, practice & principle. This might at first sound slow, but it's all in the way that you walk.

The only way to go fast, is to go well - Robert C. Martin

PreviousOverviewNextPreface

Last updated 11 months ago