This is the dram. Since the entire codebase is shit, you basically have to rewrite it basically in its entirety.
Which means you can do it with an actual good design.
And if you mess up on something, you have a working version you can consult.
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.
This is the dram. Since the entire codebase is shit, you basically have to rewrite it basically in its entirety.
Which means you can do it with an actual good design.
And if you mess up on something, you have a working version you can consult.
The only experience I have like this is when I wanted to see how the ARMA Life mod was doing certain things, but it was programmed by like 20 different people in 3 different languages. Most of it was in German and French.
It was easier to just to find my own way of doing what I wanted to do.
With the short variable you probably also get shadowing. That's super fun in a new code base.
Or another favourite of mine: The first time I had to edit a perl script at work someone had used a scalar and a hash with the same name. Took me a while to realize that scalars, arrays, and hashes have separate namespaces, and the two things with seemingly the same name were unrelated.
#include "globals.h"
// please help
The next row would be "boss fires you thinking Claude can maintain the codebase."
At least there's a kind of happy ending when we walk past the old boss and don't toss a dollar into his pan-handling hat.
I can live without documentation and comments, but then you've got to write really well-structured, self-documenting code. Which means long variable names (or better: local constants) that describe exactly what's in them, and function names that describe clearly what the function is for, and readable code that shows what it does.
But perhaps expecting that kind of discipline from people who lack the discipline to write documentation, was not entirely realistic.
Those are amateur problems, real problems start when you are unable to run it or you don't have source code. Bonus, it's written in the in house language made by developer who left job or died - true story.
Well, I’m the only maintainer for my project, so ha! (I only have myself to blame.)
Allow me to introduce a shit ton of jQuery into all the jsp files you got.
A few years ago I had to port a tool from HTBasic (a proprietary BASIC dialect) to Python. The original source only runs in their proprietary IDE. Of course, no comments whatsoever and a lot of GOTO magic and matrice calculations some of which have no other purpose as to confuse the reader. The variables had only cryptic and meaningless three digit letters. My theory is that they intentionally wrote it in a way that it would be a nightmare to reverse engineer. And they succeeded.
The team lead has spend the last two months writing a permissions library that nobody understands how to use or debug. He wrote it with Cthulhu at his side. Soon not even Cthulhu will understand it.
Yeah, that was a fun job... at least the database tended to have some descriptive column names. They never lined up with the entity they mapped to, but it was better than nothing.