光阴似箭,日月如梭,从注册ChatGPT到现在一晃已经过去一年多了,期间也狠心割肉从最初的3.5升级到了4.0,如今已是ChatGPT的重度用户。相比需要用户自己整理答案的搜索引擎,ChatGPT更像是一位随时OnCall的多领域专家,自打上了ChatGPT,搜索引擎是用的越来越少了,不得不说ChatGPT的劲儿是真的大。
手握ChatGPT的我经常在内心里自豪的说:仓库里的代码但凡有句是我写的算我输! 下面我就来展开讲讲(向组织坦白)我日常工作中是如何利用ChatGPT提升工作效率(划水)的,希望不要被领导看到👀。
我是干啥的
我是一名软件工程师,日常的工作内容主要分三大类:
- 设计:系统设计、软件设计
- 研发:后端编程,自动化脚本开发
- 杂项:面试,带小弟、实习生干活
为了高效划水,疯狂榨取openAI的剩余价值,我以上工作内容对ChatGPT依赖程度由高到低排列为:研发 > 设计 > 杂项。
声明:我下面的内容主要是从程序员的角度来分享ChatGPT的使用经验,仅供参考。
我是如何划水的
我将通过讲述一个真实的软件项目,从架构设计到开发落地过程中,一些常见的案例来和大家一起看看如何让ChatGPT帮我们干活。
背景
近期接到一个数据集管理系统的开发需求,正好最近我在做一些基于DDD的最佳实践,于是就先把自己的大概需求丢给了ChatGPT。
架构设计
重点prompt: 开发环境、工具、设计诉求、展示诉求
这里ChatGPT给出的项目结构已经非常详细了,至少比我在某某课堂或者搜索引擎上看到的排名靠前的答案要好很多。当然,尽信书不如无书,设计上的我一向秉承的理念是:重点领会其精神,落地还是要因地制宜。
在真正创建项目的过程中,我们遇到具体的设计问题还可以继续问它,例如
辅助编程
骨架生成
重点prompt:包/代码片段依赖关系
编程是我最喜欢的环节,通过ChatGPT的回答也可以快速学到一些相对优雅的写法。 有了项目结构之后,我会首先开始进行骨架代码的设计,先把核心基础功能填充好,期间可能需要经过多次调优,提问时给到的字段、变量、方法名、包名越具体越好。
功能填充
对于上述回答中略过的部分,我们可以让ChatGPT继续完善。
命名
在进行具体的模块编程时,也可以让ChatGPT帮助我们起名,毕竟起名这件事儿在程序员界也算头等大事了。
处理报错
在实际项目过程中,我们也可以将ChatGPT当作Stack OverFlow和GitHub Issues的合体来用,直接将程序报错发送给ChatGPT寻求合理的解决方案,一些使用浏览器很难找到答案的问题ChatGPT也能给出可用性非常高的回答。这里就不做具体的示例展示了,已经用上ChatGPT的同学应该也经常这么做了。
概念解释
重点prompt:形象的解释、通俗易懂
程序员的卷相信懂得都懂,在日常学习过程中经常会遇到一些名词似懂非懂,死活记不住,这时候我也会借助ChatGPT来帮助我进行概念理解,核心魔法当然还是prompt了。
编程之外
当然我们程序员的生活不应该只有工作和编程,在编程之外,我也经常用ChatGPT来帮我处理一些人情世故。
逢年过节
除夕夜比较头疼的事情就是,关系还算不错的人突然洋洋洒洒的给你发了条祝福语,情面上一定是要回的,但如何能回到对方心里还是蛮难的,不过有了ChatGPT就不带怕的了。
比如这位铁三的朋友,我向ChatGPT描述了我们的友谊背景后,ChatGPT给出的祝福语。
总结
作为ChatGPT的重度用户,ChatGPT已经从方方面面渗入到了我的生活。就目前而言,如何让ChatGPT这类工具更好的服务于我们,我的观点是学会如何提问问题仍然是重中之重,这个可以参考一些社区关于"如何提出一个好问题"的经典文章,用任意搜索引擎搜索即可,我就不给出链接了,核心内容都差不多。
也许在不久的将来,AI能够更好的理解人类,甚至你脑子里想一下它就能帮你处理事情。毕竟懒惰是人类的本性,划水是刻在基因里的技能。