- 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;
}