• million
    link
    fedilink
    English
    162
    edit-2
    8 months ago

    Refactoring is something that should be constantly done in a code base, for every story. As soon as people get scared about changing things the codebase is on the road to being legacy.

    • @[email protected]
      link
      fedilink
      English
      448 months ago

      Been with a lot of codebases that had no unit tests at all and everyone was afraid to change anything because the QA process could take weeks to months.

      The result is you have a codebase that ages like milk.

    • @brettvitaz
      link
      29
      edit-2
      8 months ago

      Only if the code base is well tested.

      Edit: always add tests when you change code that doesn’t have tests.

      • @mark
        link
        38 months ago

        And also try to make tests that don’t have to change if you refactor in future (although there are some exceptions)

        • @intelati
          link
          58 months ago

          Corps != people.

          People just pass the buck and nobody stands up for what is most correct

            • @intelati
              link
              18 months ago

              Most calls I have at work are like group therapy sessions, as everyone has ideas of what they believe is correct, but they know if they keep pressing with management or take the time to do what is right, it won’t go well for them.

              This is coming from a guy who lasted a year and a half in the office. Sounds like it’s a systematic issue…

      • FlumPHP
        link
        88 months ago

        Today I removed code from a codebase that was added in 2021 and never ever used. Sadly, some people are as content to litter in their repo as they are in the woods.

    • nomad
      link
      fedilink
      88 months ago

      Our company motto is: “leave it cleaner than you found it”

    • @[email protected]
      link
      fedilink
      38 months ago

      Who is in the wrong? Your manager, for not giving you time to refactor? Or you for giving him the option?

      • @nous
        link
        English
        78 months ago

        Why do you need time to refactor? It is just part of the work you need to do and should be accounted for when doing any other work. IMO a big mistake people make is thinking refactoring is some separate thing they need permission to do. You don’t, if you need to make a change in some area refactor it first to make it easier to accept your change, then add your change then refactor to clean up. This is not three separate tasks, just three steps in one task. You should be given enough time to do the whole task, not just part of it.

        • @[email protected]
          link
          fedilink
          28 months ago

          I guess I need to refactor for readability. What you just explained is the entire point of the comment I posted. Refactoring is part of the job. Don’t give your manager a choice on whether or not it needs done.

    • @hascat
      link
      English
      28 months ago

      Yes please. Many times when I add a feature I end up refactoring some of the code first to better accommodate it.

    • russ
      link
      English
      18 months ago

      We used to call this ‘Code is Cheap’ at my last job - you’re spot on about the value of it

  • @[email protected]
    link
    fedilink
    134
    edit-2
    8 months ago

    Until you know a few very different languages, you don’t know what a good language is, so just relax on having opinions about which languages are better. You don’t need those opinions. They just get in your way.

    Don’t even worry about what your first language is. The CS snobs used to say BASIC causes brain damage and that us '80s microcomputer kids were permanently ruined … but that was wrong. JavaScript is fine, C# is fine … as long as you don’t stop there.

    (One of my first programming languages after BASIC was ZZT-OOP, the scripting language for Tim Sweeney’s first published game, back when Epic Games was called Potomac Computer Systems. It doesn’t have numbers. If you want to count something, you can move objects around on the game board to count it. If ZZT-OOP doesn’t cause brain damage, no language will.)


    Please don’t say the new language you’re being asked to learn is “unintuitive”. That’s just a rude word for “not yet familiar to me”. So what if the first language you used required curly braces, and the next one you learn doesn’t? So what if type inference means that you don’t have to write int on your ints? You’ll get used to it.

    You learned how to use curly braces, and you’ll learn how to use something else too. You’re smart. You can cope with indentation rules or significant capitalization or funny punctuation. The idea that some features are “unintuitive” rather than merely temporarily unfamiliar is just getting in your way.

    • @Walnut356
      link
      368 months ago

      Please don’t say the new language you’re being asked to learn is “unintuitive”. That’s just a rude word for “not yet familiar to me”…The idea that some features are “unintuitive” rather than merely temporarily unfamiliar is just getting in your way.

      Well i mean… that’s kinda what “unintuitive” means. Intuitive, i.e. natural/obvious/without effort. Having to gain familiarity sorta literally means it’s not that, thus unintuitive.

      I dont disagree with your sentiment, but these people are using the correct term. For example, python len(object) instead of obj.len() trips me up to this day because 99% of the time i think [thing] -> [action], and most language constructs encourage that. If I still regularly type an object name, and then have to scroll the cursor back over and type “len(”, i cant possibly be using my intuition. It’s not the language’s “fault” - because it’s not really “wrong” - but it is unintuitive.

      • @[email protected]
        link
        fedilink
        14
        edit-2
        8 months ago

        If you only know C and you’re looking at Python, the absence of curly braces on code blocks is temporarily unfamiliar to you.

        But if you only know Python and you’re looking at C, the fact that indentation doesn’t matter is temporarily unfamiliar to you.

        Once you learn the new language, it’s not unfamiliar to you anymore.

        “Unintuitive” often suggests that there’s something wrong with the language in a global sense, just because it doesn’t look like the last one you used — as if the choice to use (or not use) curly braces is natural and anything else is willfully perverse on the part of the language designer.

        • @Walnut356
          link
          98 months ago

          “Unintuitive” often suggests that there’s something wrong with the language in a global sense

          I mean only if you consider “Intuition” to be some monolithic, static thing that’s also identical for everyone. Everyone has their own intuition, and their intuition changes over time. Intuition is akin to an opinion - it’s built up based on your own past experiences.

          just because it doesn’t look like the last one you used — as if the choice to use (or not use) curly braces is natural and anything else is willfully perverse on the part of the language designer.

          I don’t think it’s that deep. All people mean when they say it is that “[thing] defied my expectation/prior experience”. It’s like saying “sea food tastes bad”. There’s an implicit “to me” at the end, it’s obvious i’m not saying “sea food factually tastes bad, and anyone who says they like it is wrong or lying”.

        • @Walnut356
          link
          58 months ago

          You could say that about anything. Of course you have to learn something the first time and it’s “unintuitive” then. Intuition is literally an expectation based on prior experience.

          Intuitive patterns exist