Clean Architecture Explained (Part 1)

With a real-world example in TypeScript

Alireza Bonab
7 min readApr 27, 2020
Photo: Nasir-Ol-Molk Mosque By MohammadReza Domiri Ganji

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)


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.



Alireza Bonab

Entrepreneur in Spirit, Engineer by Training, Adventurist by Nature