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 - "refactors"
-
Every time I do a dirty fix and someone in my MR comments "have you investigated the root cause" I wanna kill myself.
No bro, I havent investigated the root cause because this ticket is 3 months old and was passed around like a hot potato from team to team until it got assigned to me.
If you want I can add a comment to refactor this in the future. As far as Im concerned any refactors are out of scope, also I atleast came up with some kind of solution that noone else was able to in 3 months. So im not gonna waste my time on refactoring this piece of shit code under immense pressure from management who thinks it was me who dragged this ticket for 3 months.
Its working, it doesnt cause any side effects, we all gonna die soon and nothing really matters, so fuck off.9 -
tl;dr @Root refactors some spaghetti.
I'm refactoring an api that creates a support message. It's a post route.
When seeing a magic hardcoded message string, this route instead updates the user object, and does not create a support message.
It also returns different results if the user is muted (fine) or if saving the message succeeds or fails (fine).
But if the user is creating a duplicate message, it doesn't save the message (fine) and... redirects to listing their messages instead? Wat?
Also, when refactoring this (migrating to a new message backend), I discovered that not all routes return a response. If the message is a non-duplicate, from a non-muted player, from a non-redacted client, the route doesn't respond at all!
So, I'm having fun cleaning this up. I actually am. Except I'll need to support all of the legacy clients for the next lifetime or two. I mean, really. There are still people with Android v2 devices who are using this thing. not even kidding.9 -
My biggest mistake in my life.
Boss: So when are you gonna finish this?
Me: I'll finish it today,
Me: Finishes task and submits pull request
- The Next Day-
Team Lead: Oh bro you gotta put this on a separate file, this change this too, and that, don't use that shit use this instead, oh and yeah, you can probally use this 'totally awesome typescript decorator' here for that.
Me: Refactors code intensely
Boss: You said this going to be finished yesterday
Me: FML11 -
Every time I look at some code and say "what the hell?!" the code refactors itself before my very eyes.2
-
*11 PM*
Let's program something fun before going to bed! Gotta be fun, isn't it?
*2 AM, stressed*
*Refactors everything and runs it furiously*
*Everything works properly*
Good night, sweet people!2 -
tell my boss on Friday that I'll work through the weekend to get done work done on some python code.
he doesn't give out vpn access so I can't use our company git so I put the project on a flash drive to work on.
come into work and I have an email. on Sunday he did everything I said I was doing (and had done) and then refactors the entire repo so even if he hadn't done the work, all of what I did became useless.
His way is the only way. but good luck getting him to tell you how he wants it. you just have to do a bunch of work only for him to tell you he doesn't like the way you did things and then he does it himself.
makes me realize why their other programmers didn't stick around. because they had to work so closely with this guy.
glad I started looking for other jobs sooner then later.1 -
Trying to debug why there's NaN% instead of 15% (project in JS).
Later realises isNaN(Val) literally checks for NaN datatype rather than Val is a number or not.
*shit*
Ctrl Shift F - isNaN in Atom (searches entire project), rethinks logic, refactors code
Looks around *no ones there*
Silently pushes the changes along with another major commit. -
I love git stash.
It's helps a lot for doing refactors to me. I guess it's not the most complex workflow, but it wasn't obvious to me when I started with git. Let me explain.
Refactors. As you start writing the first lines of a refactor, you start to notice something: you're changing too many things, your next commit is going to be huge.
That tends to be the very nature of refactors, they usually affect different parts of code.
So, there you are, with a shitload changes, and you figure "hey, I have a better idea, let me first do a smaller cohesive commit (let's call it subcommit) that changes a smaller specific thing, and then I'll continue with the upper parts of the refactor".
Good idea, but you have a shitload of changes nearly touching every file in your working copy, what do you do with these changes? You git stash them.
Let's say you stash and try to do that smaller "subcommit". What sometimes happens to me at this point is that I notice that I could do an even smaller change inside this current "subcommit". So I do the same thing, I git stash and I work on that even smaller thing.
At some point I end up `git stash pop`ing up all these levels. And it it shows that git stash is powerful for this.
* You never lose a single bit of work you did.
* Every commit is clean.
* After every commit you can run tests (automated or manual) to see shit is still working.
* If you don't like some changes that you had git stashed, you can just erase them with git reset --hard.
* If a change overlaps between a stash you're applying and the last "subcommit", then
if they differ, git shows conflicts on the files,
if they are identical, nothing happens.
with this workflow things just flow and you don't need to wipe out all your changes when doing simpler things,
and you don't need to go around creating new branches with temp commits (which results in bloated temp commits and the work of switching branches).
After you finish the refactor, you can decide to squash things with git rebase.
(Note: I don't use git stash pop, because it annoys the fuck out of me when I pop and you I get conflicts, I rather apply and drop)4 -
Hey guys, I need some junior advice. I work at a small startup in a team with 2 other backend developers.
The "new" guy studied at a university for a few years. He writes beautiful code. I try to learn from it and use his short hands a lot. I came from highschool and don't have a degree in it (yet).
I recently wrote a piece of code which handles some timeslot logic. I was really proud of it.
New guy needs to fix a bug and add a few things. He completely refactors my code and makes it more structured and partly better. The logic stayed the same.
It sort of bothers me that he touches my (precious) code. How do you guys handle these things?21 -
So for a project we needed some last minute changes to make it work (friday eve).
So at 10pm after I got home from the bar i started coding. I got in a flow opened up another bottle of rum and went berserk on the last feature with refactors.
The monday when i entered the office i got a intervention about my drunken code habit.
Apparently its not a good thing to just bash on someones code in the comments....1 -
Being an perfectionist.
Refactors on refactors on refactors, thats why I like a manager who keeps me from just that.2 -
First rant ever:
So I occasionally have to work for managers who say things like: "Don't reformat that code, the diff will look confusing in our repo browser". Said with such conviction that they initially made me feel retarded when I was more junior.
As time went on I realized that if we tried to "preserve" code so that the only changes visible were those that resulted in functional changes to our app, our code would eventually degrade into a steaming pile of unreadable piss.
I thankfully am working for a more technical manager at the moment so I don't have this issue and can make small refactors to make the codebase less gagworthy as I go.
I don't know though, maybe I'm wrong. Thoughts?2 -
I really find it quite annoying when my colleague refactors my code. I personally don't see the point because I find my code more readable, easy to main and intuitive. That of course is a subjective view. Problem is, there aren't any competent colleagues who can weigh in their opinion on disagreements in the team. In fact, I'm pretty sure they aren't even developers, and have some how infiltrated their way in claiming to be a software developer.
Oh yeah, the manager doesn't review our performance or keep up to date with the work people are doing.
I'm not even exaggerating.1 -
ScalaJs React compiles Scala to React.js.
There's some cool typing involved but I haven't done web front-end since nested tables were meta, so there's lots to learn.
There's exactly one senior dev at my company who is fluent in this ScalaReact, so I tag him in the PR for my project. Every day at 10:00 am, slack publicly posts a reminder with @mention that he hasn't reviewed my PR.
Three days later I haven't heard anything so I send a DM over slack asking for feedback... No response.
Four days after the PR I beg for 10 minutes of pairing time, because something in my component hierarchy smells funny. He doesn't have time for me until 5:00 .
I've now built almost a weeks worth of work on the original PR and the feedback I get is 'this works, is performant, and has no obvious bugs, but you can't merge it until you restructure the underlying component hierarchy'
It takes me and another senior dev an entire day of pairing to implement the changes without breaking anything. But, I asked for the feedback because I wanted to learn and write good clean code so I'm irritated but willing to move on.
Yesterday I posted in slack that I was having a hard time following my callback chains to find where the color was assigned to a <td (because I had to add a coloring rule). I wanted to know if I could change the type signature of a component from Tagmod (one or more HTML tags) to VdomTagOf[TableCell] so that it would be clear where the color was assigned.
Instead of just telling me 'no' and giving some context, the react dev gives me:
"Why would a dev need to know about the type unless they’re actually trying to use the thing ? Those are all great questions, but id suggest trying not to prematurely optimize for those until they actually come up"
I flipped my shit. After you couldn't make time for me for a WEEK I had to justify to the CEO why I was spending a day on PURE refactors to accommodate your PREFERENCES. Meanwhile when I'm being VULNERABLE and exposing that I am confused and struggling to complete my task you DISMISS my concerns and attack my motivations.
Unfortunately, this is all happening in the public slack channels and I start defending readability and my premise while triggered. Now I'm riding the shame train for fighting in public slack and trying to pretend none of this ever happened.1 -
So this month I had to do two major features which required unexpected refactors and I had to handle unexpected edge cases all over the place. Since I work in another timezone and time was of essence, I was kinda working around the clock to complete refactors as fast as possible because it was "important and critical". I have 7 other devs in my team but only half of the team are actually competent and even less are motivated to push through. Most of the team prefer to sit on low hanging fruit tasks and cant even get that fucking right.
So that resulted in me doing at least 100 hours of overtime this month. Best part all I got for pulling it off was a thank you slack message from teamlead and got assigned even more work: to lead a new initiative which seems to be even bigger clusterfuck...
So today I had a sitdown with my manager and I asked for 3 paid days off and told him that I did 50-60 hours of overtime. He okayed it as long as my teamlead was happy.
So I created a chat, adder manager and teamlead to it and explained my situation. That Im feeling burned out, I need 3 days off and combined with the weekend that should allow me to finally relax.
My fucking teamlead told me that these days are mine and he cant take them away from me. But then he started guilt tripping me that no one else will be working on the new initiative these days so we will have a very tight timeframe to deliver this (only until August).
Instead of having at least a drop of empathy that fucker tried to guilt trip me for taking days off for fucking unpaid overtime. What a motherfucker. Best part is Ive talked with manager and we actually have until end of August to deliver the new initiative, so fucker teamlead is gashlighting me with false sense of urgency.
I guess a hard lesson learnt here. Waiting for my fucking raise to be approved for the past 6 weeks (asked for a 43% bump which is on the way since I got very strong positive feedback).
So Im done. I proved myself, will get the salary of which I only dreamed about few months ago. Not putting any overtime anymore. If something is very urgent, borrow fucking decent devs from another team. Or replace half of our useless team with just one new decent dev. I bet our producticity would increase at least by 50%.
Its not my fuckint fault that 2-3 people are pulling the weight of 8 people team. Its not my responsibility to mentor retards while crunching under immense pressure just because current processes are dysfunctional. Fuck it. Hard lesson learned. If you want overtime, compensate with extra days off or pay. Putting my 7-8 hours in daily and Im not responding to your bullshit slack messages or emails after work. I dont give a fuck that you work in another timezone and my late responses might result in stuff getting done postponed by a few days or a week. Figure it out.2 -
3rd PR in recent memory whose test involves visiting every view of this complicated engineering design software. We're not doing refactors right.
-
So im working for this company and we work monday to friday....and i think my CTO is "funny"...we can be free half the week with not much work to do or we actually have completed all the work that was described... but he then comes in friday evening and tells us how everything should be working on monday....what everything?! What fucking everything?!!! Mind you we don't come in saturday or sunday......the everything he is talking about is suggestions we had made to him about how the system should work and he said no....now he thinks its a better thing to do....and he pushes all those refactors on the last day of the week....we had all week nigga what the fuck!!!....
-
As an android dev when I inherited a shitty project thats when I realized what really means to write readable and most importantly testable code. Codebase I inherited wasnt even really that bad it was quite readable, but boy it was not suited for any unit/instrumented tests. im talking spaghetti code.
Nowadays I refactor apps to make sure they are testable instead of spending weeks writing tests for a shitty codebase which was done without thinking about separation of concerns. Clients hate the extra couple weeks on top of request but what can I do, if they want tests they need to work with TDD approach or give extra time for refactors. -
Been making minor refactors to code base. Ran into something that resembles and behaves like a brainfart. Accepts arguments, uses them to query DB then completely disregards result and builds own result yielding dubious output.
Dumb as I am, went to investigate the story behind it. Maybe some weird business rules involved.
Git gave commit. 100+ files changed. Nice one.
Went to original story and there it was, clearly stated, like a true moronic decision: "Squash all feature commits to a single commit". No specs, no description, no explanation... Nothing.
Well... FUCK YOU TO!2 -
How I estimate work: Deep dive into the existing code, consider refactors and related modifications that may need to be done, look for alternatives, assess the scope, and then add 20% to whatever amount of time I come up with.
How every company I've ever worked for estimates work: "It's just adding a button. My nephew builds websites and he says buttons are easy. We need it in production by tomorrow."1 -
Fellow developer likes to request changes on pull requests to do major refactors on untouched code or change functionality which is outside the scope of the ticket.
Manager doesn't work on the codebase and doesn't care. This blocks our work and we often have to submit to their demands.
Feels very micromanagy even tho we are all experienced.
Asking for advice and a friend. (mostly a friend)4 -
So we are 8 devs in our scrum team but 2 major refactors felll on my shoulders (initially they were supposed to be fairly simple tasks, but like that malcolm in the middle video 2 tasks became 10 tasks in the past month) and I have been working from 11 am till 4 am for the past 1 or 2 weeks. Just yesterday I worked until 7am. Slept only 4 hours... Trying to play it cool, since I asked for a raise 5 weeks ago and still waiting for answer.
I havent told anyone because partially its my own stubborness of wanting to learn things and not wanting to bother others with questions, but Im starting to loose it.
And all because my pushed initial features resulted in unexpected blockers so scrum team leaders had an all hands meeting and my newly appointed teamlead started shitting bricks.
Meanwhile all other devs pick a low hanging fruit tasks and sit around for 2-3 weeks while I have to do heavy lifting alone with some guidance from other devs.
We dont even have QA resources. We have 2 new hires who will be useful maybe after 3-4 months and we have 1 QA guy who judging by his output is working part time. Also same guy managed to take 2 weeks of vacation in the past 4 weeks.
So due to lack of QA and due to code reviews taking long time it takes over a week for code to be reviewed and tested and each time if a blocker happens I have like 2 or 3 days to rush until end of the sprint in order to fix the feature for upcoming release or I have to move tasks to another sprint and feel bad about spillover.
Imagine implementing something in 2 weeks, just to wait for another 1-2 weeks for changes to be reviewed/tested and now having to fix blockers. And then teamlead comes up to you with being surprises how come shipping of this is taking longer than 4-5 weeks? Dude, I did my fucking part in 1-2 weeks, its not my fault that other devs perform code reviews late and they dont even launch the app to test. Its not my fault that we have very limited QA resources and our only QA guy is not even testing out everything properly.
Seriously Im starting to fucking loose it. We are basically 8 devs in a team where 2 people are doing all the heavylifting. -
How do you deal when you are overpromising and underdelivering due to really shitty unpredictable codebase? Im having 2-3 bad sprints in a row now.
For context: Im working on this point of sale app for the past 4 months and for the last 3 sprints I am strugglig with surprises and edgecases. I swear to god each time I want to implement something more complex, I have to create another 4-5 tickets just to fix the constraints or old bugs that prevent my feature implementation just so I could squeeze my feature in. That offsets my original given deadlines and its so fucking draining to explain myself to my teamlead about why feature has to be reverted why it was delayed again and so on.
So last time basically it went like this: Got assigned a feature, estimated 2 weeks to do it. I did the feature in time, got reviewed and approved by devs, got approved by QA and feature got merged to develop.
Then, during regression testing 3 blockers came up so I had to revert the feature from develop. Because QA took a very long time to test the feature and discover the blockers, now its like 3 days left until the end of the sprint. My teamlead instantly started shitting bricks, asked me to fix the blockers asap.
Now to deal with 3 blockers I had to reimplement the whole feature and create like 3 extra tickets to fix existing bugs. Feature refactor got moved to yet another sprint and 3 tickets turned into like 8 tickets. Most of them are done, I created them just to for papertrail purposes so that they would be aware of how complex this is.
It taking me already extra 2 weeks or so and I am almost done with it but Im going into really deep rabbithole here. I would ask for help but out of other 7 devs in the team only one is actually competent and helpful so I tried to avoid going to him and instead chose to do 16 hour days for 2 weeks in a row.
Guess what I cant sustain it anymore. I get it that its my fault maybe I should have asked for help sooner.
But its so fucking frustrating trying to do mental gymnastics over here while majority of my team is picking low hanging fruit tasks and sitting for 2 weeks on them but they manage to look good infront of everyone.
Meanwhile Im tryharding here and its no enough, I guess I still look incompetent infront of everyone because my 2 weeks task turned into 6 weeks and I was too stubborn to ask for help. Whats even worse now is that teamlead wants me to lead a new initiative what stresses me even more because I havent finished the current one yet. So basically Im tryharding so much and I will get even extra work on top. Fucking perfect.
My frustration comes from the point that I kinda overpromised and underdelivered. But the thing is, at this point its nearly impossible to predict how much a complex feature implementation might take. I can estimate that for example 2 weeks should be enough to implement a popup, but I cant forsee the weird edgecases that can be discovered only during development.
My frustration comes from devs just reviewing the code and not launching the app on their emulator to test it. Also what frustrates me is that we dont have enough QA resources so sometimes feature stands for extra 1-2 weeks just to be tested. So we run into a situation where long delays for testing causes late bug discovery that causes late refactors which causes late deliveries and for some reason I am the one who takes all the pressure and I have to puloff 16 hour workdays to get something done on time.
I am so fucking tired from last 2 sprints. Basically each day fucking explaining that I am still refactoring/fixing the blocker. I am so tired of feeling behind.
Now I know what you will say: always underpromise and overdeliver. But how? Explain to me how? Ok example. A feature thats add a new popup? Shouldnt take usually more than 2 weeks to do my part. What I cant promise is that devs will do a proper review, that QA wont take 2 extra weeks just to test the feature and I wont need another extra 2 weeks just to fix the blockers.
I see other scrum team devs picking low hanging fruit tasks and sitting for 2 weeks on them. Meanwhile Im doing mental gymnastics here and trying to implement something complex (which initially seemed like an easy task). For the last 2 weeks Im working until 4am.
Im fucking done. I need a break and I will start asking other devs for help. I dont care about saving my face anymore. I will start just spamming people if anything takes longer than a day to implement. Fuck it.
I am setting boundaries. 8 hours a day and In out. New blockers and 2 days left till end of the sprint? Sorry teamlead we will move fixes to another sprint.
It doesnt help that my teamlead is pressuring me and asking the same shit over and over. I dont want them to think that I am incompetent. I dont know how to deal with this shit. Im tired of explaining myself again and again. Should I just fucking pick low hanging fruit tasks but deliver them in a steady pace? Fucking hell.4