罗伯-派克的 5 条编程规则 规则 1.你无法判断一个程序会在哪里花费时间。在测量之前不要调整速度,即便如此,除非代码的某个部分压倒了其他部分,否则也不要调整速度。规则 3.当 n 较小时,花哨的算法会很慢,而 n 通常很小。如果你选择了正确的数据结构,并把事情组织得井井有条,算法几乎总是不言自明的。派克规则 1 和 2 重申了托尼-胡尔的著名格言:"过早优化是万恶之源"。Ken Thompson 将派克规则的第 3 和第 4 条改写为 "当有疑问时,使用蛮力"。规则 3 和 4 是 KISS 设计理念的实例。弗雷德-布鲁克斯(Fred Brooks)曾在《神话中的男人月》(The Mythical Man-Month)一书中阐述过规则 5。规则 5 通常被简称为 "编写使用智能对象的愚蠢代码"。
生成代码并不是软件开发最困难的部分,真正困难的是明确需求:理解谁需要什么、哪些约束重要、异常情况如何处理,以及成功如何判断。即使 AI 能快速实现指令,模糊、矛盾或错误的需求仍会制造更大的失败。开发者的核心价值因此包括澄清问题、协调利益和验证结果。
工程策略不是愿景口号,而是工程组织处理当前约束的一套成文判断。好的策略包含三部分:诊断、指导性政策和一致行动。诊断要说明真正的挑战是什么,例如收入增长转向某条业务线、测试不稳定拖慢研发、团队之间缺少决策信息;指导性政策要明确取舍,例如资源如何在产品、基础设施、新实验和开发效率之间分配,何时必须升级技术决策,是否坚持标准技术栈;一致行动则把政策变成具体变化,例如调整团队能力、设立测试稳定性投入、改造技术评审流程、规定发布和技术变更的沟通渠道。很多组织以为没有工程策略,其实只是策略没有写下来,隐藏在高管和团队的日常决策里。把它写清楚的价值,是让每个人知道哪些事情优先、哪些 trade-off 已经被接受、遇到争议时该如何推进。策略只有能改变行动,才算真的存在。
“先建完基础设施,再等应用出现”误解了新技术平台的成长方式。历史更常见的顺序是应用先提出真实需求,基础设施再围绕这些需求完善,然后新的基础设施又催生下一代应用。灯泡早于电网,飞机早于机场,电子邮件和消息传递推动网络协议、浏览器和服务商成熟,早期网站带来脚本语言与服务器工具,更复杂的Web应用又推动AWS、Rails、NGINX等基础设施出现。Web3同样如此:比特币、丝绸之路、代币发行和早期dapp先暴露需求,随后才有钱包、智能合约、Infura、Web3js等工具。脱离应用真空建设平台,容易解决不存在的问题;突破性应用能告诉开发者真正缺什么,也让投资者看清基础设施是否有价值。健康的平台演进不是单向阶段,而是应用与基础设施不断互相校准。
内部工具要从使用者的真实工作流出发,而不是当作外部产品的简化版。最典型的是管理面板,它本质上是生产数据库的受控内部界面,让客服、运营或财务能退款、查订单、改地址、修复用户资料,而不需要直接写SQL或接触危险权限。另一类工具服务工程师自身,例如CI/CD、部署脚本、访问控制、测试流程、机器学习模型服务平台或内部Kubernetes入口,很多并没有图形界面,而是通过命令行和自动化脚本完成连续动作。内部工具的特殊性在于用户少、反馈更定性、通常没有专职产品经理、也很少直接绑定收入,因此资源不足和维护滞后很常见。坏工具会迫使团队忍受缓慢、易错和不透明的流程,因为内部用户往往没有替代品。做好内部工具需要明确权限边界、贴合高频任务、减少重复操作,并建立维护责任;它的价值不是界面精致,而是让组织中最常发生的内部动作更快、更准、更少出错。