编码十二原则

https://www.txthinking.com/talks/
Updated at: 2023-03-13
cloud@txthinking.com

每个人的思维方式都不同, 使用不同的编程语言会带来不同的思维方式, 不同的编程领域会带来不同的思维方式, 使用不同的编码工具会带来不同的思维方式, 使用不同的搜索引擎习惯会带来不同的思维方式. 一切都没有对与错, 所以这里只是建议.

Keep it simple, stupid.
  1. 避免过早设计: 保持最初的愚蠢.
  2. 避免过多层级: 包括目录层级, 抽象层级. 只在的确是个独立功能时再去分离模块. 参考Linux Kernel
  3. 保持线性逻辑: 避免跳来跳去. 主线逻辑清晰可使阅读者更容易阅读, 代码分离时要避免枝叶过于茂盛.
  4. 使用独立函数: 偏爱独立的函数来辅助主线逻辑清晰, 而不是不必要的设计模式.
  5. 避免过度封装: 要相信你编写的只是个小软件, 不要对有误解.
  6. 使用简单算法: 使用简单的数据结构和算法, 花哨的东西更容易出 bug. [Rob Pike]
  7. 清晰胜于机巧: 机关算尽太聪明,反算了卿卿性命. [Ken Thompson, 曹雪芹]
  8. 保持简洁设计: 设计要简洁, 复杂度能低则低. [Ken Thompson]
  9. 保持透明设计: 设计要可见, 一目了然, 以便审查和调试. 避免半月后自己亦无法读明白. [Ken Thompson]
  10. 尽量避免else: 偏爱 if (true) {} if (false) {}, 而不是 if (true) {} else {}
  11. 避免纠结小事: 不要过于纠结变量命名, 是否写了注释, rust 函数是否省略了 return 等.
  12. 时刻关注主线: 编码过程中, 时刻关注主线逻辑的清晰, 避免写着写着就复杂了.