3 ms·
Obvious is a clean architecture more directly in the style of Uncle Bob's Screaming Architecture. It's actually a kind of hybrid between Screaming Architecture
by programminggeek 14y ago
Obvious is a clean architecture more directly in the style of Uncle Bob's Screaming Architecture. It's actually a kind of hybrid between Screaming Architecture and Ports-and-Adapters. In fact, I looked at Hexagonal architecture a lot and purposely avoided the terms ports and adapters in place of jacks and plugs even though they are conceptually the same idea.
The key difference in Obvious is that it tries to be more purposeful in the naming and the structure of the parts of your application. The "app" describes your business logic and entities, the "external" defines external interfaces to data sources, and the "delivery" defines the delivery mechanism like a web app, command line, rich client, or whatever.
To drill down deeper into things being given obvious names and structure, the "app" is structured with single purpose use case objects called actions. Core data structures(business objects) are defined by entity objects. In that structure you can look at the app folder and see what the system data is and what the system does. The idea is that the system's intent and functionality would scream at you just by looking at it from a high level.
Uncle Bob's keynote at Ruby Midwest 2011 articulates it a bit better than maybe I do - http://www.confreaks.com/videos/759-rubymidwest2011-keynote-architecture-the-lost-years http://www.confreaks.com/videos/759-rubymidwest2011-keynote-...