最近一个月,使用了市面上的一些AI相关的软件,比如字节的MarsCode或者是Github的copilot。个人感觉确实提升了工作效率,可以帮助解决一些重复性的开发工作,但是这个过程中也发现了一些问题:
- AI生成的代码质量参差不齐,有的甚至是错误的,需要自己进行二次确认;
- AI的使用场景有限,只能解决一些简单的问题,不能解决相对复杂的问题;
- AI生成的代码和人的意图可能存在差异,需要通过prompt不断地微调;
当然,这些问题我相信开发者也知道,而且当前的问题应该远远不止于此。不过,随着技术的不断进步,我相信这些问题会慢慢得到优化。
以上是我近期使用的吐槽,不是本次行文的重点,这篇文章,想思考的是AI+编程的未来是怎么样的呢?
有的时候我在想,我能不能让AI直接一站式服务,帮我从代码编写,测试,上线一步到位。
最近浏览了一些技术博客,感觉想法挺有意思的。
- 编码:将日常的需求完全交由AI去实现,人类只需要把Prompt编写好就行。我们都知道,编程语言是从二进制->汇编->高级语言这样一直进化而来的。当前的一些设计模式,软件工程,都是教我们如何在高级语言的基础上编写好代码,假如现在我们不需要直接编写高级语言,那这套项目管理的方案还有必要吗?我们要做的只是把prompt编写好,管理好。至于底层的代码我们不需要关心,那后面还有人说你写的代码是shit吗?
- 测试:我们都知道,编写单测是一件很麻烦和重复的事情,很多时候我们无法把所有的case都走一遍单测。但是对于机器来说,它可没有人类的情绪化,只要给他计算资源,我们能很全面地把所有的case都走一遍,确保AI生成的代码是没问题的。这算不算是AI的一种自我强化能力呢?
- 部署:借助类似于Amazon的AWS服务,我们可以将我们的各个功能点通过Faas(Function as a Service)的方案直接部署到云端,无需研发和运维,AI一键帮你部署
假如这套机制可以完善,那么真就“人人都是产品经理”了,你只管提需求,改需求,总有AI为你负重前行,写业务代码这种重复性的牛马工作就交给AI吧。大家可以花更多时间在更有深度的研发工作上,充分享受写代码带来的乐趣。
AI技术最近几年飞速发展,相信未来AI将会渗透到人类的方方面面,帮助人类完成向更高等文明的进化。