Keynote: Architecture the Lost Years by Robert Martin @ Ruby Midwest 2011

(also on YouTube … and a few weeks later, without slides , on The “A” word. A Discussion About Architecture in a Software Craftsmanship conference )

Images clipped together from…

  • The “Presenter” and “View Model” at 35:28
  • “The whole Enchilada!” at 37:50
  • “The Database is a Detail!” at 42:26

Elements summary:

Entities — Generic application agnostic data and business rules (e.g. Order, Customer ).

Interactors — Application specific business rules; Manipulates the relevant data from the Request Model and interacts with the Entities.

Boundaries / Gateways — Protocols or Interfaces.

Models — Dumb data structures, without methods.

  • Request Model
  • Response Model
  • View Model

Controllers — Convert the stuff submitted by the delivery mechanism into a delivery agnostic Request Model.

Presenters — Turns the delivery agnostic Response Model into a prepared “viewbified” data structure ready for easy manipulation by the view.

  • "… so the view is so stupid that you don’t have to test it!"

See also Where’s Your Business Logic?