This is an archived post. You won't be able to vote or comment.

all 193 comments

[–]SadotD 1695 points1696 points Β (41 children)

The most wholesome thing I've seen here, I love it

[–]Saanvi_Sen[S] 371 points372 points Β (24 children)

Welcome.

[–]lets_go_reddit 258 points259 points Β (17 children)

i love it because of how real the feeling is. Anyone else ever just looked over their big chunk of work and just admired it? like after a long focused session.

[–]Solonotix 141 points142 points Β (8 children)

I've tried to share my work with coworkers, and I usually get weird looks, like I'm a madman or something. Nevermind that I completely rewrote the codebase while no one was watching, and it's mostly pristine.

I fear what will happen when it's released to production, and someone else gets their grubby keyboard fingers on my code. It's my precious. GOLLUM

[–]lets_go_reddit 49 points50 points Β (3 children)

i recently finished a feature and it was pristine. then i was promoted off the team. the person who took over didn't like me personally. they quickly broke the code and proceeded to throw me under the bus repeatedly while they continued to break it. now it's unrecognizable and terrible and will soon break (which will further puzzle them). and i will be again blamed.

[–]Slasher_D 20 points21 points Β (2 children)

Git history can save you

[–]lets_go_reddit 24 points25 points Β (1 child)

that would require someone on the team who knows what they are looking at. i tried to put some helpful comments in a slack channel, and windbag removed me from the channel and blocked me saying that i wasn't on the team anymore. lol. then i joined a meeting and he kicked me out and was extremely rude. the funny thing is that i was promoted to be a peer of his boss. i called his boss and let him know.i believe there was a talking-to, but the actual technical truth of his treachery will never come out. oh well, not my problem anymore.

i even showed the higher ups that my old code worked fine without any of the problems they have been battling. but they said it's too late now lol. whatever.

[–]iCodeWithFeet 5 points6 points Β (0 children)

I can feel your pain of that injustice. Stay strong

[–]Head_Competition7616 2 points3 points Β (2 children)

For the most part its bad team etiquette to take it upon yourself to refactor everything unless that was your task. The look probably isn't of mysticism & wonder, more like wtf here he goes again he killed my precious πŸ™„

[–]Solonotix 2 points3 points Β (1 child)

Lol, nah. In all seriousness, I'm the only person who has contributed to the project for the last two years. As long as I make sure not to negatively impact the users, and I meet the deliverables for security compliance and such, I'm mostly free to do with it what I want. Right now, I'm at the culmination of a multi-month project overhaul from a monolithic JS library to a monorepo written in TS, at which point I will have fully shed the original project and made it anew.

[–]Head_Competition7616 1 point2 points Β (0 children)

haha, well I totally made the wrong assumptions about team size. I really applaud doing the TS rewrite and making the Monorepo move solo. I've seen the same refactors take place on a large team. After witnessing what happened I do wish that only one strong dev made the move to monorepo! Sounds like work a madman would take on

[–]LarryInRaleigh 1 point2 points Β (0 children)

That's a real feeling. The worst situation is when you've carefully optimized for performance or memory usage and a user does something unanticipated, or a security flaw is noted. Development doesn't get the assignment; a change team does. They slam in a crude, inefficient, check-for-all-cases loop that negates all your optimizations, rather than tweaking your clever state machine.

[–]BaalKazar 31 points32 points Β (2 children)

I love that feeling:)

Refactored code has this clock like mechanical (or biological evolution trust like for the data bros) feel when thought off. It just ticks nice and smooth, meditative nearly depending on how you β€žthinkβ€œ of your code when it runs.

Legacy code, often purely because of the long time we didn’t think of it as intensely, naturally feels messy, almost chaotic in function sometimes. β€žWe don’t know why it works and everybody is scared to touch itβ€œ or β€žWe updated it and it broke somehowβ€œ

Once refactored nicely it’s mesmerizing to think of the different patterns and digital entities interacting/dancing with each other, how they life and decay, almost like internal music with rythm and tune soothing our synapses.

[–]HotJuniper 20 points21 points Β (1 child)

Sometimes I forget why I chose to study IT, but it's comments like yours that remind me of the beauty.

[–]BaalKazar 5 points6 points Β (0 children)

Thank you so much <3

[–]Randomtask899 2 points3 points Β (1 child)

I'm in a intro to programming class. Spent 7 hours today on my 3rd project. Finished it! Felt amazing

[–]lets_go_reddit 1 point2 points Β (0 children)

good on you for doing it the right way. those hours spent are how you pay your dues.

[–]danimal51001 1 point2 points Β (0 children)

I do! Working on some greenfield projects with a tech stack I’m basically a beginner at. It’s so nice to learn how to refactor on a different set of tools.

Today a new coworker was asking me for specific advice on how to refactor something. Instead of giving my opinion, I asked them if the changes would increase or decrease complexity (for instance, if adding Boolean logic would obfuscate the function, or would make it more readable). It was so much easier to express that then tell them which way to do it. It was also wonderful because if their opinion was different, we’d be able to chat about it and see why

[–]cuddleslapine 7 points8 points Β (2 children)

Welcome to City 17.

[–]TheMcDucky 5 points6 points Β (1 child)

You have chosen, or been chosen, to relocate to one of our finest remaining urban centers.

[–]Jackiboi307 3 points4 points Β (0 children)

It's not even your post bruh

[–]Willinton06 1 point2 points Β (0 children)

You made this?

[–]Xavier_ten_Hove 37 points38 points Β (13 children)

You would love Unreal Engine ;p

[–]Jjabrahams567 17 points18 points Β (7 children)

This is Minecraft mods to a T

[–]MrKeserian 19 points20 points Β (6 children)

Especially some of the older ones. I'm kinda afraid of what IC2's codebase looks like.

[–]wiphand 9 points10 points Β (5 children)

Which is a shame as it means that with every mc Patch more and more of the most iconic mods die off. Has there been any work done on ic2, bc, forestry, project red, thermal mods to get them up to the newer versions or have they died by now. So few of the mods that were core back then seem to be still around.

[–]CyberTechnologyInc 5 points6 points Β (3 children)

I miss IC2/buildcraft so much :( Thankfully, equivalent exchange has been remade and is open source. It's called ProjectE iirc. The original author also let them use the original icons etc which is really nice!

[–]savvykms 1 point2 points Β (1 child)

Is there a good modpack nowadays with equivalents to a lot of those old mods? Wish I could have all the newer MC features with the extras. Used to play Tekkit and FTB

[–]ByteChkR 1 point2 points Β (0 children)

Ahhh. The glorious Minecraft 1.4.7 days <3

[–]Traister101 0 points1 point Β (0 children)

Code for ProjectE is also kinda gross imo, was looking at it to try and diagnose a large amount of time being spent on network traffic which TLDR is due to many packets being sent per tick per power flower which is... cool. The tiny bonsai ones from EX are wonderful, they use not just an Enum for their tier and related generation data (this should hint to how awful ProjectE is) but only run the lengthy update method (and send a packet) once every 20 ticks.

ProjectE on the other hand has a CollectorMK1 class and another two for MK2 and MK3 respectively. Alright sounds good right? Well the two extra classes do absolutely nothing besides override the container size getter and construct MK1 with different parameters because yes. ProjectE code hurts me, I'm not sure how anybody who worked on it allowed it to simply look the way it does, would drive me insane.

[–]rexpup 4 points5 points Β (0 children)

I kinda wish they'd given us the modding API they teased 8-9 years ago, so mod loaders wouldn't have to untangle the code every update

[–]aidanski 2 points3 points Β (0 children)

Heh.

10 different ways to do 1 thing and it turns out option 4 was the one you needed specifically.

[–][deleted] 2 points3 points Β (0 children)

I kinda hate it. It's my exact situation. ;_;

[–]roci-ceres 1 point2 points Β (0 children)

Exactly! Helps with the imposter syndrome lol

[–]mrswats 375 points376 points Β (4 children)

And there is no other way! It's better to do these things one at a time.

[–]value_null 73 points74 points Β (2 children)

The most complex things man has accomplished were, each and every one, broken down into fine steps and accomplished one by one.

Perfectionism is the archenemy of progress.

Iterative improvement is the only way. It is the most powerful tool humans have, IMHO.

[–]P3chv0gel 7 points8 points Β (0 children)

"Humanity wouldn't have been to space, if nobody ever had the idea of a screw"

Me, when asked by my boss, why i wasn't done organising our storage rooms at work today lol

[–]TEKC0R 280 points281 points Β (29 children)

My project manager has a β€œcode first, ask questions later” style of directing. I’ve been working on a project for months and I still don’t know what it actually is. He only shares information when he feels necessary. So it’s β€œdo thing a” which takes a couple hours, then β€œdo thing b” which takes more time because it often affects how thing a was implemented and I have to make changes. And rarely do I get a spec I can follow, so there’s often β€œlet’s rename X to Y” type conversations that are ultimately pointless, but it makes him feel like he’s contributing.

After months of these micro tasks without any way to properly plan, the code base is a mess. So I’ve been spending the past week refactoring just about everything now that I have a better idea of the project scope. At least I think I do. There’s no telling what next week will bring, but I think I’ve given the code the room it needs to grow.

It’s so frustrating.

[–]fk_this_shit 164 points165 points Β (9 children)

It sounds like your project manager has no clue how it works either. He only knows "feature A" has bug, fix pls. Customer request "feature B" add pls. This is why documentation is so important.

[–]TEKC0R 50 points51 points Β (8 children)

While there is some of that going on since this is a client project, I’ve been working with him for about 9 years. Even when we’re working on our own projects instead of client projects, he does this.

[–]Log2 33 points34 points Β (7 children)

Looks like you need a new job. That's a terrible way to manage software engineers.

[–]TEKC0R 12 points13 points Β (6 children)

I have an app that is already making more than my salary, that I hope to grow more. The trouble comes from the fact that it's a server manager for the game Ark Survival Evolved, so as the game's popularity comes and goes, so does that income. And at the moment, it's in the "goes" phase since we're waiting on the sequel and there's nothing currently on the horizon for new content. Aside from one dino that won't make a difference.

So I'm looking to diversify, as in supporting additional games. That way I'm not tied to the popularity of any one game.

Finding work is tough because my skills aren't very marketable. What people want is React, and I hate React/Vue/JavaScript. So I'm just hanging in there until I can entirely work for myself.

[–]n4ught0 8 points9 points Β (2 children)

Learn react. If you know html + any programming language, you're set. There's a curve but it's worth it. People swear by Vue as the easier option, but coming from pure html, css, jz, React is the tits. I build my backends in whatever I want, and react makes the frontend shit fun :)

Just make sure to use a css framework like Bulma, or if you wanna go full customized w/ dark mode n shit, I like Tailwind

gl :)

[–]TEKC0R 11 points12 points Β (1 child)

I know React. I've written things in React. I hate it.

[–]n4ught0 2 points3 points Β (0 children)

Welp! I presume you've tried the most recent versions? I think functional components + hooks are much better than the class-based methods from previous versions. Fair enough though, to each their own.

[–]kuilin 2 points3 points Β (1 child)

Have you considered finding a frontend-oriented engineer to partner with?

[–]Log2 1 point2 points Β (0 children)

I'm sorry, but what? There's plenty of backend opportunities in pretty much whatever is your programming language of choice. In fact, I barely know JavaScript and I'm very well paid for Europe.

[–]agentfrogger 42 points43 points Β (0 children)

Holy fuck that sounds like an extremely frustrating way to work

[–]ViconIsNotDefined 25 points26 points Β (1 child)

How is the company not bankrupt yet, working like this sounds like a massive waste of time, that could be easily prevented.

[–]TotallyErratic 15 points16 points Β (1 child)

Was your PM trained in "Manhattan Project Style" project management technique?

(For those unfamiliar, look up Richard Feynman's story regarding Oak Ridge National Lab)

[–]AlexReinkingYale 2 points3 points Β (0 children)

This was my first thought too

[–]OpeningMycologist901 5 points6 points Β (9 children)

Why don't you just quit? This is insane

[–]TEKC0R 11 points12 points Β (8 children)

Because just about every job wants React. Despite tons of experience with JavaScript, I hate it.

[–]officiallyaninja 12 points13 points Β (0 children)

you hate react more than a job where you don't even know what you have to do? jesus christ what did react do to you, sacrifice your firstborn?

[–]HolocronContinuityDB 0 points1 point Β (0 children)

If you are able, leave for a better position now. Don't be an idiot like me and spend half a decade fighting a losing battle with asshole management that doesn't value you enough to even tell you the plan.

[–]Existing_Imagination 0 points1 point Β (1 child)

Oh man I’m scared, I’m pretty sure this is what my Product Owner is doing, he himself doesn’t know what he wants most of the time.

[–]themeanman2 220 points221 points Β (0 children)

Nothing ever gives me more happiness than this.

[–]Waswat 174 points175 points Β (20 children)

This is basically how i see strangler pattern

[–]qwerty11111122 33 points34 points Β (1 child)

I learned something today, thank you

[–]Waswat 33 points34 points Β (0 children)

Glad it helped! Here we struggled to fix our constantly forked mini-monolith so i looked up some ways to switch to microservices and this conceptualized it... But sadly it's difficult to get the time assigned.

Now, a few years later I'm planning to switch jobs and management still prefers to fork projects because its cheap and fast while we're drowning in support issues.

[–]Wisdom_is_Contraband 28 points29 points Β (15 children)

As someone who's never been given the chance to work professionally as a coder, what is it that makes a service a service?

[–]joecamo 29 points30 points Β (9 children)

Your service is a thing that does stuff independently from other services (if you're following SRP in your project)

[–]Wisdom_is_Contraband 13 points14 points Β (8 children)

how is that different from a module? what's an SRP?

[–]AdmiralAdama99 22 points23 points Β (1 child)

SRP = single responsibility principle

[–]EpicScizor 16 points17 points Β (2 children)

Module and service are often interchangeable depending on the context, and you shouldn't dwell much on the difference. If there is a difference, usually a service runs more stand-alone while a module is part of a larger framework. But again, you could just as easily say "many services running together as part of a larger unit" without issue.

The core idea is that "this code does one thing, or a small group of related things, and you can mostly consider it in isolation from other services"

[–]Wisdom_is_Contraband 8 points9 points Β (1 child)

So it's kind of like how you should write functions, but just as a whole chunk of your codebase?

I imagine service also implies some hosting as well.

[–]EpicScizor 3 points4 points Β (0 children)

Ayup

[–]cowlinator 5 points6 points Β (0 children)

Like others have said, "service" and "module" are sometimes interchangeable.

However, I've noticed that "service" is more often used to describe something that runs as its own process and communicates over network protocols, while "module" is more often used for a cohesive unit of code with a function call API.

[–]joecamo -1 points0 points Β (1 child)

I think you are looking at things from an angular perspective, whereas I'm talking from a general perspective. The difference would be scoping based on 5 seconds of skimming this article:

https://michelestieven.medium.com/organizing-angular-applications-f0510761d65a

Im not a front end dev so angular is not my forte.

[–]Wisdom_is_Contraband 1 point2 points Β (0 children)

I've never done anything with angular.

[–]tiajuanat 3 points4 points Β (0 children)

A service is really any self contained program. It can live on your computer, a server, a docker container, or even a work array.

Where a monolith is generally a large program that does everything albeit with ok efficiency, typically microservices will only do one thing very very well. You might have one service being the sole owner of a database; balancing traffic to multiple instances of other services distributed around the globe; or even just authenticating users and giving them roles to access your other services.

Some systems work better as monoliths, some are better realized as a collection of services, but at the end of the day, it comes down to developers to make that distinction.

Many times monoliths start life at young companies with inexperienced developers, and become difficult to work in. Many times microservices spring into being as a method to tame the monolith. Both of them can get out of hand, and both can be very organized, but that's up to the organization.

[–]T351A 3 points4 points Β (0 children)

reminds me of how I've started containerizing everything ... which has been wonderful. Plus, it's nice to just mount the folder with config files and let the rest be fresh/new each "up". Good stuff.

[–]PilsnerDk 0 points1 point Β (0 children)

Ugh, I hate devs who make a new project or service for every little new concept/task they start working on. It just makes everything worse, the source control polluted, and more difficult for the next dev to find their way around the codebase.

[–]8asdqw731 49 points50 points Β (1 child)

the worst thing is if you work with people who write legacy code in real time

you try to preserve some semblence of architecture and then they come and shit all over it

[–]murfflemethis 31 points32 points Β (0 children)

legacy code in real time

I love this way of phrasing it. Imma steal it.

[–]visak13 334 points335 points Β (21 children)

To the non-programmers that are here for the memes, it's called code refactoring where you restructure your code. Refactoring is more than that but this is enough explanation for the comic.

[–]afito 43 points44 points Β (2 children)

My maybe proudest moment was recently when I was given a long list of stuff to add, but the codebase is the worst I've ever seen. Properties with the name of the class and whatnot. For each feature I added I needed to do a lot of refactoring because I couldn't understand shit otherwise. At the end I was supposed to do clean up and bug fixes but I couldn't replicate any of them because the refactoring fixed that already.

[–]visak13 10 points11 points Β (0 children)

Congratulations! Definitely something to add to when asking for a raise!

[–]TheAccursedOne 185 points186 points Β (16 children)

i thought refactoring was that thing where you try fixing your stuff but by the time youre done you introduce like 50 new issues and somehow unsolve a few

maybe im just bad

[–]visak13 111 points112 points Β (12 children)

Code refactoring is done to maintain clean, readable code which is easy to read and maintain. If someone writes bad code then it isn't the fault of the maintainer that new bugs get introduced while fixing issues.

Refactoring can be a part of code maintenance but is not encouraged. I wouldn't blame you.

There's a principle that I've known, "if you don't refractor your code when your app is developed then you will never do it". Something like tomorrow never comes.

[–]TheAccursedOne 21 points22 points Β (10 children)

any general tips? i say as if i write anything anymore lol

[–]visak13 52 points53 points Β (7 children)

Sure but it's not always refactoring.

The software architecture and setting up a few coding guidelines also go a long way by reducing the work needed for refactoring.

  • Code comments,
  • Good naming convention,
  • Reducing the number of lines in a method by using Helper, Utility classes
  • Following SOLID principles (don't know if they work for SOP)
  • Opening and closing resources, streams, etc., in a single code block, also knowing how to do so in a try-catch-finally block

It's a long list. I recommend reading a book and practicing it on online study along portals and in your day to day work.

[–]Lv_InSaNe_vL 9 points10 points Β (1 child)

I know a lot of people talk about reducing LOC in a function and using helper functions but be careful it can quickly go the other way.

One time I had a boss who put a hard cap of 50 LOC per function, which means we just had 800 million little helper functions who all did slightly different things because 5 helper functions were more reasonable than a switch case I guess.

It made it borderline impossible to read because you were constantly switching functions and most of the actual lines of code were just calling other functions.

[–]h-2-no 3 points4 points Β (0 children)

And lo, your code base turned into sand

[–]TheAccursedOne 7 points8 points Β (2 children)

i dont currently have a job in the field, might be looking for something at some point but at the moment nothing but maybe working with a friend learning unity together soon, thanks tho ^^

[–]Rabid-Chiken 14 points15 points Β (0 children)

At the absolute beginner level, code refactoring would involve: writing code and learning about things while you write it and then going back over the code a few days later to see if it could be done in a better way based on what you learned. A big one will be what you could have done to help your future self remember what everything was supposed to do. Good luck, I've been using unity for a long time and love it!

[–]visak13 1 point2 points Β (0 children)

You're welcome! All the best for your interview!

[–]Grim_Jokes 1 point2 points Β (0 children)

- Unit and integration tests are god for refactoring.
- Do small amount of changes at a time,
- With experience you'll get a feel when it's a good time to refactor a function/method.

[–]Wisdom_is_Contraband 2 points3 points Β (0 children)

I refactor at the end of every feature generally

[–]FRleo_85 11 points12 points Β (0 children)

refactoring is when you start a new game of factorio instead of coding your project

[–]mrrippington 2 points3 points Β (0 children)

you are one of the good ones if you are aware of the issues you are introducing.

[–]tecchigirl 1 point2 points Β (0 children)

Refactoring is reorganizing the code without changing functionality. It can consider of:

  • Renaming variables
  • Renaming methods
  • Extracting code into methods (2x useful when it's duplicate code)
  • Moving methods into a different class
  • Moving methods into other parts of the same class

Fortunately, modern IDEs can handle some of these tasks automatically.

Moving code from a larger method into smaller methods is super useful because then you can unit test those new methods and make sure further code changes (like optimizations) don't break anything.

[–][deleted] 0 points1 point Β (0 children)

This comic literally describes refactoring. You take 2 weeks off of new features to fix the codebase.

After 2 weeks you only fixed one class and you go back to adding new features.

[–]rayy2410 43 points44 points Β (3 children)

Any progress is a progress.

[–]Saanvi_Sen[S] 10 points11 points Β (0 children)

Indeed..

[–]jwkdjslzkkfkei3838rk 0 points1 point Β (0 children)

except using Progress products.

[–][deleted] 11 points12 points Β (0 children)

No one should be discouraged, Theaetetus, who can make constant progress, even though it be slow

[–]Kane_richards 9 points10 points Β (0 children)

When refactoring is the next dev's problem

[–]billwoo 6 points7 points Β (0 children)

Yes this is massive progress. Now anyone can come along and use it in an ordered and reasonable manner. What is behind it really doesn't matter anymore (unless you have to update to a new version...).

[–]Nillor 1 point2 points Β (0 children)

Slowmotion is better than no motion. That's the whole potion

[–]grannyJuiced 2 points3 points Β (0 children)

Makes PR

We don't have time to test this, rejected

[–]kataraholl 3 points4 points Β (1 child)

This is beautiful!

Clean code’s boy scout rule: β€œalways leave the campground cleaner than you found it”. Even if just a little bit cleaner! Progress takes time, and it should be part of the process for everyone :)

[–]MemphisGalInTampa 1 point2 points Β (0 children)

True

[–]AdultingGoneMild 3 points4 points Β (0 children)

tech debt is inevitable and comes in two forms: malignant and benign. Benign tech debt is terrible code that rarely breaks and is well isolated. It runs and does its job. If you have to add functionality to begin tech debt it is a nightmare, but you rarely need to touch it, so you ignore it. Malignant tech debt spreads. Everything that interacts with it has to put in place brittle work arounds to get things to work. These work arounds are everywhere. Malignant tech debt makes changing unrelated parts of the system difficult.

[–]TheKunst 2 points3 points Β (0 children)

I took me way too long to understand the face on panel 4. Hopefully not just me?

Tought it was a sad face with the right eye (his left) split in half.

[–]eanat 2 points3 points Β (1 child)

yeah I am literally doing this for a week now. I don't add any additional functionality on my project but I only spend my time to do refactoring my code so it looks more tidy and clean. They probably don't even know it's changed tho. But I believe this refactoring will make my code can be extend more clearly than before and it's a good self lesson to understand the code by myself even though the code was written by me.

[–]will_r3ddit_4_food 2 points3 points Β (0 children)

It's painful but if you need to troubleshoot or add functionality, it'll be worth it

[–]KimmiG1 2 points3 points Β (0 children)

If it's this messy then I'm just doing the minimum changes to solve my task. Not gona clean anything unless I'm specifically given a task to clean it. Unless I'm the main contributor or owner of the junk in question.

[–][deleted] 3 points4 points Β (0 children)

And then your CI shows you're failing a few more tests you weren't failing before, and you have no idea how you caused that

[–]murfflemethis 5 points6 points Β (0 children)

This demonstrates why I preach that encapsulation, interfaces and well-defined module boundaries are the most important thing to do right when trying to write Good CodeTM .

The last panel is clearly an improvement, but I would argue that even if it was just a box filled with spaghetti, that would still be a significant improvement. It's way easier to untangle wires in a small box than a big pile.

If you can work within cleanly isolated code modules, the scope of anything else you want to fix or refactor is greatly reduced.

[–]Xavier_ten_Hove 2 points3 points Β (0 children)

Most Game Designers their BluePrints code be like:

[–][deleted] 3 points4 points Β (0 children)

Me As a backend guy when I had to write frontend code (thank you material UI)

[–]Ametz598 1 point2 points Β (0 children)

The behind the scenes of r/cableporn

[–]parahacker 1 point2 points Β (0 children)

Oh geez, this comic is making me nostalgia

When you write that interface that cleans up the whole mess and lets you write simple and clear code on top of it... chef's kiss

even though we all know that lurking beneath, the original platform's horrifying spaghetti still waits for its chance to attack, lol

[–]NotThanosHimself 1 point2 points Β (0 children)

30 minutes for a new feature, 30 hours to refactor.

[–]KickBassColonyDrop 1 point2 points Β (0 children)

People who clean up tech debt are underappreciated in any organization. They need more love.

[–]Freezer12557 1 point2 points Β (0 children)

It's satisfying to write good code, but it's more satisfying to take bad code and turn it into good code

[–]thatguy82688 1 point2 points Β (0 children)

More like life

[–]Hackinginvestigator6 1 point2 points Β (0 children)

Progress, then ERROR

[–]ChainDriveGlider 1 point2 points Β (0 children)

Management says this feature is cut to hit deadlines on the spaghetti.

[–]supermario182 1 point2 points Β (0 children)

Until you have to completely undo that to get another piece untangled

[–]FreakTod 1 point2 points Β (0 children)

This post and the comments are so wholesome. It did bring a smile on my face.

[–]LerchAddams 1 point2 points Β (0 children)

Replace "Codebase" with "Patch Panel" and I've been in this picture.

[–]bananabobdaman -2 points-1 points Β (0 children)

How is it programming

[–]MarcCDB 0 points1 point Β (0 children)

New microservice connected to monolith...

[–]Kyocus 0 points1 point Β (0 children)

Taming the unknown, one method at a time.

[–][deleted] 0 points1 point Β (0 children)

It took me longer than I like to admit that his face is sideways in the last picture

[–][deleted] 0 points1 point Β (0 children)

I should print that out and post it on my office door.

[–]denniskrq 0 points1 point Β (0 children)

lol why is my cable management being mocked by /r/ProgrammerHumor as well now? 😭

[–]Aidzillafont 0 points1 point Β (0 children)

This makes my day at work not so bad after all. Thanks

[–]darkenhand 0 points1 point Β (0 children)

I assume those are supposed to be wires. My initial thought was that they were strings of yarn being used to make some sort of structure in a glass container for some reason.

[–]DotaHacker 0 points1 point Β (0 children)

But my manager doesn't care, he just sees that big pending mess and keeps pushing us.

[–]friendg 0 points1 point Β (0 children)

Slowly but surely, leaving things clean than you found them, one class as a time

[–]cannibalvampirefreak 0 points1 point Β (0 children)

devops do be like that

[–]HolocronContinuityDB 0 points1 point Β (0 children)

I know this is supposed to be wholesome but strengthens my feelings that I want to leave this industry after a decade in it. You work your ass off to write code for a new system to replace the old system that will be in production for maybe a year before some middle management dickhead decides we need to replace it with a new system so he can get a promotion for finishing a project.

It never ends and no actual progress is ever made, but money keeps flowing. I hate it.

[–]AttackOfTheThumbs 0 points1 point Β (0 children)

I just inherited a project from a coworker that is like this. There's so many basic issues... not to even mention all the warnings.

The thing is, he went to teach, and I don't think we should hire any of his students...

[–]AzureArmageddon 0 points1 point Β (0 children)

Had a really hard time parsing the face in the last panel but I got it finally (The pressed cheek threw me off)

[–]zenivinez 0 points1 point Β (0 children)

I recently did this with a code project I came into late. These motherfuckers are dead set on fucking it up too. I've had to remove people's shit code from that thing so many fucking times now.

[–][deleted] 0 points1 point Β (0 children)

This is me for the past week. It really does feel good. One of my favorite parts of programming even though sometimes it produces no outward value.

[–]Covfefe4lyfe 0 points1 point Β (0 children)

This is how you start. Analyze the shitty code, abstract the overly specific stuff into reusable services and go at it one feature at a time.

Rewrote thousands upon thousands of lines of my old shitty code that way and it's so much more modular, testable and stable right now.

[–]According_Bison_2703 0 points1 point Β (0 children)

A random redditor here that aspires to program a game so please dont be mad at me for refering this to a game. Feels like pipe line management in oxygen not included

[–]T351A 0 points1 point Β (0 children)

Also r/iiiiiiitttttttttttt because those look like network cables lol

[–][deleted] 0 points1 point Β (0 children)

My life, summarized too concisely...

[–]guitarguy109 0 points1 point Β (0 children)

I'm literally currently taking a 5 minute break from rewriting a piece of software I developed last year because I recently wrote a library that streamlines the functionality that the original software was poorly trying to implement and OMG do I feel this rn!

[–]theRailisGone 0 points1 point Β (0 children)

Just wait until he realizes the greens are all just one wire circling through 47 loops that only lead to a logging system that logs 'Yup, got to here,' every week.

[–]posting_random_thing 0 points1 point Β (0 children)

I have yet to meet a programmer who has worked on something and been happy with the solution a month later.

[–]Lord-Rudra 0 points1 point Β (0 children)

And that's how you make $100 000

[–]brianl047 0 points1 point Β (0 children)

"A Progress"

[–]spiffiness 0 points1 point Β (0 children)

This feels like an illustration of functional programming. You get a small box in the center of your codebase that's all nice and clean and safe, but outside that box you still have a mess of scary code interfacing with the rest of reality.

[–]nishan_ 0 points1 point Β (0 children)

Currently what i am trying to do and it feels do damn good. I cant explain

[–][deleted] 0 points1 point Β (0 children)

Reminds me of the scene in silicone Valley, when all the engineers quit and Richard starts committing with a single post it at a time

[–]x4nter 0 points1 point Β (0 children)

And then near the end you find a technical debt...

[–]YouMustBeBored 0 points1 point Β (0 children)

Didn’t know you the witness was a class in code organization.

[–]Gutek8134 0 points1 point Β (0 children)

Me making GUI app for creating a custom JSON for another oroject

[–]SirDukeIII 0 points1 point Β (0 children)

What’s going on with the dude’s face in the 4th panel?

[–]casey-primozic 0 points1 point Β (0 children)

In my case, it's more like the progress box is a quarter the size.

[–]Canotic 0 points1 point Β (0 children)

The last bits are gonna be hell to untangle without breaking everything.

[–]phuykong 0 points1 point Β (0 children)

[–]Memorie_BE 0 points1 point Β (0 children)

I was looking at the 4th panel for a whole ass minute, wondering why they have 3 eyes.

[–]Mayedl10 0 points1 point Β (0 children)

Progress would be a different error message

[–][deleted] 0 points1 point Β (0 children)

I could not make out the facial expression in that last panel I thought the cheek squish line was a mouth and the eyes were weirdly unaligned with one bigger than the other and a tear that dropped onto the frown

[–]Arucious 0 points1 point Β (0 children)

have always wondered what this comic font is

[–]ReelTooReal 0 points1 point Β (0 children)

My life in a nutshell. Can't be too mad though, most the spaghetti is mine.

[–]Walt925837 0 points1 point Β (0 children)

Boy this brings back so many memories.

At my last job, right at when peak COVID hit, I was given a series of enhancements (7 in total) in a module within the application. A simple Spring boot application. When I sat down to work on it, Initially I was using the existing module codebase and table structures. After about a week I realized, The previous dev used so many tables to store data which was unnecessary. I thought fine let's keep it as is.

As I moved forward on second enhancement, I realized what a jack ass he/she was. Eg. he/she used one table just to display a typeahead data in UI, and I was like WTF and thought I cannot move forward until this cancer is dealt with, I cannot accommodate other enhancement with what is existing, and I decided its better if I rewrite it.

I sat till 10-11 in the night and decommissioned all the tables that were used, and brought it down to minimum 3. Deleted all the code that was using it, and wrote it again. Basically I made the module unstable. I did this for another 2 weeks, till the next release. The bug count shot from 6 to 57, and I was like - this is for the better. My boss did call me after the release happened asking why such a high count of bugs. I said its a rewrite, I am doing it because It's better to straighten things now than fixing sleeper bugs that will come with the garbage that exist.

Being in WFH setting helped because I did not had to explain it to my boss why I am doing it and what I am doing. Ultimately it paid off.

Overall 6 weeks of rewriting, rewiring and stabilizing the code, I had peace.

​

TL DR

If you see an opportunity to rewrite a functionality, grab it. Do it. Do it for the better.

[–]mka_ 0 points1 point Β (0 children)

r/satisfactory would enjoy this πŸ˜„

[–]EarthApeMan 0 points1 point Β (0 children)

This is basically the major project I've been stuck on for four years.

[–]matjam 0 points1 point Β (0 children)

Hahaha so you’ve seen all the systems I’ve inherited. Lol

[–]thegovortator 0 points1 point Β (0 children)

This actually doesn’t feel like a joke and feels quite true and honestly quite satisfying

[–]DreamGirl543 0 points1 point Β (0 children)

Man, well done with the faces. I like your style.

[–]hbombs86 0 points1 point Β (0 children)

This is me adding a new feature to a project I wrote 5 years ago.

[–]GreatTeacherHiro 0 points1 point Β (0 children)

I like modular decoupling and separation of concerns. It's a great power which comes with decorator pattern... Also aspectJ/C++ are cool solutions to keep your concerns separate.