V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Curtion
V2EX  ›  程序员

《软件设计的哲学》和《代码整洁之道》的分歧讨论

  •  1
     
  •   Curtion ·
    Curtion · 97 天前 · 2553 次点击
    这是一个创建于 97 天前的主题,其中的信息可能已经有所发展或是发生改变。

    《代码整洁之道》应该算一本很经典也很大众的书籍了,我在很多程序员书单上都见过它。

    《软件设计的哲学》则是一本更新的书籍,我在看的时候发现这本书有很多独特的观点,例如作者支持大而深的类,作者反对 TDD 等

    查资料时,意外发现两本书的作者有相关的讨论,并已经记录下来了:

    https://github.com/johnousterhout/aposd-vs-clean-code

    感兴趣的可以看看

    5 条回复    2025-05-30 16:22:35 +08:00
    craftsmanship
        1
    craftsmanship  
       97 天前 via Android
    感谢分享 这两本一直躺在书库里没翻过…
    shilianmlxg
        2
    shilianmlxg  
       97 天前
    感谢大佬分享,用 deepl 翻译也能看。
    pkoukk
        3
    pkoukk  
       97 天前
    从我的哲学观点上,我是绝不可能接受大而深的类
    cppgohan
        4
    cppgohan  
       97 天前
    两本书都看过, 感觉共性是大部分, 分歧更多是实践细节

    油管有两个作者针对分歧的讨论, 函数长度, 代码注释, TDD (看到楼主给的资料里也提到了)


    A Philosophy of Software Design 这本书比 Clean Code 出来的晚了 10 年

    函数长度我更倾向于前者, Clean Code 太理想了, 实践中不可行

    注释我倾向于中性, 前者偏向于 "注释驱动设计和开发", 后者则更多是写好代码, 注释自现

    个人对 TDD 的看法比较复杂, 精神上偏向后者, 但 TDD 在真实世界实践中我见到太少, 只在小范围的类库中, 个人项目见到一些.
    自己工作中苦 "战术性编程" 久已, 在我的观点上还是做的很多项目, 在设计上在实践上根本不考虑"可测性".
    TDD 当时的提出, 就是从代码初期设计开始就优先考虑可测性, 我心向往之, 但做的实践都很小范围. 身边做 TDD 实操的太少, 工作中遗留的屎山, 可测性更是屎, 是 Bug/反馈 驱动的开发, 后边为了所谓指标, 做覆盖率测试, 加的测试代码只能是骗自己的.

    我不同意前者书中说的, "TDD 导致战术性编程", 真实世界中并没有太多正反例.

    Uncle Bob 说会写新修版的 Clean Code, 希望后边能有机会看到.

    感觉关于软件设计的书, 还是太少了 (也可能是我没怎么找到)
    Donne
        5
    Donne  
       96 天前
    TDD 是挺好的,但是我这实际开发过程中基本没时间写测试 case ,就偶尔有点需要方便自行调试才会写个测试用例。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5260 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 08:38 · PVG 16:38 · LAX 01:38 · JFK 04:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.