๐๐ผ๐ ๐๐ผ ๐น๐ฒ๐ฎ๐ฟ๐ป ๐๐น๐ฒ๐ฎ๐ป ๐๐ฟ๐ฐ๐ต๐ถ๐๐ฒ๐ฐ๐๐๐ฟ๐ฒ ๐ฎ๐ป๐ฑ ๐๐๐?
The Clean Architecture philosophy emphasizes the importance of separating concerns in software design and creating code that is ๐บ๐ผ๐ฑ๐๐น๐ฎ๐ฟ, ๐๐ฒ๐๐๐ฎ๐ฏ๐น๐ฒ, ๐ฎ๐ป๐ฑ ๐บ๐ฎ๐ถ๐ป๐๐ฎ๐ถ๐ป๐ฎ๐ฏ๐น๐ฒ.
It promotes the idea that software systems should be designed with the primary goal of ๐ฏ๐ฒ๐ถ๐ป๐ด ๐๐ป๐ฑ๐ฒ๐ฟ๐๐๐ผ๐ผ๐ฑ ๐ฎ๐ป๐ฑ ๐บ๐ฎ๐ถ๐ป๐๐ฎ๐ถ๐ป๐ฒ๐ฑ ๐ฏ๐ ๐ฑ๐ฒ๐๐ฒ๐น๐ผ๐ฝ๐ฒ๐ฟ๐ over the long term.
To achieve this goal, Clean Architecture proposes a layered architecture with ๐ฐ๐น๐ฒ๐ฎ๐ฟ ๐ฏ๐ผ๐๐ป๐ฑ๐ฎ๐ฟ๐ถ๐ฒ๐ ๐ฏ๐ฒ๐๐๐ฒ๐ฒ๐ป ๐ฑ๐ถ๐ณ๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ ๐ฐ๐ผ๐บ๐ฝ๐ผ๐ป๐ฒ๐ป๐๐ ๐ผ๐ณ ๐๐ต๐ฒ ๐๐๐๐๐ฒ๐บ, so we can achieve independence of frameworks, UI, databases, and delivery mechanisms, as well as the possibility to test in isolation.
If you want to learn more about it, here are some learning resources:
๐ญ. ๐๐ผ๐ผ๐ธ๐
๐น "Clean Architecture: A Craftsman's Guide to Software Structure and Design", Robert C. Martin amzn.to/40XN8yt
๐น "Get Your Hands Dirty on Clean Architecture", Tom Hombergs amzn.to/3SZrJ65
๐ฎ. ๐๐ฟ๐๐ถ๐ฐ๐น๐ฒ๐
๐น "The Clean Architecture", Robert C. Martin blog.cleancoder.com/uncโฆ
๐น "Clean Architecture: Standing on the shoulders of giants", Herberto Graca herbertograca.com/2017/โฆ
๐น "DDD, Hexagonal, Onion, Clean, CQRS, โฆ How I put it all together", Herberto Graca herbertograca.com/2017/โฆ
๐น "A Brief Intro to Clean Architecture, Clean DDD, and CQRS", John Jacobs blog.jacobsdata.com/202โฆ
๐น "A Template for Clean Domain-Driven Design Architecture", John Jacobs blog.jacobsdata.com/202โฆ
๐น "CQRS Translated to Clean Architecture", Filipe Lima, blog.fals.io/2018-09-19โฆ
๐น "Multiple ways of defining Clean Architecture layers", Igor Wojda, proandroiddev.com/multiโฆ
๐น "Rules to Better Clean Architecture", SSW Rules, ssw.com.au/rules/rules-โฆ
๐น "Clean Architecture for .NET Applications", Ivan Paulovich, paulovich.net/clean-arcโฆ
๐น "Clean Architecture Essentials", Ivan Paulovich, paulovich.net/clean-arcโฆ
๐น "Implementing Clean Architecture in asp.net Application", Harsh Matharu, harshmatharu.com/blog/cโฆ
๐น "Implementing Clean Architecture - Make it scream", Plainionist, plainionist.net/Implemeโฆ
๐น"Adoption of Clean Architecture layers with modules", Anil Gudigar, anil-gudigar.medium.comโฆ
๐ฏ. ๐ฉ๐ถ๐ฑ๐ฒ๐ผ๐
๐น "Clean Architecture", Robert C. Martin. youtube.com/watch?v=joNโฆ
๐น "Clean Architecture: Patterns, Practices, and Principles", Matthew Renze, Pluralsight. app.pluralsight.com/libโฆ
๐น "Clean Testing - Clean Architecture with .NET Core", Jason Taylor, NDC Oslo 2020. youtube.com/watch?v=T6Nโฆ
๐น "Clean Architecture Example & Breakdown - Do I use it?", CodeOpinion youtube.com/watch?v=Ys_โฆ
๐น "Clean Architecture with asp.net Core", Steve "Ardalic" Smith. v
๐น "Clean Architecture & DDD Series", Milan Jovanoviฤ. youtube.com/playlist
๐ฐ. ๐ฆ๐ฎ๐บ๐ฝ๐น๐ฒ๐
๐น "Learn Domain-Driven Design, software architecture, design patterns, best practices.", github.com/Sairyss/domaโฆ
๐น "Clean Architecture Solution Template for asp.net Core", by Jason Taylor, github.com/jasontaylordโฆ
๐น "Clean Architecture Solution Template: A starting point for Clean Architecture with asp.net Core", by Steve Smith. github.com/ardalis/cleaโฆ
๐น "Go (Golang) Clean Architecture", Iman Tumorang github.com/bxcodec/go-cโฆ
๐น "SwiftUI sample app using Clean Architecture", Alexey Naumov github.com/nalexn/cleanโฆ
๐น "Android - Clean Architecture - Kotlin", Fernando Cejas github.com/android10/Anโฆ
๐น "DDD/Clean Architecture inspired boilerplate for Node web APIs", Talysson de Oliveira Cassiano github.com/talyssonoc/nโฆ
๐ฑ. ๐๐ผ๐บ๐ฎ๐ถ๐ป-๐๐ฟ๐ถ๐๐ฒ๐ป ๐๐ฒ๐๐ถ๐ด๐ป
๐น "Domain-Driven Design: Tackling Complexity in the Heart of Software", Eric Evans. amzn.to/40Vl3b2
๐น "Domain-Driven Design Distilled", Vaughn Vernon. amzn.to/3t1abMa
๐น "An Introduction to Domain-Driven Design (DDD)", Khalil Stemmler, khalilstemmler.com/artiโฆ
๐น "Design a DDD-oriented microservice", Microsoft. learn.microsoft.com/en-โฆ
๐น "Domain-Driven Design โ Designing Software in a Complex Domain", Bibek Shah. levelup.gitconnected.coโฆ
๐น "Domain-Driven Design Starter Modelling Process", DDD Crew. github.com/ddd-crew/dddโฆ
๐น "Practical DDD", Hila Fox. medium.com/augury-reseaโฆ
๐น "Visualising Socio-Technical Architecture with DDD and Team Topologies", Nick Tune. medium.com/nick-tune-teโฆ
๐น "Domain-Driven Design example with problem space strategic analysis and various tactical patterns." github.com/ddd-by-exampโฆ
๐น "DDD Beyond the Basics: Mastering Aggregate Design", Mario Bittencourt. medium.com/ssense-tech/โฆ
๐น "The Bounded Context Canvas", Nick Tune, miro.com/miroverse/the-โฆ
๐น "Domain-driven design practice โ Modelling the payments system", Chaojie Xiao. medium.com/airwallex-enโฆ
๐น "Event Storming: a technique to understand complex projects", Danilo Vilhena medium.com/@danilopvilhโฆ