this post was submitted on 08 Oct 2023
1067 points (96.8% liked)

Programmer Humor

19454 readers
30 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 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] idunnololz@lemmy.world 86 points 1 year ago (7 children)

Just create a global object and stuff your variable in there. Now you have a global singleton and that's not a purely bad practice :D

[–] Techmaster@lemm.ee 47 points 1 year ago

Just call it "state management" and nobody will even care.

[–] magic_lobster_party@kbin.social 39 points 1 year ago (1 children)

Not necessarily a bad practice if the singleton is immutable, and it’s provided via dependency injection for example.

[–] wreckedcarzz@lemmy.world 37 points 1 year ago (1 children)

As a hobby coder: "mmmhm, mmmm, mmhm... I know some of these words!"

[–] SkyNTP@lemmy.ml 36 points 1 year ago* (last edited 1 year ago) (1 children)

Software dev is full of obscure keywords that describe otherwise pretty simple or basic concepts you stumble upon in practice naturally and that you probably already understand.

  • singleton: a class/object that is designed to be single use, i.e. only ever instantiated with a single instance. Typically used when you use class/objects more for flow control or to represent the state of the program itself, rather than using it to represent data
  • immutable: read-only, i.e. unchangeable
  • dependency injection: basically when you pass a function or object into another function object, thereby extending their effective functionality, typically for modular code and to separate concerns.

Here's one more of my favourite examples of such a keyword: memoization

[–] Solemarc@lemmy.world 7 points 1 year ago

Ahh yes memoization, the complicated way to say "remember this, I might need it again"

[–] Anonymousllama@lemmy.world 22 points 1 year ago (1 children)

Important to contain all your mess to one side of the room, makes it easier to manage

[–] shotgun_crab@lemmy.world 2 points 1 year ago

Yeah yeah let's put all the eggs in one basket

[–] mdk_@lemmy.world 12 points 1 year ago

So you saying, just the tip?

[–] xmunk@sh.itjust.works 9 points 1 year ago* (last edited 1 year ago) (2 children)

Real enterprise programmers know that everything should be on the stack... so they declare a List《void*》 in main.

[–] idunnololz@lemmy.world 8 points 1 year ago

But we might need to add more features in the future so it might not just be a list in a few years. Better encapsulate it in a few layers of abstractions just to be safe.

Real enterprise programmers know you can get another job in the next year or two so fuck best practice

[–] z3rOR0ne@lemmy.ml 3 points 1 year ago

Ah yes. Global Objects, AKA the thinnest of condoms, lol.

[–] HurgletOfficial@lemmy.basedcount.com 1 points 1 year ago (1 children)

I do this all the time in Python by creating a class like

class Core:
    foo = "bar"
[–] ryannathans@aussie.zone 3 points 1 year ago (1 children)

That's not immutable nor a singleton

[–] xmunk@sh.itjust.works 4 points 1 year ago

That makes it inherently multithread compatible!