Skip to content
0:00 / 0:00

#cleanarchitecture#dependencyinversion#solidprinciples

The Principles of Clean Architecture by Uncle Bob Martin

NorfolkDevelopers

5.6K subscribers • 1 video on Hallway

YouTube
  • Recommended by 1 person: 1 on Hacker News.
  • Presented by Robert C. Martin, software consultant and author
  • An opinion. It argues one side of a question engineers disagree on.

Intermediate. Assumes working knowledge.

591K views10 years ago1 recommendation

Software designSoftware architectureDesign patternsRefactoring and legacy code

Robert C. Martin explains the principles of Clean Architecture, arguing that frameworks and databases should be treated as low-level details.

The Principles of Clean Architecture by Uncle Bob Martin (@unclebobmartin) Robert C. Martin, aka, Uncle Bob has been a software professional since 1970 and an international software consultant since 1990. In the last 40 years, he has worked in various capacities on literally hundreds of software projects. In 2001, he initiated the meeting of the group that created Agile Software Development from Extreme Programming techniques and served as the first chairman of the Agile Alliance. He is also a leading member of the Worldwide Software Craftsmanship Movement - Clean Code. He has authored "landmark" books on Agile Programming, Extreme Programming, UML, Object-Oriented Programming, C++ Programming and most recently Clean Code and Clean Coder. He has published dozens of articles in various trade journals.He has written, directed and produced numerous "Code Casts" videos for software professionals.Bob is a regular speaker at international conferences and trade shows.Mr. Martin is the founder, CEO, and president of Uncle Bob Consulting, LLC and Object Mentor Incorporated. Uncle Bob has published dozens of articles in various trade journals, and is a regular speaker at international conferences and trade shows. Mr. Martin has authored and edited many books including: • The Clean Coder • Clean Code • Agile Software Development: Principles, Patterns, and Practices. • Designing Object Oriented C++ Applications using the Booch Method • Agile Principles Patterns and Practices in C# • Patterns Languages of Program Design 3 • More C++ Gems • Extreme Programming in Practice • UML for Java Programmers meetup.com/Norfolk-Developers-NorDev/events/223533655/

Why it's here

1 person recommends this

What people say. Recommended as a classic talk on software architecture, dependency direction, and keeping business logic decoupled from frameworks and databases.

0xmohiton Hacker News • Recommends

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 link to this video 2 link 3 link

techdominatoron Hacker News • Mentions

On “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!": link to this video

jppopeon Hacker News • Mentions

On “Ask HN: What are the things keep in mind while giving/preparing for a tech talk?”

…un 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 * link to this video * link * link * link…

btschaeggon Hacker News • Mentions

On “SQL databases come up with algorithms you’d never have dreamed of (2017) [video]”

…t 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: link to 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…

luggon Hacker News • Mentions

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. link to 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…

MaxBarracloughon Hacker News • Mentions

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 link to this video

Rd6n6on Hacker News • Mentions

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 link to this video (approx 27 mins in)