这本由 Bruce Eckel 编写的综合指南,透过惯用模式和架构的视角,对现代编程进行了深入探讨。全书分为五个核心部分: * **基础(Foundations):** 涵盖基本的语言机制,包括类型、类、模块和控制流。 * **技术(Techniques):** 专注于高级编程工具,如装饰器、上下文管理器、并发处理和性能优化。 * **模式(Patterns):** 提供了一系列经典与现代的设计模式(如工厂模式、观察者模式和状态机),重点在于重构与实际应用。 * **函数式编程(Functional Programming):** 探讨函数式编程范式、错误处理及逻辑保证。 * **效应(Effects):** 讨论状态管理、生成器以及无状态设计的实现。 本书反映了当前的行业标准,强调构建可维护、高效且结构良好的代码。内容已根据知识共享(Creative Commons)许可协议免费在线发布,配套的代码示例和习题解答托管在 GitHub 上。
AI 模型缺乏对“完成”的内在感知。与人类不同,人类依赖外部信号——如截止日期、同行评审或边际收益递减——而模型会无限期地进行迭代。因此,高效的 AI 开发已从简单的提示词工程转向**“循环工程”(loop engineering)**,即让系统自行验证进度。
然而,循环的有效性取决于其验证机制。如果验证信号存在缺陷(例如,测试通过但未满足实际用户意图),循环就会收敛于错误的目标。成功的循环需要四个要素:明确的目标状态、可观察的当前状态、用于局部编辑的精确工具,以及稳健的停止规则。
目前,循环工程仍是一个反复试验的过程,因为高效的循环往往是针对特定环境定制的。此外,由于循环存在边际收益递减现象,它们很容易在不可能完成的任务上消耗过多的 token。由于 AI 无法自主决定何时停止,开发者必须构建基础设施来明确衡量进度并管理成本。归根结底,最成功的系统将不再是那些能够无限迭代的系统,而是那些构建者已经精准定义了何为“完成”及其应有成本的系统。