主要观点:
- 好的名字对代码可维护性很重要但不充分,代码库仍会因各种原因变得难以维护。
- 好名字很脆弱,易被误解、随实现变化而可能误导,一个命名不好的“包装对象”就能使好名字的信息丢失。
- 以“TrySave”为例说明虽名字有一定描述性,但新的“Check”方法因名字模糊导致调用方难以理解其作用。
- 分离代码到多个类看似使单元测试容易,但会增加类的复杂度和依赖,且可能导致“上帝对象”。
- 更好的替代方案是“Functional Core, Imperative Shell”,将不纯动作移到系统边缘,用纯函数实现逻辑,便于测试。
关键信息:
- 好名字在代码中易出现的问题,如歧义、与实现脱节等。
- 不同命名和代码结构对代码理解和维护的影响。
- 提出的替代方案及其优势,如纯函数的可测试性等。
重要细节:
- 在.NET 中带有“Try”前缀的方法表示操作可能成功或失败。
- 代码示例中各种方法的具体实现和作用,如“TrySave”“Check”等。
- 不同编程风格下测试的方式和效果,如使用 mock 和 stub 等。
- 对不同类型系统的评价,如 F#和 Haskell 的特点。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。