Lowering indent levels is nice in functions. Early returns mean you don’t have to think as much. “If it got here, I know foo isn’t null because it already would have returned”.
I always feel bad about putting little ifs at the top of functions. Is it not bad practice? I like them because they’re simple to implement modify and read, but I have this voice telling me I need to make things more impressive.
Reduce the cognitive load required to understand and reason about a piece of code. Honestly, the more you can express complicated ideas simply, the more impressive you are
I started putting a helpful comment above the ifs as a seperator to cope with that.
public Value? Func(String arg) {
// Sanitize.
if (arg.IsEmpty()) return null;
if (this.Bar == null) return null;
// Get [that] and/or do [this].
var foo = this.baz.foo;
...
return new Value();
}
Separate out those “concerns”, into their own object/interface, and pass them into the class / function at invocation (Dependency Injection)
Lowering indent levels is nice in functions. Early returns mean you don’t have to think as much. “If it got here, I know foo isn’t null because it already would have returned”.
I always feel bad about putting little ifs at the top of functions. Is it not bad practice? I like them because they’re simple to implement modify and read, but I have this voice telling me I need to make things more impressive.
Never make things more “impressive”
Make them more comprehensible
Reduce the cognitive load required to understand and reason about a piece of code. Honestly, the more you can express complicated ideas simply, the more impressive you are
I started putting a helpful comment above the ifs as a seperator to cope with that.