DEV Community

Discussion on: Why I can't recommend Clean Architecture by Robert C Martin

Collapse
 
d4e666 profile image
d4e666

Have any of you ever looked at the source code from his project Fitnesse? in his book he mentions it over and over. I have looked at it and what I see is a mess. He mentions "screaming architecture", but his code does not even come close. I found all components he menions, but none of the bear the names he mentions either.
Use cases are Instructions, RequestBuilder factories are just string formatters to create urls, .... He also makes the mistake that many other developers do: let the controllers take care of calling the presenters.

In many languages like .NET, you don't have full control over the return format, so not only does he force another level of abstraction, he doesn't even follow his own rules.

In a perfect world of theory, all his recomendations sound solid, but in the real life I find them very poorly applicable.

Collapse
 
bosepchuk profile image
Blaine Osepchuk • Edited

I haven't looked at the source code for Fitnesse. But I wouldn't be surprised to learn that practice and theory have diverged.

And, just to be clear, I don't think that says anything bad about Uncle Bob. Software development activities in real-world systems need to make economic sense. Often that means leaving "good enough" alone even if that means the system doesn't meet all your architectural goals.

If Uncle Bob and his son are the only two programmers on the Fitnesse project, the architecture might be perfectly adequate as it is. But if they were going to bring in ten additional programmers it might be completely inappropriate. Context matters.

You wrote:

In a perfect world of theory, all his recomendations sound solid, but in the real life I find them very poorly applicable.

That's probably true for the smallish (100 KLOC class) systems I've worked on. But the bigger the systems get and the longer they are going to live, the more important architecture becomes. For example, I wonder what the architecture of the F-35 software looks like (reportedly around 8 million lines of mostly C++). I'm guessing/hoping it has a lot more architecture than my 100 KLOC projects.