• Ephera@lemmy.ml
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    The problem is that all projects start small, and frankly most of them die small. Aiming for microservices architecture right away is a surefire way to get the project killed before anyone would benefit off of the microservices.

    • Potatos_are_not_friends@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      I always lump microservices architecture as premature optimization, one that should be used when you’re maxed out of resources or everything is too spaghetti.

      I love the idea. And I even pitched it for a specific project. But I had to eat humble pie when the devops nerds threw more servers at the problem and it worked better than I expected.

      • lemmyvore@feddit.nl
        link
        fedilink
        English
        arrow-up
        0
        ·
        2 years ago

        Sounds like that thing was already designed to be horizontally scalable. Was your error related to not realizing that? Or what was the problem being solved by microservices?

    • whoisearth@lemmy.ca
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      The other angle is the majority of Devs are just… Not good…

      A good Dev in the situation you mention will design the solution needed now not the one you hope for later.

      I’m saying this as someone who has been mired in scope creep and over engineering solutions many times in my life because “what if 5000 people need to use it at once?!”

      In most cases all you need is a database, a single thread and a simple API. Build it and then as the problems come grow with them. Try to take into account issues of scale but realize you can’t and shouldn’t solve every scenario because there are too many variables which may never exist.

      • Korne127@lemmy.world
        link
        fedilink
        arrow-up
        0
        ·
        2 years ago

        A good Dev in the situation you mention will design the solution needed now not the one you hope for later.

        Maintainability is one of the most important if not the most important goal when programming. If a dev only designs a solution that fits for exactly the current situation but doesn’t allow any changes, it’s not a good dev.
        But yeah, if you start small, a solution that’s made for that is preferable. You can still refactor things when you get magnitudes larger and have the budget.

        • Potatos_are_not_friends@lemmy.world
          link
          fedilink
          arrow-up
          0
          ·
          2 years ago

          If a dev only designs a solution that fits for exactly the current situation but doesn’t allow any changes, it’s not a good dev.

          I don’t think anybody is arguing this. Nobody (in my decade-plus in this industry) actively codes in a way to not allow any changes.

          • floofloof@lemmy.ca
            link
            fedilink
            English
            arrow-up
            0
            ·
            2 years ago

            You evidently haven’t met my colleagues. There are always people who go for the quickest hack despite the trouble it stores up for later, and they’re usually encouraged by management.

        • floofloof@lemmy.ca
          link
          fedilink
          English
          arrow-up
          0
          ·
          2 years ago

          The tricky thing about software development is this balance: you don’t want to hobble your system by designing only for today, because that could waste a whole lot of time later when needs change, but you also mustn’t paralyze the project by designing for all possible tomorrows. Finding a middle path is the art, and the only proof that you got it somewhat right is that things get done with relatively few crises.