开发者生态
evening
人工智能时代软件工程的思考
2026-06-28
1 阅读
diamondap
人工智能时代的软件工程 2026 年 6 月 28 日 对于那些不知道的人来说,当我不写小说时,我就以软件工程师的身份度过了写代码的日子。如今的软件行业严重依赖人工智能。因为它研究了数万亿行可公开访问的源代码,因为代码通过可测试的正确和错误解决方案解决了问题,并且因为代码是专门为计算机理解而构建的,所以人工智能已经非常擅长编写代码。在程序员开始使用人工智能之前,典型的工作流程是这样的:有人要求你向现有程序添加一个功能。您编写该功能的正式定义,描述它应该(和不应该)做什么、用户如何访问它以及如何测试它是否正常工作。您花时间研究哪些数据结构、算法、代码库和外部服务最适合实现此功能。您编写代码来构建新功能,进行测试以确保其按预期工作,并编写文档告诉用户如何使用它并告诉其他工程师他们需要了解什么来维护和调试它。您创建一个“拉取请求”,要求组织中的其他工程师审查和评论您的新代码,并最终批准其在产品中使用。既然人工智能可以持续生成相当好的代码,软件开发人员的工作流程如下所示:您编写一条提示,要求人工智能创建新功能。您可以查看人工智能编写的内容,进行您认为合适的更改,或者要求人工智能代理为您进行这些更改。您可以自行将新代码合并到现有代码库中,也可以创建拉取请求以供其他人查看和合并。在旧的工作流程中,创意过程主要发生在您的脑海中。在新流程中,您将监督人工智能内部阴谋中展开的创意过程。你已经付出了一些努力来创建一个简洁、深思熟虑、准确的提示,让人工智能开始工作,但你还没有进行任何你自己编写代码时通常会做的认真思考。当你从人工智能那里得到代码时,你本质上是在充当编辑者,因为虽然人工智能可以编写代码,但它并不总是能像你那样看到项目的大局,而且你需要确保这些新代码不会导致问题。 AI 不知道它刚刚添加的代码是否违反了您的产品所适用的某些法律要求。它不知道它向外部系统发出的请求是否需要十毫秒或十分钟才能完成。它不知道其代码的操作是否会与您知道您的队友将在三周后添加的某些新功能发生冲突。它不知道它刚刚编写的函数在与您上个月编写的处理敏感信息的另一个函数交互时是否会引入新的安全问题。高级开发人员确实知道这些事情,这就是为什么他或她需要审查并经常纠正看起来“正常工作”的人工智能代码。对于高级开发人员来说,AI 是一个有能力、工作快速的初级或中级开发人员,如果指导得当,他们会产出大部分扎实的工作,但缺乏你在过去二十年中开发的机构知识和深入而广泛的系统级知识。现在,让我们回过头来打个比方。假设您是一位历史小说作家。您的工作流程是什么样的?大概是这样的:你想象一个场景,1760年,两个政治家在伦敦圣保罗大教堂外争论。你考虑准确地写这个场景需要知道什么,包括服装、街上的气氛和政治局势。你打开很多本书,开始记下以下内容:根据他们的社会经济地位和社会角色,你的角色会穿什么?还有谁和他们一起在街上?供应商?马车里的出租车司机?那些看起来是什么样子的?一天中的那个时间扫烟囱的人出来了吗?那么妓女和执法人员呢?你的角色争论的主要政治人物是谁?他们目前的立场是什么?最近几周或几个月的哪些历史事件是相关的,它们将如何影响你的角色的论点?你回到你的写作中,将历史事实编织成你想象中的场景。小说家和软件开发人员在这方面有很多共同点。事实上,小说家在开始写作之前就已经完成了大量的历史研究,就像软件开发人员从多年以前的工作中已经知道哪些数据结构和算法以及哪些类型的缓存和数据库将适合他即将编写的新功能一样。两位工人的共同点是对他们所创造的材料有着深刻的参与感。他们是