Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "so much acronyms"
-
So there was an inspection from government for our bank's IT security. I gave a tour to our server and security systems. I threw all possible acronyms as much as I could remember. Inspector nodded and noted down never uttered a word.
Finally, he breaks his silence, looking at a device he points out and says "What's that ?"
I look at the device then stare at his face back again at the device and to his face I reply "That's AC, Air Conditioner".19 -
This codebase reminds me of a large, rotting, barely-alive dromedary. Parts of it function quite well, but large swaths of it are necrotic, foul-smelling, and even rotted away. Were it healthy, it would still exude a terrible stench, and its temperament would easily match: If you managed to get near enough, it would spit and try to bite you.
Swaths of code are commented out -- entire classes simply don't exist anymore, and the ghosts of several-year-old methods still linger. Despite this, large and deprecated (yet uncommented) sections of the application depend on those undefined classes/methods. Navigating the codebase is akin to walking through a minefield: if you reference the wrong method on the wrong object... fatal exception. And being very new to this project, I have no idea what's live and what isn't.
The naming scheme doesn't help, either: it's impossible to know what's still functional without asking because nothing's marked. Instead, I've been working backwards from multiple points to try to find code paths between objects/events. I'm rarely successful.
Not only can I not tell what's live code and what's interactive death, the code itself is messy and awful. Don't get me wrong: it's solid. There's virtually no way to break it. But trying to understand it ... I feel like I'm looking at a huge, sprawling MC Escher landscape through a microscope. (No exaggeration: a magnifying glass would show a larger view that included paradoxes / dubious structures, and these are not readily apparent to me.)
It's also rife with bad practices. Terrible naming choices consisting of arbitrarily-placed acronyms, bad word choices, and simply inconsistent naming (hash vs hsh vs hs vs h). The indentation is a mix of spaces and tabs. There's magic numbers galore, and variable re-use -- not just local scope, but public methods on objects as well. I've also seen countless assignments within conditionals, and these are apparently intentional! The reasoning: to ensure the code only runs with non-falsey values. While that would indeed work, an early return/next is much clearer, and reduces indentation. It's just. reading through this makes me cringe or literally throw my hands up in frustration and exasperation.
Honestly though, I know why the code is so terrible, and I understand:
The architect/sole dev was new to coding -- I have 5-7 times his current experience -- and the project scope expanded significantly and extremely quickly, and also broke all of its foundation rules. Non-developers also dictated architecture, creating further mess. It's the stuff of nightmares. Looking at what he was able to accomplish, though, I'm impressed. Horrified at the details, but impressed with the whole.
This project is the epitome of "I wrote it quickly and just made it work."
Fortunately, he and I both agree that a rewrite is in order. but at 76k lines (without styling or configuration), it's quite the undertaking.
------
Amusing: after running the codebase through `wc`, it apparently sums to half the word count of "War and Peace"15 -
Unemployment week one.
Tired of unsuccessful HR and engineering talks with people who don’t know what they want.
When you answer their questions they got pissed because they had something else in mind. Sorry I don’t read in people’s minds asshole.
Others try to be smart and give you some fancy acronyms. Yeah because that’s most important in coding - to memorize useless acronyms.
I responded with acronyms I know and they got pissed more cause my are more funny and cover all of theirs. Thanks KISS 💋
Some of them are like I am fucking smartest asshole on this video chat and you can’t have been working with all of those technologies, yeah I just typed hello world for 15 years in one language and stupid /REST shitty software like you do it in your one job in your lifetime.
Others are asking for cv, talking about this fancy great project that in fact you know how it will look like cause you’re experienced motherfucker who can pick up nuisance but still lets get hired first and then think what to do next with this shitty crap. So they respond after two weeks that client changed their mind and if you want to fill some quiz about your hiring process.
There are also ones that got impressed so much they’re talking 1 hour that you will be our next cto and then ending process with email that there were better candidates and also post same offer on job board next day 🤦♂️
I think I just skip this shitty nightmare and concentrate on some personal project until I spend all my savings.
I just need to concentrate on one thing and not get distracted with 1000s of voices shouting “pick me” in my head.
Fuuuuuuck
If you got offended fuck you unless you like it.
After working in one project in a big happy days bubble without distraction for couple of years I underestimated how fucked up people are in real world.
We’re making hell by ourselves on this planet we don’t need much help.3 -
Wow old MS, just wow. Why running ASP.NET with VS in W7 on my potato laptop absolutely annihilates it, but running ASP.NET Core with VSCode (in UNIX) is blazingly fast?