13
j8zd7
67d

I’m so sick and tired of the cattle-minded people in the software world. I love coding and improving myself; I've got over 18 years of experience. I enjoy what I do, and I like being good at it. I know my way around a variety of different technologies, and I could easily outperform most engineers with similar experience. If I don’t know something, I get excited to learn and I ask questions. I don’t enjoy standing in the spotlight about what I know; I prefer supporting, helping, solving problems, improving solutions, and simplifying everything.

From my experience, the best solution is the simplest, shortest, fastest, and leanest one. But unfortunately, there are people in the workplace who think the opposite of me and blindly follow this so-called prophet named Uncle Bob, zealously writing all his SOLID principles and dogmatic code, turning their work environments into a toxic mess. I’m so done with it. You have no idea how harmful a person can be when they cling to the teachings of a guy like Uncle Bob—someone who probably hasn't even written the "s" in software himself and is just trying to sell his book. In almost every job or team I join, there’s one of these people who drags junior developers into writing dogmatic code by chanting about SOLID principles, Uncle Bob, and object-oriented programming.

Software engineering isn’t something you can learn from a book written by people like Uncle Bob, who haven’t coded a decent product in a real development process. Experience is something entirely different, and from my experience, everything taken to extremes turns out badly. Wherever I see an Uncle Bob disciple, the work inevitably slides into the extremes. For someone writing in C and C++, it’s disheartening to hear about object-oriented programming, SOLID principles, and agile nonsense. I’m tired of seeing people cluttering their code with interfaces for every little thing, over-engineering patterns, and stuffing every piece of code with interfaces to make it “testable.” They run around claiming they’re writing SOLID code, doing TDD, following “best practices,” yet they can't solve any real problems or algorithms. They take a week-long task and drag it out to six, making simple things complex and distancing themselves from real solutions. I’m sick of these types.

If you’re a junior developer, please ignore the fools trying to lead you down this path, and don’t become dogmatic about what you learn, especially if you’re writing C++.

I’ve never seen any real engineer who takes this SOLID, object-oriented nonsense seriously. Believe me, once you reach a certain threshold, you won’t hear these words anymore. Software isn’t just about that. Object-oriented programming, especially if you’re not writing Java or C#, and especially if you’re working in C++ (thankfully, C doesn’t even have it), is something you should definitely steer clear of. Robert C. Martin, aka Uncle Bob—if only you had written your book with a focus on Java or C#. These dogmatic code writers with 7-8 years of experience crying at the sight of free functions in C++ really give me a headache. Because of you, these people exist, and I don’t have the energy to deal with this nonsense at my age.

Comments
  • 2
    Well, it's a point of view I suppose.
  • 3
    @donkulator yepp, definitely.

    I've moved on from sw development to other responsibilities now, and I still find the easiest-to-maintain solutions are based on SOLID. And I say SOLUTIONS, because they are not only app code: infra design, test design, IaC design, CI/CD pipelines, system architecture, database schemes, etc.

    Like the GNU toolset's philosophy: each component has to do one thing, and do it well.
  • 2
    I agree for the most part. Software is a wide field and no single approach is the best for all circumstances. Knowing which approaches are better than others takes decades of failure before it clicks.

    SOLID, OOP, TDD, Agile, and others are all valuable and worth knowing their pros and cons.

    It would be nice to be able to boil it down so every dev didn't have to shoot themselves in the foot before they learn when it's useful and when it's awful.

    Dogma is a red flag.
  • 3
    How would C not have OOP? OOP is a not a construct of the language you are using. The gnu C compiler was written in C and they were using a lot of OOP abstractions. They finally decided it was a pain to do those in C and switched to C++. So now the gnu C compiler is written in C++.

    It seems bizarre people would get hung up on design patterns and not concentrate on the code and what it is doing.
  • 2
    > "over-engineering patterns, and stuffing every piece of code with interfaces to make it testable."

    Amen!

    Our code base is littered with IDataAccess interfaces that are simply data access repositories.
  • 1
    lmao you had me at UNCLE BOB.
  • 3
    UNCLE BOB TOUCHED ME INNAPPROPRIATELY
Add Comment