this post was submitted on 29 Apr 2024
121 points (96.2% liked)

Programming

17031 readers
298 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
 

Short but honestly good advise to rather pull boolean checks apart and re-group them as they make sense in the context of the given situation you're checking for.

I started doing this when building an alert-check system for the company I'm working for right now, and it really helps organize what is a pre-condition, what a syntactical requirement, etc etc.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 24 points 4 months ago (2 children)

I was expecting something more profound. Isn't this just the concept of using variables to keep code readable? Not a new concept and likely one most devs learn early on.

[–] [email protected] 4 points 4 months ago

This is "Testing on the Toilet" which are short flyers that are posted in bathrooms at Google. They aren't typically meant to be particularly profound, just to remind people of common code patterns that can be written more clearly or other reminders that are good to keep in mind.

[–] [email protected] 21 points 4 months ago (5 children)

I've had at least one code reviewer ask me to put all the logic in the if ... line rather than use a variable or two in order to "simplify code by reducing the number of variables."

At the very least, this article helped me confirm my own bias of "that guy is a moron" and I can send this article to him the next time he reviews my code.

[–] [email protected] 1 points 4 months ago (1 children)

Well it actually depends.

Does it make the code more readable? Like you have several if statements using the same things (and/or else if)? Yeah then it's probably good.

If you have an if (work.lengt() == 0 && stacked_work.length() == 0) and that's it, probably not. Depending of whats happining then of course.

Be creative guys! But also dont be too creative :-) Think about the poor coder doing something with all that in a year or two, let's make his life less miserable (It's probably you, too).

[–] [email protected] 2 points 4 months ago (1 children)

"it actually depends"

Yes, it depends. But in this scenario we're not discussing if statements with one or two conditions. We're exclusively discussing multiple complicated conditions. :)

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

Well thei it is probably almost always good to clear things up :-) !

[–] [email protected] 2 points 4 months ago

Even though I like intermediate variables myself, I've been told the same thing when co-authoring code.

What these anecdotes suggest is that this is subjective, and I think it can be overdone. I don't think objective general rules can be established from the article, even though I think it's good advice.

In my examples, I was overdoing it and causing too many indirections, creating leaky abstractions (leaky because, in my context, the abstraction was not tightly self-contained and understanding the "implementation" of the abstraction was necessary to understand what the line of code that was using it was doing).

I don't think it's a black-and-white matter. Your reviewer might not necessarily have been a moron, or might have lacked the self-awareness to realize they were imposing their own preferences onto you. But there's a slight chance that you legitimately confused them with your indirections. Hard to say without context.

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

I guess this is go, and I don't know what the scoping is. In C++ I also suggest putting as much in the if as possible, because it limits the scope of the variables.

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

I review a ton of code and have a bunch reviewed in turn. I don't remember that last time I've had this come up. Either direction really. I guess I'm lucky. We just split naturally in similar places.

[–] [email protected] 12 points 4 months ago

Yes, you need to push back on those people. They're the type that get high on code golf and end up writing unmaintainable one-liners measured in kilobytes for fun.