🚀 The Clean Architecture (Ian Cooper)

preview_player
Показать описание
❗️ATTENTION ❗️
Registration to DevTernity is running:

What is the clean architecture and how you would build one in .NET? Recently Bob Martin has categorized a set of architectures, including hexagonal architecture, onion architecture and screaming architecture as 'the clean architecture' - a layered architecture of concentric circles with a strong emphasis on separation of concerns. This architecture has become popular because of its amenability to modification as an evolutionary architecture and its support for practices such as TDD. In this presentation we will discuss the clean architecture and its benefits. More than that, in the bulk of the presentation, we will show you how to implement a clean architecture in .NET. From first steps to working code, we will show you the moves required to embrace this approach, and introduce you to some of the OSS libraries that can help you get there. All examples will be in .NET Core
Рекомендации по теме
Комментарии
Автор

There are few like Ian who can make everything so clear. Got to see him in NDC Porto 2023. Always excellent.

rorycawley
Автор

this is the best talk on clean architecture. I hv been trying to gather more Clean Architecture. Went thru few on NDC Conf, Goto, Steve Smith and others. They r good. However, this is the real deal with covers everything. I really appreciate the effort coz every sentence is essential. I loved when presenter said do we cover use cases using code and is it visible to devs. Thanks you for this

prlgix
Автор

This video should have millions of views

AnthonyPaulT
Автор

This is the best description of clean/hex that I've found. I'm glad he touches on testing and explains to primarily test input ports.

I am not sure it's right to say controllers are interactors. The problem is that some controllers are bound to frameworks. I think it's more accurate to say that controllers should be thin pass-through objects that relay UI data directly to/from the interactors. That the interactor are the control logic and controllers are the adaptors.

michaelslattery
Автор

The trouble I always find with code samples like at the end in talks like these is, that for those small demo's the original is in many cases easier to work with and understand, it's only when you get into a much larger system that it gets more useful.

Unfortunately many people just see that end bit and say well it just shows this approach is not good. I'm not saying I do that, I actually believe a layered approach is the best way to go, however I know many people that think it's awful, and I think the samples they see are awful which doesn't help.

reductor_
Автор

Just an amazing presentation! Thank you so much, Ian, for sharing knowledge.

matheusmurray
Автор

What a journey, thanks Ian - wonderfully done.

rorycawley
Автор

One of the best on youtube. Very good.

trozzonick
Автор

Very commendable presentation given it was held during an earthquake... Even the cameraman was holding it together (barely)

wrjmogb
Автор

That camera is in need of a clean architecture. Thankfully the cam didn't attempt to give a fuller picture of the presenters nose openings, like a Python cam.

TheDiveO
Автор

It's not really correct to have a infra dependency in the domain layer. If it is for domain events than it should probably move to a shared kernel layer.

brendonanderson
Автор

The camera person and speaker exhibit signs of intoxication.

LukeVanIn
Автор

Can any body have the source code and slide of this talk. Please share.

nguyentuananh
Автор

I can't imagine trying to explain all these abstractions to junior devs and maintaining any kind of long term fidelity to it. No doubt it would become an unmitigated mess. And senior devs would just argue about it. Of course not doing this results in an unmitigated mess as well so I don't know. I guess I'd prefer my messes with fewer abstractions

thigmotrope
Автор

Why is Clean Arch so popular among the C# community but not in the Java?

lucasterable
Автор

"600 line service classes" - I would much rather read through a (cohesive) single 600 line class, than six abstracted 100 line classes

mcdaddy
Автор

Didn't expect the pope to talk about pregnancy, but here we go...

TheDiveO
Автор

Having worked with this in large codebases I can say with confidence: it's nice in theory but awful in practice.
The devil is in the details and people will abuse "interactors" in every possible way. Soon you'll have one interactor calling 5 other interactors which in turn call other interactors and in the end all you have is a procedural nightmare.

Unless you're strict about everything under this architecture, it will surely make your code unnecessarily complex with very little benefit. Be very careful with this.

TheDraiken
Автор

Weird accent. Poor delivery. Really bad session on Clean Arch.

umer.on.youtube