更小的自包含单元:编写 AI 能够使用的代码
Source: Dev.to
引言
随着 AI 在软件开发中扮演的角色日益增多,一个重要问题随之出现:软件应该如何构建,才能让 AI 工具发挥有意义的作用?现代 AI 系统可以协助编码和重构,但当代码库庞大且各部分相互依赖时,它们往往会遇到困难。即使未来的模型能够以更低成本读取更多上下文,将软件塑造成一组更小、独立的单元仍具有实际价值。
更小的自包含单元的好处
AI 工具在处理范围狭窄且定义明确的区域时通常表现更佳。这通常意味着:
- 单一明确的职责
- 对其他部分的依赖最小化
- 可预测的逻辑
- 能够自行测试或理解的行为
当具备这些属性时,意图更清晰,误解更少,使用 AI 工具的成本也更低。更大的结构往往需要更多解释、更多上下文以及更多谨慎。
即使没有 AI 参与,这种方法也能提升开发效率,并且与 AI 系统对行为的推理方式高度契合。
自包含单元的特征
小型自包含单元并非仅仅是文件的缩减;它是一段能够独立运行、无需了解整个系统的行为。通常,这样的单元具备:
- 明确的目标
- 清晰的输入与输出
- 极少的共享或隐藏状态
- 表达预期行为的测试
这些特性降低了在进行更改前所需的信息量,使得在不影响无关区域的情况下,更容易改进或替换单个部分。
鼓励清晰边界的模式
一些广为人知的模式天然地促进清晰的边界和聚焦的行为。它们在交互、状态和视觉变化频繁的环境中尤为有用。
- 状态机 – 通过状态和转换来表达行为,使逻辑可见且易于理解。每个状态都是一个明确且可预测的单元。
- 特性模块 – 可以将功能创建为独立的部件,通过简单的边界与系统其余部分连接,减少不必要的纠缠。
- 纯函数 – 没有副作用的小型纯函数构成可靠的构件块。它们易于测试,也易于 AI 工具理解,因为其全部行为都封装在函数内部。
这些方法并不依赖于特定的框架或范式;它们仅仅支持将软件塑造成更小、易于理解的部分的理念。
有问题的模式
某些风格在进行任何更改之前需要大量上下文,从而增加了人类和 AI 系统的认知负荷:
- 深层继承结构
- 负责多项职责的类
- 行为分散在多个文件中
- 共享全局状态和大量副作用
这些模式本身并非错误,但它们会让 AI 工具的高效运作变得更加困难。
渐进式重构方法
采用更小的单元并不需要一次性重建;可以逐步推进:
- 从大型、复杂的部分中抽取聚焦的区域。
- 在通信发生的地方引入明确的边界。
- 减少不必要的共享状态。
- 使用测试来表达预期行为。
- 持续改进结构,而不是一次性完成。
更小的单元为 AI 工具生成更短的提示,降低成本并提升可靠性。相同的结构同样有利于长期维护和人类的理解。
结论
随着 AI 成为软件创作中更为活跃的参与者,我们的架构选择可能会转向支持人类与 AI 系统之间更清晰交互的结构。更小的自包含单元提供了一条有前景的方向:它们降低认知负担,强化边界,并使行为更易于理解。