• 减少嵌套

    减少嵌套

    代码应该通过尽可能地先处理错误情况/特殊情况,并且及早返回或继续下一循环来减少嵌套。尽量减少嵌套于多个级别的代码数量。

    BadGood
    1. for , v := range data {
    2. if v.F1 == 1 {
    3. v = process(v)
    4. if err := v.Call(); err == nil {
    5. v.Send()
    6. } else {
    7. return err
    8. }
    9. } else {
    10. log.Printf("Invalid v: %v", v)
    11. }
    12. }
    1. for , v := range data {
    2. if v.F1 != 1 {
    3. log.Printf("Invalid v: %v", v)
    4. continue
    5. }
    6. v = process(v)
    7. if err := v.Call(); err != nil {
    8. return err
    9. }
    10. v.Send()
    11. }