• Lightfire228@pawb.social
    link
    fedilink
    arrow-up
    17
    ·
    11 hours ago
    • 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;
    }
    
    • Clay_pidgin@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      4 hours ago

      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.

      • Jankatarch@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        2 hours 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();
        }