2025 week 25: TDD: Terminology-Driven Development
最近发现自己越来越像一个 TDD 工程师了,不是 Test-Driven Development,而是 Terminology-Driven Development。当需要实现一个功能时,我不再思考「怎么写代码」,而是思考「用什么术语」。 曾经有很长一段时间 Thoughtworks 社招 mobile 开发的面试题是会要求做一个朋友圈出来,除了考察项目结构设计,层级依赖是否清晰还有代码风格之外,最重要的考察是是否有实现图片的三级缓存。如果是现在拿到这个面试题,只需要知道三级缓存这个概念即可。在现在这个时间点,我不觉得有多少开发者独立实现的最终代码质量和可维护性会比 Claude 更好。 学编程的时候,总会看到「不要死记硬背,要理解原理」的描述。现在好了,连原理都不需要理解了,只需要知道「三级缓存」这个词汇即可。过去如果需要解决一个不熟悉领域的问题,除了要定位问题发现 root cause 之外,还需要根据解决方案的实现成本和可维护性来做决策,这需要对每个方案在当前系统中如何实现了然于胸才行。现在决策过程变成了定位问题,念出正确的术语即可交给 AI 实现。 术语即 API 仔细想想,这其实是个自然演进: 汇编时代:需要记住寄存器名称 Objective-C 时代:需要记住 MRC / ARC 内存管理 Swift 时代:需要记住语法糖 AI 时代:需要记住概念术语 每一层抽象都在让我们更接近「解决问题」本身,远离「如何解决问题」。现在的区别只是抽象层级更高了而已。 又想到一个比喻,就好像是中国人用成语来压缩信息。甲劝乙,现在对丙的喜欢可能是因为没太实际接触到丙,有可能只是自己想象中的喜欢。但如果甲乙都是中国人那可用上「叶公好龙」四个字,准确表达其含义和劝诫的立场。 AI 就是那个能够 decode 所有成语的人。