博客
文章按时间倒序排列,用标签与分类做横切索引。每篇文章都会额外产出同名 Markdown,供 Agent 直接读取。
第 16 章 · 没有银弹
软件的根本困难在于构造复杂概念结构本身;复杂度、一致性、可变性、不可见性决定了十年内不会有任何单项技术带来数量级的提升。
第 15 章 · 另外一面
程序还有面向人的那一面:用户要九项说明,修改者要内部结构概述,而最省力的做法是把文档并进源程序本身。
第 14 章 · 祸起萧墙
项目是怎么晚了一整年的?一天一天晚下来的。灾祸多半来自白蚁而不是龙卷风,因此里程碑必须具体到无法自欺。
第 13 章 · 整体部分
怎样造出能运行的系统:自上而下的设计剔除 bug,构件单元按计划调试,系统集成一次只加一个构件。
第 12 章 · 干将莫邪
工具应该由项目统一提供而不是各人自备:目标机器、仿真与编译器平台、受控的程序库、文本编辑系统,以及高级语言与交互式编程。
第 11 章 · 未雨绸缪
为舍弃而计划:第一个系统本来就不合用;交付后软件进入"前进两步、后退一步"的维护期,混乱度只会上升。
第 10 章 · 提纲挈领
在堆积如山的文件里,少数几份文档是关键枢纽:目标、技术说明、进度、预算、空间与组织图,围着它们项目管理才转得起来。
第 1 章 · 焦油坑
大型项目的失败很少由某个单一问题造成,而是问题互相纠缠;而"程序"和"能交付的产品"之间隔着大约 9 倍的工作量。
我为什么用 OINK 搭这个站
选型、取舍与放弃的方案:静态站、Markdown 单一内容源、人和 Agent 共用一份材料。