Doug Turnbull 主张软件开发过程比尝试预先创建设计文档然后相应实施要现实得多。
正如道格所说,“没有任何计划能够在与敌人接触后幸存下来”。他的流程是在 GitHub 上的拉取请求草稿中构建原型,并在此过程中做出详细的注释,并完全打算在构建最终功能之前将其丢弃。
这种方法的重要一点是高度成熟。您可以放弃已经编码的想法还是会投资于您的第一个解决方案?资历的一个主要信号是你是否愿意用 2-3 种不同的方式编写代码。您的价值交付不是关于发送到产品的代码行,而是获得的组织知识。
多年来我一直使用问题而不是 PR 来运行类似的流程。我在 2022 年的《如何构建功能》中写过相关内容。
我喜欢记录正在进行的设计决策的问题评论(或 PR 评论)的一点是,因为它们包含时间戳,所以没有隐含的期望让它们在软件更改时保持最新状态。道格也看到了同样的好处:
另一个重要的一点是使用 PR 来记录文档。它们是开发人员最好的文档形式之一。它们是可发现的——当您试图理解为什么代码以某种方式实现时,它们是您首先查看的地方之一。 PR 并不声称反映了世界的当前状态,而是反映了某个时间点的状态。
通过黑客新闻
原文: https://simonwillison.net/2024/Dec/15/preferring-throwaway-code-over-design-docs/#atom-everything