When do you know something is being overdesigned or overengineered?

The applications that the other programmer started building are killing me. He's using Clean Architecture and it has like a million different classes and shit. It's not messy or anything, but fuck it's overwhelming.

Just to figure out wtf was happening when getting the currently signed in user's email, I had to go through like 30 folder and files. Maybe more. All files were fairly simple on their own, but the entire flow was mindfucking me. Use cases, schemas, gateways, repositories, entities, models, etc etc

And that's the client facing application, I haven't checked the API yet, though it seems like that one is simpler.

The worrying aspect here is, any time anyone else has to mess with this, they'll also have to deal with this shit. This needs some really good documentation.

  • 2
    my current project is the same. i am grateful all contributors work mostly on their own module but we can hardly contribute to each other. i am impressed what is possible but can't get a grip on the flows.
  • 1
    My 2 cents is that every Deb should study gang of four patterns and become comfortable with them. And solid. Only then can you comment on OOP design. From my own experience being on both sides.

    That is assuming it isn't already known! If so it could just be shit OOP. For instance I personally don't like to inherit more than 2 levels unless it's also dead simple.
Add Comment