The Principles of Clean Architecture by Uncle Bob Martin
Why Hacker News recommends it
Listed among favorite tech talks and cited in debates over whether the database should drive application architecture.
What it is
Robert C. Martin (Uncle Bob) presents the principles of Clean Architecture, covering dependency direction, boundaries, and why frameworks and databases should be details rather than the center of an application.
Recommended by 1 HN commenters across 1 different months, 2016 to 2021.
What Hacker News said
Recommends 0xmohit · 2016-10 · on “Ask HN: What's your favorite tech talk?”
How To Design A Good API and Why it Matters [0] The Principles of Clean Architecture [1] The State of the Art in Microservices by Adrian Cockcroft [2] "The Mess We're In" by Joe Armstrong [3] [0] [LINK] [1] [this video] [2] [LINK] [3] [LINK]
Cites jppope · 2018-07 · on “Ask HN: What are the things keep in mind while giving/preparing for a tech talk?”
1) Do not attempt to live code. change your code via version control, build small videos, copy and paste... whatever you do... do not try and live code 2) Read "The presentation secrets of Steve Jobs" ... its not really about Steve Jobs so much as its about how to be a great presenter. 3) building or writing a talk is significantly less important than the delivery... which means that more of your time should be spent on how to deliver the speech (recording I find is the best way to practice) 4) Pick a single thing and do it well, do not attempt to put too much into a talk or tackle something massively complex. 5) Make sure that everyone is walking away with something they can actually use. T
Cites btschaegg · 2019-04 · on “SQL databases come up with algorithms you’d never have dreamed of (2017) [video]”
I don't think there's a one-size-fits-all solution to this, since different domains require different guarantees from your storage medium. For example, if you need to combine multiple actions with a certain level of transaction safety, defining an interface for that can get tricky. Overall, I tend to agree with Uncle Bob's "Clean Architecture" [1][2] approach when it comes to DBs, though: The DB usually (rembember that there is an exception to every rule!) has no business of being the "center" of an application. It should provide you with functionality, not dictate how your business logic works. If you can pull out your DB and give it a sensible interface, you still might end up having a lot
Cites lugg · 2019-07 · on “Ask HN: What are the “best” codebases that you've encountered?”
I'm not fully on board with all of Roberts views but this point about a framework for frameworks sake is one I agree with. [this video] starting at around 10:30 he gets into what I was getting at. > Whereas I'd say Laravel and it's ecosystem are far more productive and time saving than simply using just PHP. I'm not arguing a time thing. I'm arguing that a framework that forces its architecture onto your domain model is fundamentally broken by design. My domain should drive architecture choices and the framework should let me augment that with well worn libraries and modular patterns. Laravels architecture works for one thing: web sites. And for that, you're better off using WordPress. Laravel is
Cites MaxBarraclough · 2019-12 · on “Message DB: Event Store and Message Store for PostgreSQL”
For some perhaps-off-topic contrarianism, what do you make of Uncle Bob railing against database-oriented architectures? [0] (He takes a good few minutes to get his point across.) [0] [this video]
Cites Rd6n6 · 2021-07 · on “I had to give a wrong answer to get the job (2017)”
Mvc isn’t an architecture at all. It’s just meant to be a tiny pattern for ui widgets from the 70s that people started to use as an architecture. The actual goal is to just keep a tiny piece of business logic from having a dependency on a specific input or on the view. It applied to a single button or a single input field back then. Architecture is more about deciding what direction your dependencies go and where your hard boundaries go [this video] (approx 27 mins in)