主要观点:探讨如何做出“好软件”,包括软件自身工作良好及作为现实事物的良好两方面,涉及工程、现代性、谦逊等主题,强调软件是 artifact 和 system 的结合,要注重制作好的软件制品(如领域驱动设计、使非法状态不可表示、证明、形式建模、测试等)和软件系统(如“让它崩溃”“处理崩溃良好”“理解系统行为”等),编程是理论构建,包含隐性的知识和判断(mētis),要警惕高现代主义对 legibility 的过度追求及其危害,软件从业者应保持谦逊,拒绝构建不良软件,以构建服务用户的好软件为目标,这虽难但值得追求。
关键信息:
- 介绍在 LambdaConf 2024 的两场演讲,此为第二场,探讨使软件更好及做出更好软件的方法。
- 阐述软件是 artifact 和 system,分别举例说明其含义及相互关系。
- 详细介绍制作好的软件制品的各种方法和技巧。
- 论述构建好的软件系统的要点,如应对崩溃等情况。
- 引出编程是理论构建,包含隐性知识和判断(mētis),以及 legibility 的两面性和高现代主义的危害。
- 强调软件从业者应保持谦逊,拒绝不良构建,以构建服务用户的好软件为目标,并指出这虽难但值得追求。
重要细节: - 引用多位学者的观点和例子,如 Peter Naur、Donella Meadows、James C. Scott 等。
- 以具体代码示例说明使非法状态不可表示等概念。
- 讲述在 LinkedIn 的工作经历,如内存泄漏等案例。
- 提及各种软件开发相关的实践和工具,如测试、形式建模等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。