🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/
一、前言
编程也可能是最容易被 AI 技术取代的工作之一,软件的构建方式将产生根本性的转变。
今年以来,相信大家都听说过 ChatGPT、New Bing 和 GPT-4。
在网上可能也经常看到关于这些技术的一些炒作,它们因某种原因而不好(“它们是随机鹦鹉”,“它们制造虚假信息”,“它们不能推理”,“它可能取代初级开发人员,但不会取代高级开发人员”),虽然从技术上讲是正确的,但缺少了一个更重要的观点:如果你从事写软件相关的业务,这些东西是非常有帮助的。
事实上,它们的工作效果非常好,以至于我认为我们正在追踪软件构建方式的根本性转变。这将对几乎所有事情产生剧烈影响。讽刺的是编程也可能是最容易被这些技术取代的工作之一。我们处于一个关键时刻,在资本主义替代我们之前,我们程序员需要理解和适应这些技术。我相信大型语言模型是优秀程序员的范式转变,并开始更详细地介绍了我一直在使用这些模型及其周围应用的见解。
我认为我们正处于软件构建方式的巨大革命的起点。我们还不知道如何完全释放这些工具的潜力:就像刚刚发现了外星拖拉机技术。许多批评家试图将其用作普通的园艺耙,因为它们犁过他们的花坛而对其进行驳斥。
我希望分享一些我在使用 LLMs 编程时获得的见解。我发现,开发实践、方法论和工作流对于知识性工作非常关键,无论是软件、写作还是音乐。因为编程与生产性团队合作密切相关(特别是在我们资本主义的背景下),所以这种实践必须被共享。编程涉及协调个人的工作以创建共同的成果,成功取决于我们如何协调。
我认为使用 LLMs 进行编程将会在软件架构、系统架构、编程实践、沟通模式和组织结构方面带来根本性的变革。这是令人兴奋的时代,因为我们正处于塑造未来编程形态的位置。
二、主要内容
LLMs will fundamentally change software engineering 主要讨论了大型语言模型(LLMs)对软件开发的影响。虽然有人认为 LLMs 会取代程序员,但作者认为 LLMs 是一种革命性的技术,可以改变软件架构、编程实践、沟通模式和组织结构。作者介绍了自己使用 LLMs 的经验,并提出了一些方法论的转变,如编写文档和代码审查成为程序员的必备技能。作者认为,LLMs 将会改变软件开发的方式,程序员需要在资本主义之前适应这种技术。
与 GitHub Copilot X 和 ChatGPT 等结对编程。
帮助 Copilot 输出有效代码
-
方法论转变#1:写文档,编写清晰简洁的注释,给 LLM 提供在训练集中看到的上下文,从而帮助它推断出正确的答案
-
方法论的转变#2:白板和橡皮图章,Copilot 生成的代码不需要完全正确,它基于大量优质代码生成的模式能给开发提供非常有益的启发,具体使用时再引导就可以
-
方法论转变#3:建立更多的原型,向 Copilot 询问话题并让其使用选定的编程语言生成一个完全可运行的例子,对例子进行大量修改就可以快速完成任务
-
方法论转变#4:建立更多的工具,使用 Copilot 可以在一小时内快速根据需求创建定制化工具,整体加速任务的完成
避免无益的聊天会话,基础知识和能力可能同样重要
- 方法论转变#5:持续代码审查,一个模型可以观察所构建的软件,推断我们的意图和思维结构,并对其中的方法提供反馈。
- 方法论转变#6:使用 LLMs 的认知影响,借助 LLMs 处理琐事,有效地减少了认知疲惫感,心情愉悦效率高。
GPT-4 结对编程实战,鹅厂一线研发真实使用感受 主要介绍了如何利用 ChatGPT-4 和结对编程方法,在研发过程中提高效率。作者在工作中应用 ChatGPT-4 来简化编码、重构代码、实现业务逻辑、改 bug 和写单测、取名字等场景,取得了不错的效果。同时,文章也提醒大家在尝试中要注意信息安全。
虽然 ChatGPT 以及类 ChatGPT 工具并不能完全替代工程师编码,但在很多繁琐且不需要交代太多背景的独立工作上,GPT-4 还是完成的非常不错的。作为一个技术人员,尝试下与 GPT-4 结对编程的方式,有可能在某些方面真的能大大提升自身生产效率。
Twitter 上 @advany 分享了一个 PK 项目,带我们一起看看 AI 给编程和产品开发带来的巨大影响,并对比二人的开发速度、开发工作量、测试工作量、后期运维成本等。
两位程序员独立开发产品 MVP 进行,其中:
- Alex:来自德国,19 年经验,纯编程
- Hamid:来自巴基斯坦,4 年经验,编程 + Copilot + GPT-4 + no-code
Hamid 在 AI 的帮助下,不到一周就完成了初版,实现了 100% 的代码测试覆盖率和无代码部分的端到端测试,任务几乎完成了 95%。花费清单如下:
19 年资深码农 VS 编程新手 + AI,开发效率人类完败!!
可以看到这其中有着显著的效率和成本差异,Alex 开发完整项目的成本约 60k,而 Hamid 仅仅需要 2.8k,这样巨大的差异足以判断该选择哪种方式,虽然 Alex 开发产品的运维成本稍低一点。Alex 将被「解雇」,更多像 Alex 的程序员也是时候做出改变了!
📚️ 参考链接: