对于传统开发者而言,源代码是其使用熟悉的编程语言,如C++、Java或Python,编写而成的一行行文本。标准流程是:编写源代码 -> 编译(如需)-> 部署运行。在以人为核心的生产模式下,这套体系运转良好。即使人员更替,只要交接代码并说明思路,接任者便能基于现有成果继续开发。
然而,当AI深度介入开发后,这一模式出现了严重的断层。设想一个场景:同事A全程借助AI工具生成代码并完成了项目。只要A在职,他就能随时与AI沟通、更新代码、部署应用,一切看似正常。
但当A离职,同事B接手时,面对一堆由AI生成、缺乏注释与清晰逻辑的源代码,将陷入困境。在交接中,A可能只能坦言:“代码都是AI生成的,具体用了哪些工具、沟通过程如何,我也记不清了。”此时,B若想在此基础上进行后续业务开发,几乎是一场灾难。
这一困境促使我们思考一个根本性问题:在AI编程时代,程序员的“交付物”与“知识锚点”是否还应该是源代码?
如果一名开发者完全依赖AI编程,自身无需也不阅读生成的代码,那么他真正的产出是什么?同理,当一个人完全使用AI编程时,他所掌握的“编程语言”又是什么?
我认为,从长远来看,一门特定的编程语言将等同于今天的一个大模型。未来的开发者可能会说“我熟悉ChatGPT的编程范式”或“我精通Qwen的代码生成风格”,而非“我擅长Java”。正如不同编程语言有各自的语法,不同的大模型也将演化出独特的风格和交互范式。虽然最终都能产出可执行的代码,但生产方式和流程将截然不同。
这一变化将直接导致“源代码”定义的革新。当使用C++编写程序与使用大模型“编写”程序成为两种不同行为时,源代码的内涵必然改变。
源代码将演变为与AI的完整对话过程。 这意味着,未来的项目交接,核心应是可复现的、结构化的AI对话记录,而非最终生成的代码文本。生成的代码应被视为“交付物”,就如同今天的编译后的二进制文件。
总结而言,范式转移体现在:
- 技能变迁:从“掌握编程语言”变为“精通特定模型的交互范式”。
- 核心资产:从“程序源代码”变为“与模型的交互过程与Prompt”。
- 交付产物:从“编译后的可执行文件”变为“模型生成的源代码”。
围绕这一新定义,整个软件开发机制都需重构。从人才培养看,善用AI的开发者将是下一代程序员的主力军。从团队协作看,知识管理与交接的内容将发生根本性变化。
因此,我们急需一套全新的研发流程体系,其管理的核心并非AI生成的代码,而是与AI交互过程的标准化、可复现与可管理。那么,为何仍需保留AI生成的源代码?关键在于保证部署一致性。由于AI生成具有不确定性,保留代码快照对于确保多次部署结果相同至关重要。
当前许多团队引入AI时,往往只保留了AI输出的“结果”(即代码),而丢失了产生这个结果的“过程”。这无异于只保留了二进制文件却丢失了源代码。造成这一现象的原因多样:AI应用仍处探索期、交互方式未形成规范、完成复杂任务需跨多个AI工具协作,导致全过程难以追溯。
但随着AI工具链的成熟,每个主流模型必将衍生出自身的最佳实践范式。模型自优化能力的增强也将使其风格差异愈加明显。真正将AI深度融合为生产力工具,绝不仅仅是关注其交付的代码,更重要的是围绕与AI的沟通过程,构建一套可管理、可传承的知识体系。唯有做到这一步,才算实现了人与AI的深度协同。
|