关于 chatGPT 是否会干掉程序员的一次专业评估
最近 chatGPT 很火,关于它会干掉程序员的说法甚嚣尘上,我也在跟几个伙伴讨论它是否可以用于目前的当下正在开发的一些产品时,产生了强烈的冲动:一定要搞明白这玩意到底是否用的上,到底可以代替程序员的哪些工作?
为此,我做了一次专业的评测,下面是我评测的内容,供各位程序员参考。
在开始看评测过程之前,我先给出个人关于“chatGPT 是否干掉程序员”的判断结论:
这玩意,会帮助程序员提升 3 倍以上工作效率,而不是直接干掉程序员。事实上,我们知道程序员做软件开发,60%~70%的时间其实是在干“体力活”,比如:准备方法框架、写抽象接口、简单的 CRUD 增删改查、写单元测试案例等等;而有 30%~40%的时间是在“动脑子”。通过我下面的评测,可以看出 chatGPT 完全可以作为“程序员助理”,帮助程序员“干掉”这些“体力活”。从这个比例上来说,可以提高 3 倍以上工作效率。
将来程序员能混到饭吃,靠的不是“体力”而是“脑力”。确切地说,需要满足下面这些条件才能不被“干掉”:
爱持续学习:不断学习新的架构、设计、需求分析等理论方法和技术工具,理论方法如:DDD、togaf、敏捷、CI/CD/CT 等;技术工具如:es6/ts/rust 等语言、mermaid 等画图工具。
爱思考:在掌握上述这些理论方法和技术工具的基础上,爱在工程实践中琢磨更好的需求分析、架构设计、代码实现方法等,提高软件的质量和效率,才能区别于 AI 创造价值。
善于沟通和表达:这包括两方面,一个是与人沟通,快速理解业务或市场需求;一个是善于表达,善于把这些需求转化为 AI 能够理解的问题或指令。
总结起来,就是程序员“如果没脑子”,综合素质不佳,基本上就没饭吃了。。。。所以,程序员 XDJM 们,赶紧加强学习、加强沟通、提高语文水平并逼迫自己学会深度思考吧!而且,我这个结论,只是基于 GPT3.5 模型下分析出来的,据说 GPT4.0 更牛叉,水平提高了不是一点点,所以如果你不能“爱学习、爱思考、善于沟通和表达”,基本上很快就混不下去了。。。。
下面进入正题,我复述下我用 chatGPT 做一个高度专业性软件分析到代码实现的全过程。
第一步,我给 chatGPT 描述了下我要干嘛(这是 chatGPT 目前一个体现“智慧涌现”的特征:你可以给它指令和举例,而不仅仅是提问):
它给出来的这个 mermaid 脚本,我拷贝到 mermaid 工具里面,画出来的图,长下面这样:
可以看出来,已经很专业了。下面我要求它把“系统”角色进行更详细的拆分,聊天记录如下:
这里的 mermaid 图脚本,我再次拷贝到 mermaid 工具里面,画出来的图,长下面这样:
可以看出,这张图基本上已经接近人类普通程序员的架构设计水平了。关于需求分析部分,我打算就到此为止,接下来,我进入编码阶段,开始让 chatGPT 帮我写代码,首先是 RESTful API 接口设计,如下图聊天记录:
根据列出来的 API 接口,我发现之前的设计有 3 个错误,我指出来后让 chatGPT 重新做下前面的序列图设计。它再次给出的脚本,我用 mermaid 工具画出来长下面这样:
这个图比之前的要复杂了:1)客户管理系统做一证五号等校验;2)增加了开通系统、计费系统接口;3)订单分为“预受理”和“正式受理”。
但是,我觉得 chatGPT 还是犯了个错误,它专门搞了个“预受理系统”,我觉得不用,让它纠正过来(但实际上,每个人设计风格不同,有的程序员就是会觉得需要有个“预受理系统”的——这也不算错误)。如下图:
这回,它直接把对应的 API 接口给我列出来,但限于 chatGPT 当前模型 GP53.5 的输出文本数限制,第一次没有输出完(听说 GPT4.0 输出文本大了很多倍,可以算是没限制了)。然后,我觉得不满意,让它继续,它就用表格重新输出了。
接下来,我让它实现某个 API 接口代码。如下:
它一开始没明白,自顾自的把代码写了出来,我纠正后它才按照我的要求写出来了代码。
但是,我还是不满意,觉得这么代码很低级,直接在代码中嵌入 SQL 语句,是很 Low 的写法。事实上,这是很多“只会动手”程序员的写法,我下面要求它用 DDD 方法写代码(到 DDD 这里,已经有很多程序员不会了——所以,持续学习有多重要啊):
它重新写了数据库层的操作代码,没有给出来完整的服务层+数据库层操作代码,我不满意,要求它继续改:
不知道是不是因为我网络不好的原因,还是因为 GPT3.5 模型输出文本数量的限制,我始终得不到完整的代码。下面是我“调校”它的过程:
到这里,我就不想跟它“啰嗦”了,感觉剩下来调来调去没意义了。
总的来说,GPT3.5 还是有点笨,上下文结合的深度交流水平还有待提高。听说 GPT4.0 提高了很多,律师考试啥的都能 top10%了——之前是 bottom 10%,期待中。。。
总体情况可以看出:它给出的代码,基本上可以代替人工写那些“体力活”代码了,从需求分析师、到架构师、到程序员要真正干活的,都是那些“脑力思考”部分——就我自己使用的体验来说:感觉像教一个“听话又爱进步”的新手程序员,一步一步完成既定的目标。它给出来的这些成果,我基本上可以拷贝到代码工程中,然后剩下填空完整真正的“业务逻辑”部分即可——从这一点来说,可以把 chatGPT 当成自动化的“需求文档”、“架构设计文档”、“代码框架”的生成器来用,而这些往往是占用程序员 60~70%工作量、也就是“体力活”的部分。
评论