精通编程(2016)
关于 Kent Beck 的“精通编程”高层建议引发了褒贬不一的反应:一些读者觉得这些简洁的格言具有验证或启发作用,另一些人则认为它们过于抽象,若没有大量经验,对非专家帮助有限。评论者探讨了凝练智慧既强大又晦涩的双重特性,并强调真正的专业能力仍然需要时间与真实世界实践。讨论还重新审视了 Beck 在极限编程中的角色以及失败的 Chrysler C3 项目,并借此质疑 XP 和 YAGNI 等方法,同时承认没有任何软件流程是灵丹妙药。
对建议价值的感受
- 许多人认为这篇文章与典型的“精通”类帖子相比,强得出奇。
- 读者强调了诸如“预判你的结果”和形成具体假设(例如用于调试)之类的想法,认为它们尤其实用。
- 一些人认为 80/15/5 模式(核心工作、探索、文档)很好地体现了真正的资深程度,也带来了工作满足感。
压缩后的专业知识与学习曲线
- 几位评论者指出,专家们简短的总结对非专家来说可能显得笼统或晦涩。
- 另一些人则认为,这类内容仍然可以埋下“种子”式的想法,只有在积累更多经验后才会真正领会。
- 这篇文章帮助一些读者验证了他们已有的直觉,并进一步加以完善。
表达清晰度与写作资源
- 评论者钦佩作者用简单语言解释复杂想法的能力。
- 他们还分享了关于清晰散文风格的推荐阅读,以及该作者的相关作品。
围绕过往项目与方法论的争议
- 一条主要讨论线围绕一个众所周知、失败的工资项目展开,该项目曾被用作极限编程的早期展示案例。
- 有人认为该项目是一次“彻头彻尾的失败”,把它当作成功案例会损害该方法论及其支持者的信誉。
- 也有人反驳说,大型 IT 项目本来就经常失败,公开记录并不完整,而这次失败并不能清楚地证明或否定该方法论。
关于 YAGNI 与设计前瞻性的争论
- 对“你不会需要它”(You Aren’t Gonna Need It)存在强烈分歧:
- 一方认为:严格执行 YAGNI 会导致目光短浅的设计、痛苦的返工,并重演工资项目的问题。
- 另一方认为:YAGNI 的重点不是现在实现不需要的功能,而是在设计上为未来变化留出空间,并明智地使用测试和扩展点。
- 也有人主张一种折中方案:了解路线图,避免把自己逼入死角,但不要采用完整的“大设计先行”。
流程角色与客户参与
- 有人担心,依赖单一内嵌“客户”或产品负责人的流程会造成倦怠,并形成危险的单点故障。
- 强迫客户编写故事或可执行测试被认为是不现实且有害的。
来自文章的概念澄清
- “Isolation” 这一点被解读为:当修改大型逻辑的一部分时,应把特殊情况逻辑提取到一个独立、文档完善的函数中,以减少复杂性和副作用。