825
Leave it alone (lemmyf.uk)
submitted 10 months ago by willya@lemmyf.uk to c/programmerhumor@lemmy.ml
you are viewing a single comment's thread
view the rest of the comments
[-] lobut@lemmy.ca 22 points 10 months ago

Well over a decade ago I remember a coworker would just go through the codebase and add his own coding style.

Instead of if (predicate) {

He would do if ( predicate )

I would always ask why he did it and he said, "well we don't have any coding standards so I'm going to do it" ... I replied, "there's things like unwritten rules and sticking to whatever's in the codebase makes it easy". I told the seniors and they chose not to do anything (everyone just merged into trunk) and they just left him for a while.

Then he turned rewrote built-in logical functions in code like this: if (predicate || predicate) {

Into code like this: if ( or( predicate, predicate ) ) {

This was C# and there was no Prettier back then.

Also, he would private every constructor and then create a static factory method.

Eventually the seniors told him to knock it off. All I said was that I initially tried telling them weeks ahead of time and now we got a mess on our hands.

[-] electric@lemmy.world 18 points 10 months ago

Hilarious but their fault for not making a standard. The guy was just taking the initiative.

[-] jjjalljs@ttrpg.network 5 points 10 months ago* (last edited 10 months ago)

The correct initiative would have been to make a coding standard and get buy-in, not yolo unilaterally enforce your own idiosyncrasies.

[-] savvywolf@pawb.social 10 points 10 months ago

The best part is that his "or" function changes the semantics of the code in a subtle and hard to find way. :D

[-] jjjalljs@ttrpg.network 4 points 10 months ago

We have one of those situations at work. We're a small team, but one guy is kind of unilateral in his work style. He added a bunch of "interfaces" and "domain" modules in our python Django app. His idea seems to be like instead of doing Project.object.get(id=1) with the standard Django library, you'd do like import project_interface; project_interface.get_project(id=1). The "interface" then does some home grown stuff, and probably delegates to the Django library eventually. All of which to me seems unnecessary, "yo dawg" redundant, and error prone.

Also in some places he's returning like a dict instead of query set or other Django object, which is going to cause problems later.

All of those specifics aside, because I'm sure he has reasons for all of this, but it's annoying that he's been doing it unilaterally. Worse, he had a project proposal to make the entire codebase like this and it was shot down. And every time it comes up in code reviews he's like "well, I think this is good and we don't have a standard saying otherwise".

I started really putting my foot down in places I have clear code ownership, but it still turns into like 30 comment exchanges on the pr.

He also has his own import sorting. Which could be fine except he never shared it or put it in the ci pipeline. So no one agreed to sort and comment imports like this, it's only in files he touched, and when other people change imports the comments become lies.

We have a standards meeting next week and I am not looking forward to it. We've been friendly for years and worked together before, but somehow at this job it's just not a smooth time.

this post was submitted on 06 Jan 2024
825 points (100.0% liked)

Programmer Humor

32584 readers
877 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS