• CanadaPlus@lemmy.sdf.org
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 day ago

    If I actually did have that kind of job, the tests-first philosophy would sound very appealing. Actually, build the stack so you don’t have a choice - the real code should just be an instantiation of plumbing on generic variables with certain expected statistical properties. You can do that when correctly processing unpredictable but repetitive stuff is the name of the game, and I expect someone does.

    • leisesprecher
      link
      fedilink
      arrow-up
      2
      ·
      21 hours ago

      Tests first is only good in theory.

      Unit tests typically test rather fine grained, but coming up with the structure of the grain is 80% of the work. Often enough you end up with code that’s structured differently than initially thought, because it turns out that this one class needs to be wrapped, and this annotation doesn’t play nice with the other one when used on the same class, etc etc.

        • leisesprecher
          link
          fedilink
          arrow-up
          1
          ·
          16 hours ago

          If you have to ask “can’t you just” the answer is almost always no.

            • leisesprecher
              link
              fedilink
              arrow-up
              1
              ·
              13 hours ago

              Because you don’t know what you’ll need that wrapper beforehand, that’s my entire point.

              Unless you’re only doing trivial changes, the chances are very high that you won’t be able to design the class structure. Or, you end up essentially writing the code to be able to write the tests, which kind of defeats the purpose.

              • CanadaPlus@lemmy.sdf.org
                link
                fedilink
                arrow-up
                1
                ·
                2 hours ago

                That’s kind of the whole philosophy, though. The tests are the main way you understand what you’re doing, the working code is just an addition on top of that. Presumably, there’s a way to do that without repeating yourself - although I’m not turning up much on a quick look.