RetroMocha / obvious

Obvious is a clean architecture.
MIT License
264 stars 16 forks source link

Where are the Uncle Bob talks related to this architecture #2

Closed tcab closed 11 years ago

tcab commented 11 years ago

I watched the video on 'Obvious' which refers to some talks by Uncle Bob talks related to this architecture. Where can I find them?

How much of those talks would apply to Obvious? I guess I am looking for more context and more examples and documentation, tutorials etc. on Obvious.

thanks. (Sent as an issue since no email for brianknapp is listed on github).

brianknapp commented 11 years ago

There are more tutorials and videos to come.

Uncle Bob's talk on clean architecture is what drove the foundation for Obvious. http://confreaks.com/videos/759-rubymidwest2011-keynote-architecture-the-lost-years Replace the word interactor with action, boundary with contract, and his concept of gateways with jacks and plugs and they are very much the same.

You can read more about clean architecture from Uncle Bob http://blog.8thlight.com/uncle-bob/2011/11/22/Clean-Architecture.html http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html and http://blog.8thlight.com/uncle-bob/2011/09/30/Screaming-Architecture.html

The approach I took with Obvious was to start with Bob's concept of the Screaming Architecture and that is basically what you see in the app folder. Entities and single use case Actions that together scream at you what the application is and does. For the external data side, I took the hexagonal architecture concept of ports and adapters and basically renamed them jacks and plugs so that Obvious and Hexagonal architecture wouldn't be confused with each other, but it's the same basic idea for the same basic reasons.

I hope this is a good start. If you want more info, don't hesitate to post again or hit me up on twitter @ProgrammingGeek

brianknapp commented 11 years ago

I added the talk link and blog links to the project page. I'm closing this issue for now, but feel free to comment further if needed.