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 - "let there be no more wars"
-
A (work-)project i spent a year on will finally be released soon. That's the perfect opportunity to vent out all the rage i built up during dealing with what is the javascript version of a zodiac letter.
Everything went wrong with the beginning. 3 people were assigned to rewrite an old flash-application. Me, A and B. B suggested a javascript framework, even though me and A never worked with more than jquery. In the end we chose react/redux with rest on the server, a classic.
After some time i got the hang of time, around that time B left and a new guy, C, was hired soon after that. He didn't know about react/redux either. The perfect start off to a burning pile of smelly code.
Today this burning pile turned into a wasteland of code quality, a house of cards with a storm approaching, a rocket with leaks ready to launch, you get the idea.
We got 2 dozen files with 200-500 loc, each in the same directory and each with the same 2 word prefix which makes finding the right one a nightmare on its on. We have an i18n-library used only for ~10 textfields, copy-pasted code you never know if it's used or not, fetch-calls with no error-handling, and many other code smells that turn this fire into a garbage fire. An eternal fire. 3 months ago i reduced the linter-warnings on this project to 1, now i can't keep count anymore.
We use the reactabular-module which gives us headaches because IT DOESN'T DO WHAT IT'S SUPPOSED TO DO AND WE CANT USE IT WELL EITHER. All because the client cant be bothered to have the table header scroll along with the body. We have methods which do two things because passing another callback somehow crashed in the browser. And the only thing about indentation is that it exists. Copy pasting from websites, other files and indentation wars give the files the unique look that make you wonder if some of the devs hides his whitespace code in the files.
All of this is the result of missing time, results over quality and the worst approach of all, used by A: if A wants an ui-component similar to an existing one, he copies the original and edits he copy until it does what he wants. A knows about classes, modules, components, etc. Still, he can't bring himself to spend his time on creating superclasses... his approach gives results much faster
Things got worse when A tried redux, luckily A prefers the components local state. WHICH IS ANOTHER PROBLEM. He doesn't understand redux and loads all of the data directly from the server and puts it into the local state. The point of redux is that you don't have to do this. But there are only 1 or 2 examples of how this practice hurt us yet, so i'm gonna have to let this slide. IF HE AT LEAST WOULD UPDATE THE DATA PROPERLY. Changes are just sent to the server and then all of the data is re-fetched. I programmed the rest-endpoints to return the updated objects for a very reason. But no, fuck me.
I've heard A decided (A is the teamleader) to use less redux on the next project and use a dedicated rest-endpoints for every little comoutation you COULD DO WITH REDUX INSTEAD. My will is broken and just don't want to work with this anymore.
There are still various subpages that cant f5 because the components cant handle an empty redux state in the beginning, but to be honest i don't care anymore. Lets hope the client will never find out, along with the "on error nothing happens"-bugs. The product should've been shipped last week, but thanks to mandatory bugfixes the release was postponed to next week. Then the next project starts...
Please give me some tips to keep up code quality over time, i cant take this once more.
I'm also aware that i could've done more, talking A and C about code style, prettifying the code, etc. Etc. But i was busy putting out my out fires, i couldn't kill much of the other fires which in the end became a burning building (a perfect metaphor for this software)4 -
O Friends, It Is Great To Be Writing To You Again. Let Me Share With You A Most Amazing A Tale! I Have Spent Some Time Now In CapitalizedCamelCaseLand. It Is A Glorious Land, Where All Written Word, Language, and Culture Is Governed By The Almighty CapitalizedCamelCase. The People Are Productive And Extremely WellTyped (A Phrase They Charish And Use To Mean General WellBeing).
The Honorable Citizens Of CapitalizedCamelCaseLand Have But Few Fears... And I Shrink To Speak Of Them Or Even Write Them Here, As It Is A Heinous Crime To Even Mention Or Write These Words... But I Must Report, As It Is My Duty... So, Their Fears: The Horrible And Most Repellant lowerCamelCaseJavaScriptianDevils, Or Even Worse, The Grisly And Ghastly snake_case_fiends_of_pythonia!!! O My Friends How It Fears Me To Even Form Such Foreign And Strange Characters And Symbols That Remind The Citizens Of CapitalizedCamelCaseLand Only Of Pain And Suffering!
Many Wars Have Been Fought Upon The Lands Of Both JavaScriptia and Pythonia (The Cultural And Correct Way To Refer To These Harsh Lands In Respectable Company), But To No Avail Or Final Stop To The Fighting. While CapitalizedCamelCaseLand Is Currently In A State Of General Peace And Prosperity, There Is Surely A FlareUp Of Conflict To Occur Against The JavaScriptianDevils Or The PythonianSnakeFiends!
For In DevWorldia (The Name Of This Strange Planet I Report From), There Has Rarely Been A Time Of Peace Lasting For More Than About 5 Minutes, Which The Citizens Of CapitalizedCamelCase Assure Me Is Already A Massive Length Of Time And Achievement To Be Cherished.
Alas, I Beleive In The Coming Days I Must Travel To The FarAway Lands Of JavaScriptia And Pythonia. I Can Only Hope That I Am Also Treated With Kindness And Respect In Those Lands By Attempting To Emulate Their Ways, Just As I Have Here In CaptializedCamelCaseLand. I Hope To Write To You Soon And Wish You Well.
Signed And Sincerely,
Language Traveler FullStackChris7