好名字只是表面的

主要观点:

  • 好的名字对代码可维护性很重要但不充分,代码库仍会因各种原因变得难以维护。
  • 好名字很脆弱,易被误解、随实现变化而可能误导,一个命名不好的“包装对象”就能使好名字的信息丢失。
  • 以“TrySave”为例说明虽名字有一定描述性,但新的“Check”方法因名字模糊导致调用方难以理解其作用。
  • 分离代码到多个类看似使单元测试容易,但会增加类的复杂度和依赖,且可能导致“上帝对象”。
  • 更好的替代方案是“Functional Core, Imperative Shell”,将不纯动作移到系统边缘,用纯函数实现逻辑,便于测试。

关键信息:

  • 好名字在代码中易出现的问题,如歧义、与实现脱节等。
  • 不同命名和代码结构对代码理解和维护的影响。
  • 提出的替代方案及其优势,如纯函数的可测试性等。

重要细节:

  • 在.NET 中带有“Try”前缀的方法表示操作可能成功或失败。
  • 代码示例中各种方法的具体实现和作用,如“TrySave”“Check”等。
  • 不同编程风格下测试的方式和效果,如使用 mock 和 stub 等。
  • 对不同类型系统的评价,如 F#和 Haskell 的特点。
阅读 6
0 条评论