Clean Architecture and Design: Notes

(This notes is from watching Clean Architecture and Design by Robert C Martin on NDC 2013)

Clear Architecture and Design

A Rail App

Questions on a rails app. Why I see those view, utils, models, controllers instead of the features?

Why does the framework dominate?

The Web is a delivery mechanism!


The architecture of the building are not telling us what is made of (framework, concrete, material…), what it does tell you, it is its intent.

Architecture is about INTENT!!

2 kinds of business rules:

  • Application specific: business rule
  • Application agnostic: entity object

Boundaries (Interfaces)

Web comes, then everything changes.

Then lots of frameworks come in. It looks these frameworks could save the world!?

Ride with the wave. Somehow the frameworks dominate our idea.

What about MVC? (or MVP, MVVM…)

And how MVC goes wrong…

Messy MVC

And how to apply MVP in clean architecture?

MVP in clean architecture

Inner stuff should know nothing about outer structure!

And why databases?

The Database is a detail, and it is not the center of the system.

So isolate it! It should be a plugin of our system.


Keep the framework distant, use it, but not inherit it.

Think your application this way:

Think your application this way

A good architecture allows major decisions to be deferred!

A good architecture maximizes the number of decisions not made.