HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

The Principles of Clean Architecture by Uncle Bob Martin

NorfolkDevelopers1 HN recommender · recommended in 1 month, 2016-2021
YouTube
591K views · 10 years ago · talk · evergreen

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.

Listed among favorite tech talks and cited in debates over whether the database should drive application architecture.

Software architecture & design#cleanarchitecture#unclebob#dependencyinversion#boundaries#frameworks

7 comments from Hacker News

@Rd6n62021 · in “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)

CitesView on HN
@MaxBarraclough2019 · in “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

CitesView on HN
@lugg2019 · in “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 better than older frameworks, like say, code igniter but it still fights you every step of the way if you want to step outside the box.

CitesView on HN
@btschaegg2019 · in “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 of inline SQL queries, but they are not littered all over your codebase; they live inside a narrow scope (a plugin, say). Also, the SQL schema and queries in this case often are quite boring -- the tricky bit is coming up with a good interface that provides all the guarantees you need to uphold (complicated transactions maybe?). And remember that you need these guarantees because of how your business domain works, not because of your DB. Perhaps you can get rid of some of them if you organize your storage (i.e. DB) in a specific way? [1]: link [2]: ▶ this video Edit: Also note that there's no reason not to use a ORM in this way, too (if it suits you). The important part is the same: The ORM has no business dictating how your business logic should be implemented, and if you try to remove it f

CitesView on HN
@jppope2018 · in “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. This doesn't require it be a hard skill... "Soft" or philosophical utilities are just as good 6) Have Fun and be funny... Speakers have a tendency to want to show off the size of their intellect, and the level their competency- having a speech be entertaining is way way more important. 7) DO NOT READ FROM YOUR SLIDES. know your shit. slides are supplementary Extra Credit. Here's a collection of some fantastic technical speeches: * link * link * ▶ this video * link * link * link

CitesView on HN
@techdominator2017 · in “The Domain-Driven Design Paradox (2016)”

I don't think DDD is a silver bullet; building quality software will require DDD but it will also require more. But don't get me wrong, I always been a proponent of keeping Domain concerns in The Domain layer. It makes much more things easier in the long run, beginners should be exposed to DDD very soon in the learning process, in my opinion. DDD and the principle of separation of concerns always reminds of Uncle Bob screaming "DATABASE IS DETAIL!": ▶ this video

JokeView on HN
@0xmohit2016 · in “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

RecommendsView on HN
Robert C Martin - Clean Architecture and Design58:39

Robert C Martin - Clean Architecture and Design

gnbitcom
285K views • 12 years ago
Bob Martin   SOLID Principles of Object Oriented and Agile Design1:23:35

Bob Martin SOLID Principles of Object Oriented and Agile Design

People career
517K views • 11 years ago
"Uncle" Bob Martin1:23:35

"Uncle" Bob Martin

Program on Entrepreneurship
179K views • 11 years ago
Clean Code - Uncle Bob / Lesson 11:48:42

Clean Code - Uncle Bob / Lesson 1

UnityCoin
2.2M views • 7 years ago
Ruby Midwest 2011 - Keynote: Architecture the Lost Years by Robert Martin1:06:39

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

Confreaks
172K views • 14 years ago
Object-Oriented Programming is Embarrassing: 4 Short Examples28:03

Object-Oriented Programming is Embarrassing: 4 Short Examples

Brian Will
2.2M views • 10 years ago
"Uncle" Bob Martin - "The Future of Programming"1:18:21

"Uncle" Bob Martin - "The Future of Programming"

Paul Stringer's Mobile Tech
1.8M views • 10 years ago
Visualising software architecture with the C4 model - Simon Brown, Agile on the Beach 201935:33

Visualising software architecture with the C4 model - Simon Brown, Agile on the Beach 2019

Agile on the Beach
553K views • 7 years ago
The Clean Architecture in Python49:54

The Clean Architecture in Python

Next Day Video
114K views • 12 years ago
"Clean" Code, Horrible Performance22:41

"Clean" Code, Horrible Performance

Molly Rocket
1.2M views • 3 years ago
Object-Oriented Programming is Bad44:35

Object-Oriented Programming is Bad

Brian Will
2.6M views • 10 years ago
A Philosophy of Software Design | John Ousterhout | Talks at Google1:01:40

A Philosophy of Software Design | John Ousterhout | Talks at Google

Talks at Google
547K views • 8 years ago
October CincyRb - Jim Weirich on Decoupling from Rails1:15:58

October CincyRb - Jim Weirich on Decoupling from Rails

Launch Scout
48K views • 13 years ago
Data-Oriented Demo: SOA, composition1:32:47

Data-Oriented Demo: SOA, composition

Jonathan Blow
201K views • 11 years ago
Alan Kay - Programming and Scaling56:39

Alan Kay - Programming and Scaling

Colin McDonnell
36K views • 11 years ago
Introduction to NoSQL • Martin Fowler • GOTO 201254:52

Introduction to NoSQL • Martin Fowler • GOTO 2012

GOTO Conferences
1M views • 13 years ago
The Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]1:29:27

The Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]

cpponsea
245K views • 7 years ago
The Only Unbreakable Law53:25

The Only Unbreakable Law

Molly Rocket
487K views • 4 years ago
Software Art Thou: Glenn Vanderburg - Real Software Engineering1:07:58

Software Art Thou: Glenn Vanderburg - Real Software Engineering

Zendesk
35K views • 8 years ago
Functional architecture - The pits of success - Mark Seemann1:00:10

Functional architecture - The pits of success - Mark Seemann

NDC Conferences
152K views • 10 years ago