1 前言
最近两个月我在项目中大量使用了cursor进行辅助开发,有了不少感触,便想着写出来,供大家参考。
首先可以确定的一点是,AI现在写代码真的是又强又快,对于初级、中级程序员都是绝对的碾压式打击,并且两者之间的差距还会随着时间的发展越来越大。
但同样的,AI目前仍然存在一些问题,并且在某些问题上、可能在相当长的一段时间內都不会有太大的进展,而这些地方就是程序员未来的优势。
2 开发经历
这两个月我写了不少项目,比如一个比较成功的个人开发项目:guzhu,几乎就是完全由AI完成的,我全程几乎没有写过代码。
目前这个工具已经帮我投资基金盈利了一万多,有兴趣的可以试用一下,会员码为:RWED-8A9F-DXY2-8NEX。
另一个工具暂时还没有开源出来,只是我个人日常效率提升使用的、目前自己用效果非常不错,后续应该也会开源出来。
比如应用启动搜索,剪切板管理,虚拟桌面快捷切换,ssh管理,图床配置等等我自己会用到的能力。
整个开发流程大概就是:
- 输入提示词让AI完成xxx功能
- 等待AI完成代码
- 编译、运行,如果发现有任何问题,重新描述交给AI,让其修复。
这个过程奇快无比,如果是以前,想要完成整个软件基础功能的开发,没有一两周都是不现实的。
但使用AI辅助开发后,大概两天时间,就完成前后端所有基础能力、直接上线,后面就是不断发现问题、交给AI完善。
不得不说,这个过程非常的爽,甚至可以让人废寝忘食。
也正因如此,才让我相信未来初级、中级程序员会越来越难找工作,因为代码编写的工作几乎可以全权交给AI了。
那么人在其中扮演了什么角色呢?实际上就是一个审核员。
而这就是高级程序员未来不仅不会被替代、反而可能会越来越吃香的原因,因为很多东西没有一定的经验,你是没法审核AI写的代码是否正确、是否存在问题的。
比如涉及到用户付费系统的关键代码,业务系统中非常重要的流程之类,即使AI写的准确率再高,我也不敢直接上,需要逐行阅读它写的代码是否会造成某些影响。
因为某些信息可能并不在代码內,即使AI再强,也无法应对未知的信息进行决策。
一个更加具体的例子就是,这两个月我多次尝试用AI实现一个类似typora、obsidian这类的markdown编辑软件,但我本人对这方面几乎没什么经验,全权交由AI完成、我负责审核结果。
当前期项目复杂度较低时,这个过程非常顺利,几乎在几十分钟內就能产出一个基本功能完备的markdown编辑器。
但这样做很快就会出现问题,因为在现有基础能力之上继续扩展功能,会涉及到各种新的规则解析,新的规则有可能对老的规则造成影响。
对于编辑器这种复杂度极高的项目,AI很快就开始变得力不从心,很多时候一个bug、提示好几轮都无法顺利修复,只能人工一步一步去排bug、日志、根据经验现象,给出更多提示信息才能修复。
即使是修复了,也可能会继续影响其它地方的解析而导致新的bug产生,于是这就需要充足的测试,这个过程非常折磨。
并且此时就算想要自己去完成代码新增功能也是一个非常困难的事情,因为此时整个项目的代码都是由AI生成的,我需要重新理解整个项目的代码结构、解析逻辑,才能在里面正确的修改代码。
改别人写的代码从来都是一件很痛苦的事情,这个时候我甚至觉得还不如我自己从头写更好。
3 总结
总的来说,AI辅助编程对于经验丰富的高级程序员,绝对是一大利器,能将其开发效率提高数倍不止。
尤其是对于复杂度较低、功能之间耦合度低的项目,几乎可以直接通过提示词交由AI完成,代码都不用看一眼。
但对于重要功能代码,则需要有经验的程序员重点审查。
对于特殊、复杂度极高的项目,则必须由有相关经验的程序员把控整个项目的架构、通过AI辅助提效的方式完成整个项目的开发,绝不能通过”氛围编程“、全权交由AI完成,这样做极大概率后续会出问题。
所以未来程序员的破局之道,大概率就是这些AI在相当长时间内都无法解决的卡点上。
其实核心就是一句话:AI不为自己写的代码担责,它需要有一个有能力为其担责的人。