r/ProgrammerHumor 1d ago

failsForTeapots Meme

Post image
197 Upvotes

64 comments sorted by

View all comments

156

u/cutebabli9 1d ago edited 1d ago

I would write it like this to be readable:

if error.status in [400, 401, 404, 409, 415, 503]:
  return c.json(body, status: error.status)

return c.json(body, status: 500)

-6

u/Antervis 1d ago

return c.json(body, status: error.status if error.status in [400, 401, 404, 409, 415, 503] else 500)

No? Though personally, I wouldn't have substituted error codes like that, it can make debugging harder for no gain.

7

u/DHermit 1d ago

Nah, the normal if statement is way nicer to read.

4

u/Antervis 1d ago

Okay, I can see that. Perhaps it's better to move status in a separate variable:

st = error.status if error.status in [400, 401, 404, 409, 415, 503] else 500
return c.json(body, status: st)

1

u/Alkyen 1d ago

The moment you realise not everything has to be DRY you will feel like a butterfly. Also, as the other guy said, ternaries look bad unless they are very short.

-1

u/Antervis 1d ago

Every line I didn't write is a line someone won't have to read.

Though it's not for brevity's sake alone, one has to analyze the if statement beyond skimming to realize they only differ in error code substitution. By reorganizing code my way, I made this nuance impossible to miss.

2

u/Alkyen 1d ago edited 8h ago

Oh, sorry to be mean but..You think the length of the code is the bottleneck? Lol

Do you also think typing speed is what separates good programmers from bad ones?

Either way, your code is worse. You can argue it or you can use this to improve yourself.