Clean Architecture ch1-ch3

Notes on Robert C. Martin - Clean Architecture: A Craftsman’s Guide to Software Structure and Design, chapter 1-3.

The goal of software architecture is to minimize the human resources required to build and maintain the required system.

Two perspectives of software:

  1. behaviors (functions, features)
  2. architecture - software must be easy to change, however, when the scope grows, changes become harder and harder.
  • Software architects are more focused on the structure of the system than on its features and functions”
  • Architects create an architecture that allows those features and functions to be easily developed, modified and extended.
  • If architecture comes last, then the system will become ever more costly to develop, and eventually change will become practically impossible for part or all of the system.

Paradigms: overview

  • structured programming by Dijkstra - goto, if then else, do while until.
  • object-oriented patterns - class, constructor, method

Object-oriented programming imposes discipline on indirect transfer of control.

  • functional programming - lambda calculus, no assignment

Functional programming imposes discipline upon assignment.