本文是一次编程实录。不过,未来的编程大概率不是这样的。AIGC和业务人员直接对话,而不是经过程序员这层“翻译”, 是更大概率的事件:
用户:我需要上线一个网站。需求是….
:这是你的网站,你可以预览一下看看是不是你需要的。
用户:我希望做一些改进…
: 这是经过改进后的网站….
火爆全网,据说目前是编程能力最强的AIGC工具。它到底能在多大程度上释放程序员的生产力呢?我今天就和做了一次结对编程,使用的是课堂教学中常见的俄罗斯方块游戏的案例。
当然,说是结对编程,我只是提了提要求,然后在IDE中粘贴输出的代码并运行。写代码这种干活的事情,几乎全部承包了。
这是最后有创建的Java版的俄罗斯方块游戏:
整个游戏还是比较复杂的,过程比较长,全部看完需要一些耐心。简要的总结如下:
全部代码已经放在:
。共10次提交,分别为:
创建游戏框架
使用GUI替换控制台
在GUI上显示一个L形方块
移动方块并且进行碰撞检测
旋转方块
落下方块并且创建一个新的方块
检测游戏结束
增加整行消除功能
加入所有类型的方块
增加计分能力
后面是过程实录,几乎全是截屏了。有耐心的可以慢慢看看,代码写得真不错,比我在网上找得到的绝大多数代码质量都要好。
第1步:创建游戏框架
在这一步,创建了一个游戏框架,并且对设计思路和实现步骤都给出了解释。
第2步:使用GUI替换控制台
由于它使用了一个命令行来接收输入,看起来不像是我想要的。给提个要求,加入图形界面。
第3步:在GUI上显示一个L形方块
现在游戏能运行了,但是只是一个空的窗口,什么都没有。最好能先显示一个方块出来。让我们继续提出要求:
加入要求增加的几个简单的方法,然后让我们运行一下程序:
第4步:可以移动方块并且进行碰撞检测
第5步:可以旋转方块
第6步:可以落下方块并且创建一个新的方块
我注意到它没有提供方法,此外还没有负责绘制的代码。本来想自己写,后来一想,干嘛不让它自己生成呢?提醒一下就好啦
第7步:可以检测游戏结束
第8步:增加整行消除功能
做到这一步,我想测试一下它的自动化测试用例的编写能力。效果如下:
测试编写的质量好像也不错呀。
写到这里,还剩下两个步骤,没有能实现截图,是因为这几天不太稳定,历史记录没法查看了。不过相信各位都已经体验到了的编程能力了。
固然,俄罗斯方块是个公开的领域,和一般的业务有所不同,网上也有大量的参照,但是能这么思路清楚的把它实现出来,应该也是一个很合格的程序员了吧。
动手快的程序员们,还是可以享受一波自动化的红利的。不过,这可能也只是“暂时”了。个人觉得,未来将是实现业务人员和AIGC的直接对话。
未来已来。你怎么看呢?
参考: