Clean Architecture Explained (Part 1)
With a real-world example in TypeScript
--
Before reading, note that this article is written to understand the clean architecture pattern conceptually and in the next part there is a sample code implementation. This means that to learn it, you need to practice the pattern by writing code.
Clean architecture is a practical software architecture solution from the Legendary Robert C. Martin (a.k.a. “Uncle Bob”). By applying universal rules of software architecture, you can dramatically improve developer productivity throughout the life of any software system.
Here is the link to Part-2 which presents an implementation.
Table of Contents
- Introduction. (Read this part if you would like to know my journey to learn clean architecture.)
- Why clean architecture?
- Conceptual idea.
- Implementing. (Part 2)
- References. (Part 2)
Introduction
I started software development with C# as a freelancer around 2004 and then joined some companies and also for a period co-founded a startup and switched to the JavaScript world with Node.js.
I enjoyed the dynamic world of JavaScript with Node.js, then loved adopting TypeScript.
It happened a lot of times that I needed to start a project from scratch. There were some green fields that I supposed to decide about the architecture and scaffolding of the project and then onboard the team with the architecture. For me, this part was full of questions every time.
In a lot of cases, I ended up with some frameworks like Parse, Loopback or MEAN, etc. After a lot of sweat and tears and time of development, all of them became a big ball of mud because of Tight Coupling and high Coupling with other frameworks. always thought wonder what is the best framework to build the solution upon that.
I got familiar with Clean Architecture by watching a youtube video with the coincidence that Uncle Bob talks about Clean Architecture, For me, it was like hitting by a truck. It was shocking how brilliant the Idea is and looked the answer I was looking for, then I got…