you are viewing a single comment's thread
view the rest of the comments
[–] 16 points 11 months ago (4 children)
  • if something feels too "heavy", like it's doing xml formatting, file manips, a db insert, and making coffee, all in a single class or function

Separate out those "concerns", into their own object/interface, and pass them into the class / function at invocation (Dependency Injection)

  • use "if guards" and early returns to bail from a function, instead of wrapping the func body with an if

public Value? Func(String arg) {
  if (arg.IsEmpty()) {
    return null;
  }
  
  if (this.Bar == null) {
    return null;
  }

  // ...
  return new Value();


  /// instead of

  if (!arg.IsEmpty) {
    if (this.Bar != null) {
      // ...
      return new Value();
    }
  }
return null;
}
  • source
  • parent
  • hideshow 4 child comments
  • [–] 1 point 11 months ago (2 children)

    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.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 11 months ago

    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

  • source
  • parent
  • [–] 2 points 11 months ago* (last edited 11 months ago)

    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();
    }
    
  • source
  • parent