this post was submitted on 05 Jun 2025
218 points (98.2% liked)
Programmer Humor
23844 readers
3974 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Except those imports were used by a huge section of code you temporarily commented out, and now you'll need to manually select a dozen imports to get it working again when you come back to it.
(Sure you could have just commented out the unused imports, but the linter auto-sorted them and you're feeling too lazy to copy-paste a dozen scattered lines)
That is what version control is for.
This. Commenting out code is bad practice
Yeah, I stopped using comments as a code ON/OFF switch when I started using
git
.But then I handed over my project to someone without OCD and now the repo is full of code inside comments.
And because I don't use
git stash
properly enough, in some projects, my stash is 3+ stacks long, with almost the same changes in each of the stashed entries.In general, I'm with you
But sometimes I need to revert/comment out a code block, because another code part isn't finished/working as it should.
Sure, it clutters code, but if I just comment out a function call and temporarily replace it with the workaround, it should imho stay in code.
Else the workaround will stay forever and the commented out code will act as a reminder, that this part isn't clean yet.
But maybe it really is a case by case thing, where sometimes it's better to branch it out for later merge - although that can get really messy, while having the future implementation commented out, others will also see, how it is supposed to work and don't try to further extend the workaround, which makes future merging hell
Out of interest, how would your best practice look in such cases?
I would make it a TODO so that it's clearly temporary and so the linter bugs me about it until the intended permanent code is restored.
In general I prefer to keep separate branches and maybe a draft PR open for visibility for that kind of situation, though.
Use a good IDE, and readding the imports is pretty easy.
I find commented code to be a bit of a smell on its own, just delete it, and if you really need it again, dig it out of source control.
Yeah. My last job, a PR with commented out code typically wouldn't get approved. Either leave it in version history, or stick it on a branch
Hum... Ignore linter advice for code that you temporarily mangled.
It's not like you have to act upon it as soon as a blue line appears under your code.
Depending on the configuration, a linter may cause the compilation or a CI pipeline to fail.
Failing your local compilation due to linter problems is just stupid.
Sending "temporary" changes into your CI pipeline isn't even stupid, it's borderline malicious.
No? “Hey customer, I’ve deployed the changes you requested to the staging area. Is this what you had in mind? Keep in mind it only looks good and isn’t fully functional yet.”
During code review, we reject PR’s with commented out code. Problem solved.
Honestly I'll disable linting across entire files during these kinds of refactors because it's annoying having build output littered with unused imports and format warnings while I'm still working on a solution. Requires some extra diligence to re-enable and clean up before pushing though.
Use pre-commit with a linter config that checks all files, local dev can have a different config to disable as needed.