Jeremiah Flaga My thoughts and experiences on programming, life, atbp.

Clean Architecture sample projects

Category:

This multi-language programming world of ours is getting in the way of doing our work of implementing software solutions to whatever problems we are tasked to solve.

As Uncle Bob pointed out in “The Last Programming Language”, the other fields have agreed use only one notation — mathematicians, musicians, and others already have. We eventually also will have to agree to use only one notation.

But for the mean time, I think all-programmers-learning-or-being-aware-of the Clean Architecture model might serve as an initial solution to this multi-language-programming-world problem of ours.

But if we are going to learn the Clean Architecture model, we need to have some sample projects that we can run and play with… because programmers, like me, who have but little experience in the software development world, cannot instantly produce code by only looking at some diagrams or by just listening to some abstracts ideas presented in a talk. :laughing:

NOTE: Understanding the “Dependency Inversion Principle” is very useful to understand the Clean Architecture model.

This article by James Shore might also be a great help: “Dependency Injection Demystified”

We need to see code…

Uncle Bob did not give us a sample project in his talks and in his blog. He only have some code snippets in one of his blog posts, “A Little Architecture”, but not an entire sample project. (Maybe he will provide a sample project in his upcoming book?)

But, luckily, some of our other masters have provided us some sample projects that use the Clean Architecture model.

Here are some of them…

In .NET

Matthew Renze’s Clean Architecture demo (I cannot find his talk online. Maybe it was not recorded.)

In PHP

(Disclaimer: I know almost nothing about PHP… but I think this is one of the best samples available.)

In Android

Fernando Cejas’ sample project in Android

In Python

Leonardo Giordani’s sample project in Python

You can google for the others… :smile:

Comments