this post was submitted on 20 Dec 2024
186 points (97.9% liked)

Programmer Humor

19821 readers
2 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
all 34 comments
sorted by: hot top controversial new old
[–] gerryflap@feddit.nl 3 points 2 days ago

Are people really this dramatic? There are plenty of conventions at work that we don't like but just accept. We'll moan about it every now and then (looking at you "only one return statement per method"), but in the end we'll just accept that any standard is better than total mayhem and anarchy. Usually I write the code in a way that makes sense to me and then just tidy it up to satisfy the angry rule machine. Having moet of the code in the same format makes it easier to follow, and the code that was written before these rules has me convinced that this whole thing is am improvement.

[–] shasta@lemm.ee 10 points 4 days ago (1 children)

Having dealt with this drama before, and as team lead currently, as soon as this project began, the first thing I did was set up a linter with very specific rules. If a dev doesn't agree with the rules defined there, too bad. They're there to prevent this kind of drama, and to make peer reviews more focused and productive. I don't wanna see PRs about syntax. They're nearly always just a difference of opinion.

[–] CanadaPlus@lemmy.sdf.org 6 points 4 days ago

If I ever get around to writing my own language, it's going to take parse trees off the disk, so people can deparse them into whatever they want and STFU.

[–] 30p87@feddit.org 4 points 4 days ago

kagis 'C++ naming conventions'

[–] psmgx@lemmy.world 19 points 6 days ago (1 children)

I'm just gonna say it: fuckYourCamelCase

[–] Alexstarfire@lemmy.world 8 points 6 days ago (1 children)
[–] deadbeef79000@lemmy.nz 24 points 6 days ago (2 children)

Proudly thinks that __M_fs_stdbuf_t is perfectly readable.

[–] baggachipz@sh.itjust.works 15 points 5 days ago (1 children)
[–] palordrolap@fedia.io 5 points 5 days ago

Instructions unclear. You have been assigned: ǿ. You now owe a million Danish kroner.

[–] Alexstarfire@lemmy.world 17 points 6 days ago (1 children)

Only if it stands for motherfuckers standard buffet.

[–] deadbeef79000@lemmy.nz 7 points 6 days ago

A buffet of underscores maybe.

[–] bleistift2@sopuli.xyz 13 points 5 days ago

Let me tell you: I’m currently developing a user-defined, recursive form, and most of the trouble with that stems from the fact that I don’t have a good name for the repeatable part of that form (as opposed to a static part) and the thing the form is embedded in.

Variable names do matter.

[–] MajorHavoc@programming.dev 7 points 5 days ago* (last edited 4 days ago) (1 children)

Oof. This is a pet peeve of mine.

As manager, I shut this conversation down via direct messages to each team member involved.

I remind them that they agreed during retro to live with the current set of decisions for exactly two weeks until next retro.

I don't dictate much, but I do dictate that Slack isn't an acceptable place for this kind of discussion, on my team.

The only related thing, that belongs in slack, on my team, is a link to the current accepted team standard - which will be open for review and changes again during next retro.

Alternately, if there's no standard for this yet then my team knows they're encouraged to wing it until we discuss at next retro.

And yeah, I've had to open an issue to revisit a variable name after retro, lol.

My team are an opinionated bunch, and they're often perfectionists.

[–] Anticorp@lemmy.world 1 points 4 days ago (2 children)

You allow naming schemes to change every two weeks? That's just insane! You might as well not have a naming convention then, since the project is going to be full of different conventions.

[–] MajorHavoc@programming.dev 4 points 4 days ago* (last edited 4 days ago) (1 children)

You might as well not have a naming convention then, since the project is going to be full of different conventions.

Oh, I skipped this. Lol. Obviously not. As a team, they can implement whatever convention change they want, every two weeks.

As manager, I expect them to update all active projects, in their entirety, to the new convention, each time.

And as I mentioned in my other comment, if their test coverage isn't at a level that makes me confident in that kind of global change (70% tends to be plenty), then I reserve the right to table it - until they bring the test coverage up (on all impacted projects).

[–] Anticorp@lemmy.world 0 points 3 days ago* (last edited 3 days ago) (1 children)

Well that makes more sense, but it is still a lot of churn. I guess it's fine in a project where you can change it all in a couple days. We have tens of thousands of files in the project I'm in charge of, so we'd never consider such an extensive refactor. We discuss naming conventions whenever we start a new project, and then it's locked in. Thankfully we're all pretty much of like-mind. Nothing changes from project to project in the naming realm. I did do away with BEM when I started, because I despise that clusterfuck of a convention for more reasons than I care to explain here, but I waited until a new project to do it, and everyone agreed with me.

[–] MajorHavoc@programming.dev 2 points 3 days ago* (last edited 3 days ago) (1 children)

Well that makes more sense, but it is still a lot of churn.

Sure, I mean it risks a lot of churn, but it hasn't happened, in practice.

My team will debate the merits of a change until the cows come home, but they know that if they actually decide to make the change, I'll expect them to put in all the necessary work to do it right. Ironically, that tends to curb their appetite for perfectionism.

Thankfully we're all pretty much of like-mind. Nothing changes from project to project in the naming realm.

Yeah. Same here. That's really why I get away with technically allowing a change during any retro. My teams appetite for refinements settled down after our first four sprints as a team.

Things might get interesting again, when we make our next hire; but I consider that part of the onboarding process. It should be worth the trouble just in case the new hire brings brings smart new practices we might have been ignoring. And whether anything changes or not, it creates a time and place for the new hire to argue their differences with the team.

We discuss naming conventions whenever we start a new project, and then it's locked in.

That's very practical, and really accomplishes the same net effect as my team's policy, with less theoretical risk of thrashing.

A possible difference is that sometimes my team will insist on a refactor of some old code to update to the latest standards, at the start of a new project updating an old product.

As long as the code test coverage is acceptable to me, I'll green light that effort as part of sprint zero.

We have tens of thousands of files in the project I'm in charge of, so we'd never consider such an extensive refactor.

Oh yeah. I would probably use my manager veto in that case. At some point it's just too much work to verify the change.

We do have one big repo that we're breaking up over time, and I insist that such changes be limited to the current actively developed component. It's a unique case, because the vision for the repo is to get smaller as parts of it are decoupled (and released as open source). So we don't deeply care if different modules have mildly different code standards, since they're destined for separate public repos, in the long run.

I did do away with BEM when I started, because I despise that clusterfuck of a convention for more reasons than I care to explain here, but I waited until a new project to do it, and everyone agreed with me.

That's some holy and righteous work you accomplished. All future developers on that effort owe you a debt!

[–] Anticorp@lemmy.world 1 points 3 days ago

That's cool that you take input from new-hires and consider the viewpoints they bring to the team. It's always annoying to be excited about a new job, and then be told "this is the way we do it, and that's final".

That's some holy and righteous work you accomplished. All future developers on that effort owe you a debt!

Ha! Thanks! They were using it because that's what Adobe recommends, and I made a very strong and opinionated case as to why Adobe needs to pull their heads out of their asses. Haha. Unexpectedly, everyone agreed with me.

[–] MajorHavoc@programming.dev 1 points 4 days ago

You allow naming schemes to change every two weeks? That's just insane!

Yes. Everything is open for discussion every two weeks, during our retrospective meeting.

Of course, that doesn't mean things will actually change that fast.

But let me push back a bit, too - a global find and replace on our entire source code would take maybe a couple hours. A substantial naming convention refactor would take maybe a couple of days.

The reason we don't do anything that aggressive is we don't trust ourselves to make the change correctly - not because it's actually a difficult change to make. Where our test coverage is where it should be, it's a perfectly safe change.

If my team tells me (in agreement with each other) that a change like that is necessary, my job is to go make time for them to get it done.

On the scale of requests my team has given me, a couple days to rename some variables is no big deal.

There's absolutely stuff I won't allow, as team manager, but flip flopping on variable naming is owned by the team, and I would allow it, within reason.

A couple fair-game manager reasons I might shut down a variable naming convention change are:

  • The test coverage on that part of the code doesn't inspire enough confidence to make any unnecessary changes. Improve the test coverage, and we will revisit.
  • (Hypothetically) We made two similar changes in recent memory, and as manager, this is affecting our team reputation. Let's make a plan to make this change in a way that does not impact our team reputation.

Anything short of those two scenarios, and - should my team present it to me in agreement - I go make the time for them to make the change.

A shorter version is: I'll discuss and do my best to support whatever my team wants to change - every two weeks. It's a small price to pay for some peace for 9 out of every 10 business days! (And honestly, it's a big part of my success formula.)

I just use UUIDs

[–] BKXcY86CHs2k8Coz@sh.itjust.works 5 points 5 days ago (1 children)
[–] Anticorp@lemmy.world 2 points 4 days ago

That's actually offensive.

[–] dumbass@leminal.space 2 points 4 days ago* (last edited 4 days ago)

When I was a mod on Reddit we had a slack channel, one of the new mods got outed and shamed for a post where they were a dick at a show, the sub turned on them so we had to remove them, the head mod scolded them while we were all silent watching, it felt like we were kids hiding on the top of the stairs watching a sibling get scolded.

[–] dohpaz42@lemmy.world 10 points 6 days ago

$goddamnitJeffStopChangingMyFuckingVariableNames = 1;

[–] jonjuan@programming.dev 9 points 6 days ago

Missed opportunity to title post in the style of bad variable name.

[–] pfm@scribe.disroot.org 4 points 5 days ago (2 children)

I don't get this meme at all... What am I expected to see in this picture? Or how am I supposed to interpret it?

[–] Anticorp@lemmy.world 1 points 4 days ago (1 children)

If you don't work on software projects with other people then it won't make any sense to you.

[–] pfm@scribe.disroot.org 2 points 4 days ago* (last edited 4 days ago) (1 children)

I've been doing it for 2 decades, still don't get it. So maybe you can enlighten me what IT has to do with naming stuff in code?

[–] Anticorp@lemmy.world -1 points 3 days ago (1 children)

IT isn't software development. Are you in programming, or IT?

[–] pfm@scribe.disroot.org 0 points 3 days ago (1 children)

Wtf, I've just written above: I've been doing software projects with other people for 2 decades. 🤦

I know what IT is, hence my claim that I don't know what it has to do with naming variables. I know the answer: nothing. It's a rhetorical figure. 🙄

[–] Anticorp@lemmy.world -1 points 3 days ago

You actually wrote

I've been doing it for 2 decades, still don't get it. So maybe you can enlighten me what IT has to do with naming stuff in code?

You capitalized "it", so I thought you meant IT, as in Information Technology, as in device management and shit.

Anyways, idk if I can offer any insight that you haven't read already. But naming conventions are a small detail that people get really passionate about. Additionally, when people don't follow the agreed upon naming convention for the project, then the pull request ends up turning into a big argument about renaming shit, rather than an actual code review. This will sometimes spark an even bigger conversation in slack, which can turn into a meeting, and waste a lot of time.

Its usually junior engineers that don't follow it, because they're using all of their mental faculties to solve the problems, and then senior engineers see the deviation from convention and call it out. If you don't have a team style guide, then that call-out can turn into a big ol argument between the senior engineers about different philosophies. It's annoying, but it's less annoying than working in a project with no agreed-upon naming convention.

[–] galmuth@feddit.uk 1 points 5 days ago

Homer (IT dept) is quietly watching his neighbours (dev team) from his window

[–] MashedTech@lemmy.world 3 points 6 days ago

One day I will see this drama... Until then, it will remain only in memes.