【人工智能】AI将推翻了传统软件开发吗
AI将推翻了传统软件开发吗
- 【人工智能】AI将推翻了传统软件开发吗
-
- 引言
- [1. 代码审查将消失](#1. 代码审查将消失)
- [2. 单元测试可能会消失](#2. 单元测试可能会消失)
- [3. 软件开发的重点不是写代码](#3. 软件开发的重点不是写代码)
- [4. BUG 的性质也变了](#4. BUG 的性质也变了)
- [5. 软件开源不再提升质量](#5. 软件开源不再提升质量)
- [6. 敏捷编程会死亡](#6. 敏捷编程会死亡)
- [7. 项目分工将改变](#7. 项目分工将改变)
- [8. 好代码的概念](#8. 好代码的概念)
- [9. UI 已经变得不太重要](#9. UI 已经变得不太重要)
- [10. AI 会在乎编码风格吗](#10. AI 会在乎编码风格吗)
摘要:AI 正在重塑软件开发的每个环节。本文从十个方面探讨这一变化:代码审查与单元测试将失去意义,写代码不再是开发重点,BUG 更多源于需求表达,开源与敏捷的价值被削弱,项目分工趋于扁平,好代码与 UI 的重要性下降,编码风格也不再被在意。传统软件开发的诸多惯例,都将被重新定义。
引言
AI 正在重塑软件开发的每一个环节,从代码审查到项目分工,传统做法都在被重新审视。
1. 代码审查将消失
代码评审已经失去意义:人类跟不上代码生成的速度,无法在合理时间内发现 AI 代码中的 BUG。未来,人类只能审查整个系统的组成或架构是否合理,而绝不会再像现在这样,通过 PR 逐行审查代码。
2. 单元测试可能会消失
AI 可以随时重写代码的整个实现,再逐个测试代码单元便失去了意义。也许下一次迭代整栋楼都会重建,又何必再去检查单块砖头。将来的项目或许只保留接口测试、集成测试和系统测试,而不再保留单元测试。
3. 软件开发的重点不是写代码
代码将来必然会全权交由 AI 负责,程序员的工作重点也会转移到代码之外的其他环节:如何用软件解决业务问题、理解软件的实现方式、如何发布软件、如何收集反馈,等等。
4. BUG 的性质也变了
大多数 BUG 不再是代码层面的问题,而是需求本身提错了,或者表达得不够准确。
5. 软件开源不再提升质量
过去,代码开源的一大理由是:只要关注的人足够多,所有 BUG 终会被发现。这句话如今依然成立,但即便你不开源,AI 也能帮你找出 BUG。
6. 敏捷编程会死亡
敏捷编程的各种方法,意义都已大不如前。AI 的生成速度决定了软件开发的节奏,你要做的只是把工单直接交给 AI。
7. 项目分工将改变
过去,一个项目组通常由三个角色组成:项目经理、设计师和过程人员。今后这种三元架构将不复存在------有了 AI,一个人就能兼任多个角色。
8. 好代码的概念
过去,好代码的判定标准是便于人类阅读与理解、便于重构,并且开发与维护效率较高。但如今你已不再阅读代码,也不再直接修改和维护大部分代码,好代码赖以存在的前提也就随之消失了。
9. UI 已经变得不太重要
一方面,未来很多 UI 是给 AI 使用的,而 AI 只需要 API,并不需要精致的界面。另一方面,如果代码生成的速度越来越快,用户界面也就可以实时生成。许多 UI 之所以存在,是因为软件无法确定你想要什么------菜单、设置页、仪表盘、过滤器,都是为了帮助用户快速定位需求;一旦用户用语言把需求说清楚,AI 就能实时为他生成定制的 UI。
10. AI 会在乎编码风格吗
每行是否不超过 80 个字符,有没有换行符,缩进用的是 Tab 键还是空格键。