this post was submitted on 09 Nov 2024
176 points (93.6% liked)

Programmer Humor

19817 readers
262 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 16 comments
sorted by: hot top controversial new old
[–] [email protected] 23 points 1 month ago (5 children)

Just going to leave this horror here. It's the post feed logic from Tesseract that determines what posts should be displayed or hidden.

[–] [email protected] 23 points 1 month ago

If that's horror to you, you've been sheltered. That's quite readable, though I'd make the long lines into their own subroutines.

[–] [email protected] 13 points 1 month ago

Delightfully devilish, indeed. You made it as easy to read as possible though.

[–] PoolloverNathan 7 points 1 month ago (1 children)

Why not factor out the ! via de Morgan's laws (which would also remove most of the parentheses, as iirc && binds tighter than ||)? Also, does that language have a {#continue} sort of syntax for loops? If so, you could make it a guard clause.

[–] [email protected] 4 points 1 month ago

Thank you, I knew the rule but did not know it had a name.

[–] [email protected] 1 points 1 month ago

What is that, Vue?

[–] [email protected] 8 points 1 month ago

Early returns save lives

[–] notprogrammer 5 points 1 month ago (1 children)

But what if I were to add more 'and'

It would be extremely painful

[–] [email protected] 3 points 1 month ago (1 children)
[–] [email protected] 3 points 1 month ago
[–] [email protected] 5 points 1 month ago (1 children)

That's why you set the alternate/exit cases as individual if statements before whatever was going to be inside the original if block.

To me too long to learn that.

[–] [email protected] 6 points 1 month ago (1 children)

My code got much more readable when I learned about early returns lol

[–] sukhmel 2 points 1 month ago (1 children)

Early returns improve readability in that they make it simpler to read, but I also find them decreasing readability in that you may miss an early return and wonder why is execution not hitting the line you expect it to

[–] [email protected] 3 points 1 month ago

I'd say in most cases that's a sign something needs to be extracted into a separate function. Course sometimes code is just complicated and extracting only makes things harder to follow. Even then I'd much rather use early return than nested ifs as those are significantly harder for me to follow.

[–] [email protected] 1 points 1 month ago

Gotta go fast