最近剛拿到一個(gè)歷史系統(tǒng)的源代碼坡慌,簡(jiǎn)單看了一下,頭就有點(diǎn)大聋呢,代碼內(nèi)容明顯是多年疊加的結(jié)果,如果要修改真的是個(gè)慢功夫颠区。還好我這次的目的只是了解代碼的業(yè)務(wù)實(shí)現(xiàn)削锰,那就可以用到新工具了。同時(shí)毕莱,我發(fā)現(xiàn)交互式學(xué)習(xí)是個(gè)好東西??器贩。
代碼中的業(yè)務(wù)
先啰嗦一句,為什么要從代碼中看業(yè)務(wù)朋截,其實(shí)很多業(yè)務(wù)已經(jīng)和業(yè)務(wù)人員溝通過(guò)蛹稍,但是業(yè)務(wù)人員多表述的他們看到的內(nèi)容,系統(tǒng)如何處理的部服,這就不知道了唆姐。實(shí)際上隨著業(yè)務(wù)系統(tǒng)的多年建設(shè),企業(yè)的業(yè)務(wù)從系統(tǒng)建立后就已經(jīng)不再只是業(yè)務(wù)人員最初提出的業(yè)務(wù)了廓八,系統(tǒng)代碼對(duì)業(yè)務(wù)的已經(jīng)產(chǎn)生了深遠(yuǎn)的影響奉芦,甚至說(shuō)有些業(yè)務(wù)邏輯赵抢,當(dāng)前實(shí)際作業(yè)的業(yè)務(wù)人員都不知道來(lái)龍去脈,但是系統(tǒng)仍然按照之前多方約定的規(guī)則在執(zhí)行声功,所以說(shuō)查看系統(tǒng)的實(shí)際業(yè)務(wù)運(yùn)營(yíng)邏輯對(duì)了解企業(yè)實(shí)際業(yè)務(wù)是很有必要的烦却。
提交代碼
既然要利用 GPT,那么第一步就是要把源代碼提交給 GPT先巴,這里簡(jiǎn)單的復(fù)制是不可能的其爵,太長(zhǎng)了,需要用到一個(gè)插件伸蚯,它可以做到分批上傳醋闭,并且抑制 GPT 在上傳期間的反饋,但是做不到絕對(duì)抑制朝卒,這會(huì)導(dǎo)致后提提問(wèn)時(shí),GPT 會(huì)把自己的反饋也當(dāng)做源代碼的內(nèi)容進(jìn)行總結(jié)乐埠,最終使回答發(fā)生偏差抗斤。我在問(wèn)的時(shí)候,要求只對(duì)我提交的內(nèi)容進(jìn)行分析丈咐,這樣就好了很多瑞眼。
第一個(gè)問(wèn)題
上傳完畢代碼后,可以先問(wèn)一下以上代碼的整體業(yè)務(wù)邏輯什么棵逊,這樣可以大概了解一下這個(gè)源文件實(shí)現(xiàn)的功能伤疙,也為以后繼續(xù)發(fā)問(wèn)細(xì)節(jié)找好方向。這里需要注意的是上傳的代碼最好是一個(gè)業(yè)務(wù)的串行實(shí)現(xiàn)辆影,不要是多個(gè)業(yè)務(wù)的函數(shù)幾個(gè)徒像,你是要問(wèn)一個(gè)業(yè)務(wù)的邏輯,如果給了一堆業(yè)務(wù)不相關(guān)的函數(shù)蛙讥,也沒法問(wèn)出來(lái)什么锯蛀。
問(wèn)主要實(shí)現(xiàn)業(yè)務(wù)的邏輯
拿到了主要業(yè)務(wù)邏輯之后,就可以針對(duì)其中核心業(yè)務(wù)實(shí)現(xiàn)進(jìn)行追問(wèn)次慢,像一些變量初始化之類的就可以忽略了旁涤。這里一般會(huì)問(wèn)出一些核心業(yè)務(wù)對(duì)象的處理邏輯,例如合同在哪幾種情況下有處理迫像,分別邏輯是什么劈愚。也會(huì)識(shí)別出一些關(guān)聯(lián)對(duì)象,例如合同闻妓,供應(yīng)商等菌羽,可以圍繞關(guān)聯(lián)對(duì)象的處理邏輯記性詢問(wèn),也可以直接問(wèn)這個(gè)對(duì)象的狀態(tài)有哪些由缆,例如合同的狀態(tài)包括哪些值算凿。幸運(yùn)的話份蝴,代碼中對(duì)狀態(tài)有判斷,那么主要狀態(tài)及處理邏輯就都有了氓轰。
詢問(wèn)關(guān)鍵表
在詢問(wèn)業(yè)務(wù)邏輯時(shí)大概率會(huì)遇到與業(yè)務(wù)表的交互婚夫,可以讓 GPT 總結(jié)一下遇到了哪些表以及哪些字段,字段含義署鸡,與業(yè)務(wù)的交互邏輯案糙。多角度問(wèn)答案會(huì)重復(fù),也會(huì)加強(qiáng)印象靴庆。這樣比單純看表結(jié)構(gòu)要好的多时捌。
問(wèn)輸出
輸出很重要,問(wèn)問(wèn)輸出內(nèi)容和格式有時(shí)候會(huì)很有用炉抒。問(wèn)完了輸出格式后奢讨,可以讓 GPT 根據(jù)代碼邏輯和格式要求,模擬輸出一個(gè)樣本焰薄,再對(duì)樣本做解釋拿诸,非常舒服。
問(wèn)縮寫
很多變量或者函數(shù)都是中文縮寫的塞茅,這個(gè)讓我復(fù)原有點(diǎn)難度亩码,不過(guò)讓 GPT 根據(jù)上下文推測(cè)中文縮寫的原始還是不正是它的強(qiáng)項(xiàng)嗎?哈哈哈
問(wèn)業(yè)務(wù)常識(shí)
代碼邏輯懂了野瘦,但是業(yè)務(wù)含義又不懂描沟,其實(shí)很多業(yè)務(wù)都是有業(yè)界通用說(shuō)法的,只要問(wèn)一下業(yè)務(wù)專家一般情況下這個(gè)業(yè)務(wù)含義是什么就行了鞭光,你說(shuō)巧不巧吏廉,GPT恰巧就是業(yè)務(wù)領(lǐng)域的專家,一般業(yè)務(wù)還都看不到它惰许。