国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

AIGC|超詳細(xì)教程提升代碼效率,手把手教你如何用AI幫你編程

這篇具有很好參考價(jià)值的文章主要介紹了AIGC|超詳細(xì)教程提升代碼效率,手把手教你如何用AI幫你編程。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

一、輔助編程

(一)代碼生成

二、其他功能

(一)工具手冊(cè)

(二)源碼學(xué)習(xí)

(三)技術(shù)討論


一、AI輔助編程

作為主要以 JAVA 語(yǔ)言為核心的后端開發(fā)者,其實(shí),早些時(shí)間我也用過(guò)比如 Codota、Tabnine、Github 的 Copilot、阿里的 AI Coding Assistant 等 IDEA 插件,但是我并沒(méi)有覺得很驚奇,感覺就是生成一些代碼片段罷了,直到我接觸了 ChatGPT......

(一)代碼生成

去年9月份的時(shí)候,我接到一個(gè)項(xiàng)目,是老項(xiàng)目重構(gòu),具體要求就是給你提供入?yún)⒑统鰠⒌慕Y(jié)構(gòu)文檔,然后你來(lái)寫具體的代碼,將入?yún)?duì)象 XxxxDTO 解析后調(diào)用另外一個(gè)服務(wù),然后他再將處理后的結(jié)果返回給你,你再解析成 java 對(duì)象返回。大概有一百多個(gè)接口要實(shí)現(xiàn),其中不乏有入?yún)⒅杏袔资畟€(gè)字段的類,寫service層真的很累很累。入?yún)⒔Y(jié)構(gòu)和對(duì)應(yīng)的類如下圖:

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,輔助編程

@Data
publicclassXxxxDTO {

privateStringfiled1;
privateStringfiled2;
privateStringfiled3;
privateStringfiled4;

privateList<XxxxItemDTO> list1;

privateStruct1 struct1;
}

@Data
classXxxxItemDTO {
privateStringlist1_filed1;
privateStringlist1_filed2;
privateStringlist1_filed3;
}

@Data
classStruct1 {
privateStringstruct1_filed1;
privateStringstruct1_filed2;
privateStringstruct1_filed3;
}

最開始,我分析了需求,使用了模板方法模式來(lái)實(shí)現(xiàn)這個(gè)service層的功能,然后每個(gè)接口就只需要實(shí)現(xiàn)模板類的抽象方法即可,即實(shí)現(xiàn)遠(yuǎn)程調(diào)用接口的函數(shù)名,入?yún)?duì)象的拼裝,出參對(duì)象的拼裝三個(gè)方法的實(shí)現(xiàn)。

后來(lái)發(fā)現(xiàn),每個(gè)人的代碼都或多或少的會(huì)出現(xiàn)問(wèn)題,比如代碼風(fēng)格,單詞打錯(cuò),漏寫或者錯(cuò)寫等問(wèn)題,而且代碼特別多,不好定位問(wèn)題。于是我就用 java 寫了一個(gè)工具類,用來(lái)生成代碼,這樣,我們就只用關(guān)心入?yún)⒑统鰠⑹欠駥憣?duì)就行了,其他的代碼就按模板來(lái)生成。

其實(shí)生成代碼的方法有很多,比如通過(guò)模板文件生成代碼,但是我為了不引入多余的依賴,我直接使用了最笨且最有效的方式,即反射解析類的詳情,然后在控制臺(tái)打印出具體代碼。

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,輔助編程

然后我們就順利的減少了90%的代碼編寫,只需要將入?yún)⒊鰠⒌念悇?chuàng)建好即可。至于定位問(wèn)題,只要能保證代碼生成器沒(méi)有問(wèn)題,那我們就可以只通過(guò)判斷類的創(chuàng)建是否正確就可以了。

之所以要說(shuō)這個(gè)案例,就是為了來(lái)引出我是怎么使用 ChatGPT 的。在這個(gè)項(xiàng)目快結(jié)束的時(shí)候,AI火了,我試著使用 ChatGPT 來(lái)實(shí)現(xiàn)這個(gè)代碼的生成,結(jié)局讓我大吃一驚。

我的思路有兩個(gè),一個(gè)是通過(guò)給他模板和出入?yún)?duì)象的方式,讓他直接給我生成代碼,還有一種就是通過(guò)我的調(diào)教,讓他給我寫一個(gè)代碼生成器出來(lái)。

于是我先測(cè)試了方案一,那就是把我已經(jīng)寫好的幾個(gè)接口告訴給他,讓他模仿著來(lái)給我寫出類似的代碼,如果哪里有問(wèn)題,我就會(huì)告訴他確實(shí)是有問(wèn)題的,讓他進(jìn)行調(diào)整,在經(jīng)過(guò)半個(gè)小時(shí)的微調(diào)后,他已經(jīng)能夠很好地通過(guò)我給的類來(lái)生成具體的代碼了。只要我這個(gè)會(huì)話還在,那么我就可以隨時(shí)的回來(lái),讓他生成類似的代碼。而壞處就是,只能我自己用,別人想用的話,就得自己去訓(xùn)練了。

所以才有了方案二,那就是讓他幫我生成一個(gè)類似于我前面寫的那個(gè)工具類,放到項(xiàng)目里,這樣,所有開發(fā)者就能直接使用工具類來(lái)生成代碼了。然后我便開始了實(shí)踐,雖然說(shuō),他一開始回復(fù)我的代碼生成器問(wèn)題很多,但是我們能通過(guò)對(duì)話很好的讓他進(jìn)行微調(diào),最后,我也是成功的讓他幫我實(shí)現(xiàn)了代碼生成器的功能,這比我自己手寫快了一倍。

其實(shí),我們還能使用 PDF 的 AI工具,直接讀取文檔,然后連出入?yún)?duì)象也生成出來(lái)呢~那可能是99%的代碼都已經(jīng)能自動(dòng)生成了。(不過(guò)這個(gè)可能會(huì)出錯(cuò),沒(méi)有代碼生成器穩(wěn)定)

接下來(lái),我直接演示一個(gè)案例,讓大家感受下ChatGPT代碼生成的威力:

總所周知,mybatis plus 等 ORM 框架是自帶代碼生成的,一般就是通過(guò)定義好數(shù)據(jù)庫(kù)的表,然后通過(guò)解析這個(gè)表來(lái)實(shí)現(xiàn)代碼的生成。但是,大多數(shù)人的習(xí)慣一般是先定義實(shí)體類,然后才去數(shù)據(jù)庫(kù)創(chuàng)建對(duì)象,而且如果編碼人員水平不高的話,很有可能會(huì)創(chuàng)建出一些很拉胯的數(shù)據(jù)表定義,從而導(dǎo)致問(wèn)題。因此,我通過(guò)和 ChatGPT 對(duì)話,讓他幫我生成了一個(gè)代碼生成器,來(lái)實(shí)現(xiàn)通過(guò)反射實(shí)體類的方式生成建表SQL。(下面案例只展示最簡(jiǎn)單的實(shí)現(xiàn),關(guān)于繼承子類,涉及comment等高級(jí)操作這里就不演示了,感興趣的話可以后臺(tái)聯(lián)系作者了解演示詳情)

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,輔助編程

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,輔助編程

接下來(lái)我們?nèi)dea實(shí)測(cè)一下

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,輔助編程

可以發(fā)現(xiàn),他生成的SQL不是下劃線形式,且沒(méi)有設(shè)置非空,我們可以讓他修改。

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,輔助編程

再去idea測(cè)試下

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,輔助編程

可以看到,基本上已經(jīng)沒(méi)有問(wèn)題了,再自己微調(diào)一下代碼,后面使用的時(shí)候,我們就只需要再根據(jù)實(shí)際情況,修改一下表字段的范圍即可,這樣就能省去一個(gè)一個(gè)復(fù)制粘貼的時(shí)間了,簡(jiǎn)直爽歪歪。(如前面提到的,目前這個(gè)sql生成器還是有很大問(wèn)題的,大家可以自己試著完善一下,讓他能實(shí)現(xiàn)在sql中也生成 comment,繼承子類的 ORM 的對(duì)象的sql生成,固定字符集,設(shè)置默認(rèn)值,設(shè)置數(shù)據(jù)類型的范圍等等,當(dāng)然我已經(jīng)調(diào)教好我自己的sql生成器了)

像這種經(jīng)常用的,當(dāng)然是搞出代碼生成器最好了,還有一些簡(jiǎn)單的,不常用的生成,我們就可以直接讓他生成代碼,而不是搞出代碼生成器了。這里再舉最后一個(gè)例子:

像有些老數(shù)據(jù)庫(kù),他們沒(méi)有使用mybatis plus,需要寫各種各樣的SQL,很麻煩。那么我們就可以解析他的插入方法,生成 ORM 對(duì)象,然后通過(guò)mybatis plus來(lái)快捷使用。

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,輔助編程

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,輔助編程

不會(huì)吧?不會(huì)吧?不會(huì)還有人在 AI 時(shí)代下,還一個(gè)個(gè)復(fù)制粘貼吧。不會(huì)吧,不會(huì)吧......(

狗頭保命)

二、其他功能

(一)工具手冊(cè)

關(guān)于工具手冊(cè)這點(diǎn)沒(méi)有太多可說(shuō)的,我們可以把 ChatGPT 當(dāng)成工具書,直接向他提問(wèn),很多時(shí)候,先問(wèn) ChatGPT,可能比百度,Google更快。他不僅能夠給出你答案,你還可以讓他給你演示示例,以下為我自己體驗(yàn)過(guò)的一些方向:

  1. 根據(jù)你的描述快速生成正則表達(dá)式,而不是自己慢慢調(diào)試。
  2. 快速生成一些代碼示例,比如問(wèn)他如何合并兩個(gè)list,如何使用stream流來(lái)實(shí)現(xiàn)groupBy,如何在springboot框架中動(dòng)態(tài)增強(qiáng)源碼。
  3. 生成Ant風(fēng)格的路徑通配符,UEL風(fēng)格的表達(dá)式等,其實(shí)這個(gè)基本上和①是一個(gè)意思(我自己容易記混,用ChatGPT生成確實(shí)比每次查資料再寫快一些)。

(二)源碼學(xué)習(xí)

最近的時(shí)間,我也是一直在研究flowable的源碼,但是源碼確實(shí)有很多地方?jīng)]有注釋,所以,我會(huì)拿出那個(gè)代碼片段去問(wèn)他,讓他作為 flowable 專家來(lái)告訴我每一步是干什么的,他也能很聰明的識(shí)別出那段代碼的作用,甚至知道代碼是寫在什么位置。

我也會(huì)將實(shí)體類都發(fā)給他,他會(huì)幫我把每一個(gè)字段的含義和用法告訴我,確實(shí)比百度要來(lái)的更快,有些東西搜索引擎和官方文檔都查不到,但是他能夠通過(guò)他的智能,判斷出字段的作用,這極大地協(xié)助了我進(jìn)行我們項(xiàng)目流程中心服務(wù)的代碼優(yōu)化。

而且,你可以在不知道是哪段代碼的情況下,直接問(wèn)他 flowable 這塊是怎么實(shí)現(xiàn)的,他也能自己分析出來(lái),然后告訴你答案。

(三)技術(shù)討論

技術(shù)討論這一部分,其實(shí)可以包括代碼review,代碼優(yōu)化等子部分,也可以和他討論當(dāng)下一些技術(shù)的實(shí)現(xiàn)方案,每當(dāng)我有好的想法時(shí),我也會(huì)和他溝通,看看他的意見,下面我做一下展示:

代碼分析的簡(jiǎn)單舉例

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,輔助編程

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,輔助編程

其他舉例

很多時(shí)候,我們規(guī)定了工具類庫(kù),但是,有些人不知道有某些工具類,他們就會(huì)這種工具類用一下,那種工具類用一下,就顯得很不協(xié)調(diào),因此,我們可以直接問(wèn)他,XXX工具類庫(kù)有無(wú)這樣的方法。使用該思路,可以讓團(tuán)隊(duì)的代碼更加讓人心曠神怡,在一些代碼規(guī)范要求比較高的地方很好用。

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,輔助編程

由于篇幅要求,我還是盡量精簡(jiǎn)了一些,主要還是想說(shuō)明一些我自己的思路,希望對(duì)大家有用。

版權(quán)聲明:本文由神州數(shù)碼云基地團(tuán)隊(duì)整理撰寫,若轉(zhuǎn)載請(qǐng)注明出處。

公眾號(hào)搜索神州數(shù)碼云基地,了解更多AI相關(guān)技術(shù)干貨。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-761460.html

到了這里,關(guān)于AIGC|超詳細(xì)教程提升代碼效率,手把手教你如何用AI幫你編程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • CentOS7(Linux)詳細(xì)安裝教程(手把手圖文詳解版)

    CentOS7(Linux)詳細(xì)安裝教程(手把手圖文詳解版)

    目錄 一、CentOS鏡像的下載(準(zhǔn)備工作) 1、官網(wǎng)地址:https://www.centos.org/(官網(wǎng)的下載速度會(huì)很慢,不推薦) 2、其他鏡像源的下載地址(推薦) 3、選擇合適版本的鏡像進(jìn)行下載 ?二、環(huán)境的安裝 1、打開我們的虛擬機(jī)(VMware Workstation),點(diǎn)擊文件進(jìn)行新建 2、選擇典型之后,

    2024年02月08日
    瀏覽(24)
  • SpringBoot 整合 clickhouse和mysql 手把手教程全網(wǎng)最詳細(xì)

    SpringBoot 整合 clickhouse和mysql 手把手教程全網(wǎng)最詳細(xì)

    最近做一個(gè)項(xiàng)目 需要 整合mysql clickhouse 多數(shù)據(jù)源 后臺(tái)用的是ruoyi框架 需要注意的是官網(wǎng)不建議使用ru.yandex.clickhouse驅(qū)動(dòng),應(yīng)該改成com.clickhouse驅(qū)動(dòng),并且推薦使用0.3.2以上的版本 重點(diǎn)在@DataSource(value = DataSourceType.SLAVE) 注解上 在這里切換從庫(kù)代表這個(gè)類里面的方法都切換成從庫(kù)

    2024年02月06日
    瀏覽(20)
  • Git 使用教程:最詳細(xì)、最正宗手把手教學(xué)(萬(wàn)字長(zhǎng)文)

    Git 使用教程:最詳細(xì)、最正宗手把手教學(xué)(萬(wàn)字長(zhǎng)文)

    一:Git 二:SVN與Git的的區(qū)別 三、安裝Git 四:常規(guī)操作 五:遠(yuǎn)程倉(cāng)庫(kù) 六:創(chuàng)建與合并分支 七:bug分支 八:多人協(xié)作 九:git可視化工具 Git 是一種分布式版本控制系統(tǒng),用于管理軟件項(xiàng)目的源代碼。它是由 Linux 之父 Linus Torvalds 開發(fā)的,并已經(jīng)成為了現(xiàn)代軟件開發(fā)領(lǐng)域中最流

    2024年02月16日
    瀏覽(56)
  • ChatGPT“保姆級(jí)教程”——手把手教你5分鐘快速AI智能文字轉(zhuǎn)爆款視頻(剪映+百度AIGC平臺(tái))

    ChatGPT“保姆級(jí)教程”——手把手教你5分鐘快速AI智能文字轉(zhuǎn)爆款視頻(剪映+百度AIGC平臺(tái))

    在這個(gè)數(shù)字時(shí)代,視頻已經(jīng)成為了最流行的內(nèi)容形式之一。而如何自動(dòng)將文字轉(zhuǎn)化為引人注目的視頻內(nèi)容呢?本教程將為你提供兩個(gè)不同的方法:一個(gè)是利用ChatGPT和剪映,另一個(gè)是利用ChatGPT和百度AIGC平臺(tái)。無(wú)論你是一名內(nèi)容創(chuàng)作者、社交媒體經(jīng)營(yíng)者還是企業(yè)營(yíng)銷人員,都會(huì)

    2024年02月09日
    瀏覽(102)
  • 【Docker】手把手教你使用Docker搭建kafka【詳細(xì)教程】

    【Docker】手把手教你使用Docker搭建kafka【詳細(xì)教程】

    目錄 前提條件 1.安裝Zookeeper 1.1運(yùn)行ZooKeeper容器 2.運(yùn)行Kafka容器 2.1啟動(dòng)Kafka容器 3.驗(yàn)證 3.1進(jìn)入Kafka容器 3.2查看容器狀態(tài) 3.3查看容器日志 3.4重新啟動(dòng)容器 3.5創(chuàng)建測(cè)試主題 1. 安裝Docker: 確保你已經(jīng)在你的Windows機(jī)器上安裝了Docker。你可以從Docker官方網(wǎng)站下載并安裝Docker Desktop。

    2024年02月04日
    瀏覽(26)
  • WPS AI 詳細(xì)體驗(yàn)教程!手把手教你體驗(yàn)AI

    WPS AI 詳細(xì)體驗(yàn)教程!手把手教你體驗(yàn)AI

    你好,目前 WPS AI 正快速應(yīng)用至金山辦公的產(chǎn)品中。本文檔將為你介紹目前可使用的 AI 功能。 如果已獲得體驗(yàn)資格,可以下載下方版本體驗(yàn): . 下載WPS Win客戶端 下載WPS 移動(dòng)版(安卓) 在瀏覽器使用金山文檔 . 如果未獲得體驗(yàn)資格,可通過(guò)以下3 個(gè)步驟獲?。?點(diǎn)此訪問(wèn)WPS

    2024年02月16日
    瀏覽(46)
  • Java零基礎(chǔ)手把手保姆級(jí)教程_類和對(duì)象(超詳細(xì))

    Java零基礎(chǔ)手把手保姆級(jí)教程_類和對(duì)象(超詳細(xì))

    1.1 類和對(duì)象的理解 客觀存在的事物皆為對(duì)象 ,所以我們也常常說(shuō)萬(wàn)物皆對(duì)象。 類 類的理解 類是對(duì)現(xiàn)實(shí)生活中一類具有共同屬性和行為的事物的抽象 類是對(duì)象的數(shù)據(jù)類型,類是具有相同屬性和行為的一組對(duì)象的集合 簡(jiǎn)單理解:類就是對(duì)現(xiàn)實(shí)事物的一種描述 類的組成 屬性:

    2024年02月05日
    瀏覽(48)
  • 手把手教你在windows使用Docker搭建Minio[詳細(xì)教程]

    手把手教你在windows使用Docker搭建Minio[詳細(xì)教程]

    目錄 1什么是Minio 2安裝Docker 3Docker搭建Minio 4.創(chuàng)建Minio容器并運(yùn)行 5.進(jìn)行訪問(wèn) 6安裝可能出現(xiàn)的問(wèn)題 ????????MinIO是一個(gè)基于開源的對(duì)象存儲(chǔ)服務(wù)器,MinIO的設(shè)計(jì)目標(biāo)是提供高性能、高可用性和高可靠性的對(duì)象存儲(chǔ)服務(wù)。MinIO可以作為一個(gè)獨(dú)立的對(duì)象存儲(chǔ)服務(wù),也可以在Kuber

    2024年02月12日
    瀏覽(34)
  • 手把手的教你安裝PyCharm --Pycharm安裝詳細(xì)教程(一)(非常詳細(xì),非常實(shí)用)

    手把手的教你安裝PyCharm --Pycharm安裝詳細(xì)教程(一)(非常詳細(xì),非常實(shí)用)

    Jetbrains家族和Pycharm版本劃分: pycharm是Jetbrains家族中的一個(gè)明星產(chǎn)品,Jetbrains開發(fā)了許多好用的編輯器,包括Java編輯器(IntelliJ IDEA)、JavaScript編輯器(WebStorm)、PHP編輯器(PHPStorm)、Ruby編輯器(RubyMine)、C和C++編輯器(CLion)、.Net編輯器(Rider)、iOS/macOS編輯器(AppCode)

    2024年02月05日
    瀏覽(27)
  • 【共建開源】手把手教你貢獻(xiàn)一個(gè) SeaTunnel PR,超級(jí)詳細(xì)教程!

    【共建開源】手把手教你貢獻(xiàn)一個(gè) SeaTunnel PR,超級(jí)詳細(xì)教程!

    Apache SeaTunnel是一個(gè)非常易于使用的、超高性能的分布式數(shù)據(jù)集成平臺(tái),支持海量數(shù)據(jù)的實(shí)時(shí)同步。每天可穩(wěn)定高效同步數(shù)百億數(shù)據(jù),已被近百家企業(yè)投入生產(chǎn)使用。 現(xiàn)在的版本不支持通過(guò)jtds的方式鏈接sqlserver,我們來(lái)自己寫代碼來(lái)實(shí)現(xiàn)它,并把代碼提交給apache seatunnel。 1

    2024年02月09日
    瀏覽(48)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包