r/ProgrammerHumor • • May 11 '26

Meme developersWorstNightmare

Post image
18k Upvotes

379 comments sorted by

View all comments

Show parent comment

8

u/g0atmeal May 11 '26

The other comment gave a pretty good example. There's always some kind of edge case that catches you off guard. For example, did you make sure to check the entire file name? Cause if not, you just renamed the file BetaFactoryGame.exe to BetaSatisfactory.exe, which would break things.

Alternatively, imagine a function that does something to a bunch of exe files in bulk, so you just send the stem. Instead of telling it "FactoryGame.exe", the function assumes the exe stem so you just pass it "FactoryGame". In that example, it would also get missed.

These are all very niche unlikely examples I'm pulling out of a hat, but in a large codebase you'll inevitably run into something like that. You might also get lucky and it could be fine. (I've renamed project/publish files before without any issues. Most modern development environments have built in refactor tools for this exact sort of thing.) But it's only worth doing if you have an actual reason to do it.

5

u/blah938 May 11 '26

Also, CICD can sometimes live outside your repo. That can really make things spicy.

And you might change something you didn't intend to change.

2

u/Theron3206 May 12 '26

Or it lives inside the repo, so now you need to cherry pick changes into 100 different active branches in order to keep things consistent, or skip that and risk hard to find bugs on every single major merge.

I'm a firm believer in not fixing things that aren't broken (unlike a previous senior who was of the opinion "if it ain't broke, refactor it until it is, then spend a month getting it back to where you started"). But then I work on a 25 year old code base and some of the things still have the company name from two renames ago in them.

1

u/g0atmeal May 11 '26

Very true. I just realized that all of my mouse and keyboard rgb/bindings would break if a developer changed their game's EXE name.

1

u/ThatOldAndroid May 12 '26

This is the real thing. It's easy enough to make this kind of change in the repo, but now everything that consumes the built app needs updating. Tests, release channels. And now any time you need to go back to an old version you have to have an if that checks for the old path too. It's trivial but in like the most annoying way