极简分支风格(Minimal Branching Style)是一种在 Go 语言(及其他主流工程语言)中常用的结构化、易读、易维护的代码风格。它的核心思想是:
核心特征
- 每个分支只 return 一次
- 每遇到错误或特殊情况,立即 return,避免嵌套。
- 无多余嵌套
- 只在必要时用 if/else,能早 return 就早 return,主流程始终“向下走”。
- 无多余 break、goto、continue
- 只用 return 控制流程,分支极简。
- 变量命名清晰,作用域最小化
- 只在需要的地方声明变量,减少全局污染。
- 辅助函数内联
- 错误流、特殊流等辅助函数只在本函数内声明,避免全局污染。
- 主流程一目了然
- 业务主线始终在最左侧,分支和异常处理在主线之上“早返回”。
代码结构示例
func DoSomething(input string) (Result, error) {
// 内联错误流
errorResult := func(err error) (Result, error) {
return Result{}, err
}
// 早返回,分支极简
if input == "" {
return errorResult(errors.New("input is empty"))
}
// 主流程
result := compute(input)
if result.Invalid() {
return errorResult(errors.New("invalid result"))
}
return result, nil
}
优点
- 可读性极高:主流程一眼看懂,异常处理不干扰主线。
- 易于维护:每个分支只 return 一次,减少嵌套和分支复杂度。
- 易于扩展:添加新分支只需加一行早 return,不影响主流程。
- 易于测试:每个分支都可单独测试。
在 handler.go 里的体现
- 错误和特殊情况都用早 return,主流程始终“向下走”。
- 错误流用内联函数生成,避免重复代码。
- 变量作用域最小化,命名清晰。
- handler 只 glue,所有业务和流终止都在聚合器内部处理。
总结
极简分支风格就是:
“让主流程始终笔直向下,所有异常和分支都在主流程之上早早 return,代码结构极其清晰,分支极其简洁。”
如果你喜欢这种风格,可以继续让我帮你优化其它方法!