cross-posted from: https://programming.dev/post/54023908
Hi!
I’ve never read any of Uncle Bob’s books. But I have taken interest in “Clean Architecture” as it seems like a good solution to make mid to large sized projects simple to understand and maintain.
I think MVC gets too much coupling and fails at larger projects, same with n-tier. But I’m not sure about anything right now (software design is a very complicated problem after all).
So I was wondering if you friends who have used Clean Architecture in production can share your knowledge and experience with me about this design?
Is it actually good and worth investing in?
Footnote:
I’m especially weighing this architecture because Uncle Bob’s writings are really hit and miss. I don’t see him as a master or guru so I take everything he says with a grain of salt.


Thank you for your explanation.
My work revolves mostly around large enterprise software, so I guess this fits me.
But can you elaborate why not write a game engine with it? Game engines are also very complex.
Do you say because of the performance hit of multiple layers of abstractions?
Yes, performance is one reason. Clean architecture uses indirect calls a lot. This doesn’t really matter if you are doing IO bound work like reading files and calling databases, but games do a lot of CPU bound work as well to simulate physics and update game state where all that indirection will waste CPU cycles.
I also can’t really think about a part of a game engine that I would put into the domain layer. The domain layer is the whole reason this architectural pattern exists and if you can’t define that clearly there isn’t a reason to use clean architecture.