Clean Architecture example

Clean Architecture example

I've been working with Go for almost 4 years now. And all this period i communicate with other Go developers in profile articles, Telegram chats and other groups. One of the most popular subject in post-soviet developers communities is best architecture. Two most popular approaches are Domain Driven Design (very unuseful approach in my opinion, but it's subject for my future posts) and Martin's Clean Architecture.

In some periods of my career i was working with different architectures (includins DDD and no-architecture chaotic approach) on Go. So now i am working with my own version of Clean Architecture and i decided to demonstrate it on some example repo. Here it is: https://github.com/nightlord189/ca-url-shortener.

In this version i use only 3 circles of layers and it's enough for most web projects. Also in many real project on start i can set solid dependency connection (not by interface) and use single model both for database and http (using Go struct tags). They are deviations from the Clean Architecture concept (as Martin declared it in his book) but i think that you must adopt any architecture to your project.

Any software architecture approach is like Scrum for project management methodology. There is no "Ideal Scrum" like Holy Bible. You are creating new different Scrum implementation for each project team. Also you should create your own implementation of architecture approach for each new project which you are developing too.