• 0 Posts
  • 6 Comments
Joined 7 days ago
cake
Cake day: November 8th, 2024

help-circle

  • _pi@lemmy.mltoProgrammer Humor@lemmy.mlFactory factory factory
    link
    fedilink
    English
    arrow-up
    7
    ·
    edit-2
    1 hour ago

    Factory factory…n is literally just creating an OOP closure for when your language doesn’t support first class functions, closures and/or currying.

    Also metaprogramming and abstraction is literally the only way to actually manage and deal with the capriciousness of your stakeholders.

    It’s not simple, because it’s literally not that simple. It’s Conway’s Law. That’s what being a programmer in the industry is. I run a platform team, and I get paid because I can organize and deal with technical risk and contingency better than anyone else at my company. You bet your ass I do metaprogramming.

    Also my product itself is a factory factory factory. Users create processes to author content, author content, and that content is delivered to other users. All in the same system. Managing complexity is extremely important if you want to work on interesting things.

    “And this is the way everyone is doing it now? Everyone is using a general-purpose tool-building factory factory factory now, whenever they need a hammer?”

    I’ve had this exact conversation with a programmer who was retiring. He was complaining that I ask too much because I told him that he needed a more generic way to represent the logic that encodes how our end-users traverse the content that our authoring users create and manage. He literally said something to the effect of the above quote to me, but as complaining contempt.

    The business explicitly doesn’t want to spend money crafting individual code bases and products and unique logic. Our system lives and dies by our ability to service our internal clients and meet their needs in a dynamic manner. We need manage each factory layer carefully because very often different clients want two different things at two different times, and so each decision needs to be encoded in a way that allows us to make future platform changes without having to sell the business on refactors.

    Sure you’ll run into people who overuse things when it could be simpler from the business perspective. But the reality is that most programmers in the industry have never stepped foot into a well run shop. Most programmers in the industry haven’t actually launched a product tip to tail.

    It’s very easy to criticize patterns when you don’t actually have to use them, you’ve never seen them being used properly, and you don’t know how and when to implement them.

    You don’t know how many times I’ve had to explain what two phase migration means and how to do them across multiple dependency links in the chain.


  • This practically means nothing tbh. Social networks when they gain economies of scale due to the network effect will effectively shed all the pretense of open source and open platform etc.

    We’ve seen it with Facebook, Google, etc, during the 2010’s with closing of chat standards and destruction of XMPP. Reddit 3rd Party API access is another example of this. We’ll see it again.




  • After 15 years in the industry, I don’t actually hate cargo cult programming anymore. Cargo cult programing is a useful tool to deal with the industry. Junior devs are going to join a cult, you want them in your cult, and you want your cult to have clear rules. If they want to know why the gods rain cargo, they’ll ask. At one point you don’t have any real control over hiring even as a Lead, EM, etc, because in larger companies saying “no” often doesn’t matter when hiring has been dragging on too long. They need to fill seats for deadlines they decided without you anyway.

    As a tech leader with standards, you either need to be in a wonderful company or you need to have a wonderful cult.