this post was submitted on 28 Mar 2024
325 points (96.3% liked)

Programmer Humor

19512 readers
312 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
[–] Enoril@jlai.lu 11 points 7 months ago* (last edited 7 months ago) (4 children)

I don’t see the benefit of this long naming convention...

It still allow bug to exist... like the fact that, with this code, the player can still play with 0 Hp.

Should have been better to put a "if(health <= 0)" instead of "< 0"

[–] joshfaulkner@lemmy.world 2 points 7 months ago (1 children)

I asked this question on this post on a different instance, but would there be issues being that the code compares a float to integer zero "0"?

[–] BombOmOm@lemmy.world 2 points 7 months ago* (last edited 7 months ago)

Since the health is a float, yeah, it can create issues. A health of 0.000000001 is greater than zero, but that would almost assuredly be displayed to the user as simply 0, causing player confusion. The easiest solution is to have health and damage always be integers. A less great solution is to use a non-floating point decimal format. If such doesn't exist in your language, you can emulate one by having health and damage both always be integers, but move the decimal point over, say two points, when displaying to the user.

[–] stockRot@lemmy.world 2 points 7 months ago (1 children)

It sounds like the only concern you have with code is its bugginess, which is short sights. This is unfortunately better documented code than stuff I've seen in production. Obviously no one should do this, but let's not act like there's no benefit

[–] Enoril@jlai.lu 1 points 7 months ago

Indeed, you can achieve a better result with less verbose naming convention. And choose better variable name to make it obvious than 0 Hp is death. While i don’t like having too verbose variable name (as it impacts the readability and quick understanding of the function), i’m not against that for the function name... without going too far of course!

Best is too have proper datamodeling of the object manipulated on top of some classic basic comments. Good interface contract is also a minimum. Best is to have full datamodeling of all the services, objects, in and out interactions between them, etc.

Documentation is a mandatory piece of the code delivery (with tests being the other important part) far too much forgotten if you don't enforce it on your teams.

[–] nikscha@feddit.de 1 points 7 months ago

Came scrolling for this ^^

[–] mindbleach@sh.itjust.works 1 points 7 months ago