代码哲学
https://mp.weixin.qq.com/s/vmOMjLNcWFxzHJZOSh8DaA
“保持靠左” (Keep to Left) 与 switch 的偏爱
这两个由 Matt Ryer 提出的模式,被 Dave 奉为圭臬:
-
保持靠左:即使用“防卫语句”(Guard Clauses)或前置条件检查 ,在函数开头处理掉所有错误和异常情况并提前返回。这能让成功路径(Happy Path)始终贴近编辑器的左侧边缘,避免代码陷入层层嵌套的
if-else“深渊”。 -
用
switch代替if-else:对于选择逻辑,switch语句通常比if-else链更清晰,因为它明确地表达了“基于某个值进行选择”的意图,并且更易于未来扩展(只需增加case)。
main.run 模式:让 main 不再特殊
main函数是每个 Go 程序的入口,但它也是最“奇怪”的函数:它不能返回 error,并且隐式地依赖于大量的全局状态(操作系统环境、标准输入输出、命令行参数等),这使得它极难测试。