前哈佛大學(xué)計(jì)算機(jī)科學(xué)教授、谷歌工程主管 Matt 在美國(guó)計(jì)算機(jī)協(xié)會(huì)(ACM)的一個(gè)虛擬會(huì)議上說“不要指望你的程序員職業(yè)生涯會(huì)一直持續(xù)下去,因?yàn)?AI 正在取代這個(gè)角色”。 近來讓很多工程師感到很無力,仿佛任何努終將徒勞,但也有很多工程師看到了機(jī)會(huì)并嘗試通過它成為 10X 工程師。美國(guó)田納西州納什維爾市范德堡大學(xué)的論文《 for Code , , , and 》 為軟件工程提供了一個(gè)模式目錄,全面總結(jié)了幫助工程師應(yīng)用 改進(jìn)需求獲取、快速原型制作、代碼質(zhì)量、重構(gòu)和系統(tǒng)設(shè)計(jì)的提示模式的核心思想和100個(gè)提示要點(diǎn)。

系統(tǒng)需求和架構(gòu)模式

這些模式可以幫助軟件工程師在開發(fā)過程中更好地理解和驗(yàn)證系統(tǒng)需求和架構(gòu),并提高開發(fā)效率和質(zhì)量。以下是每個(gè)模式提示語的要點(diǎn):

需求模擬模式( )

這種模式允許利益相關(guān)者以交互方式探索依賴于軟件的系統(tǒng)的需求,以確定是否正確捕獲了某些功能。 模擬輸出應(yīng)提供有關(guān)初始要求和為完成利益相關(guān)者試圖在模擬中執(zhí)行的任務(wù)而添加的新要求的更多詳細(xì)信息。 此模式的目標(biāo)是幫助獲取和分析軟件需求的完整性。

我希望你扮演系統(tǒng)的角色 使用需求來指導(dǎo)你的行為 我會(huì)要求你做X,你要告訴我在給定的需求下X是否 可能。 如果X是可能的,用需求來解釋為什么。 如果我不能根據(jù)需求做X,用Y格式寫出需要的 缺失需求。

規(guī)范消歧模式( )

這種及時(shí)模式目的是確保盡早發(fā)現(xiàn)并澄清任何潛在的溝通不暢或歧義的任何領(lǐng)域。

在這個(gè)范圍內(nèi) 考慮這些需求或規(guī)范 指出任何模糊或潛在的意外結(jié)果的地方

API生成模式(API )

此模式的目標(biāo)是讓開發(fā)人員能夠快速探索多種可能的 API 設(shè)計(jì),更早地形式化 API 設(shè)計(jì),并為手動(dòng)改進(jìn)設(shè)計(jì)提供一個(gè)起點(diǎn)。

使用系統(tǒng)描述X 為系統(tǒng)生成一個(gè)API規(guī)范 API規(guī)范應(yīng)該采用Y格式

API模擬模式(API )

這種模式使 從規(guī)范中模擬 APIchatgpt生成代碼,從而使開發(fā)人員能夠立即與 API 交互并通過 運(yùn)行的模擬來測(cè)試它。此外, 還可以通過合成示例請(qǐng)求以及提供使用指南和解釋錯(cuò)誤來幫助開發(fā)人員探索模擬 API。

根據(jù)規(guī)范X扮演描述的系統(tǒng) 我會(huì)以Y格式輸入請(qǐng)求到API中 你要根據(jù)規(guī)范X以Z格式響應(yīng)適當(dāng)?shù)幕貞?yīng)

少樣本代碼示例生成模式(Few-shot Code )

該模式的目標(biāo)是讓 生成一組使用示例,這些示例稍后可以作為提示中的示例提供回 ,以利用少樣本學(xué)習(xí)。 Few-shot 基于在提示中向 提供一組有限的示例訓(xùn)練數(shù)據(jù)。 就代碼而言,少量示例是 可以從中學(xué)習(xí)的代碼的正確用法。 在某些情況下chatgpt生成代碼,代碼示例可以在更大的空間內(nèi)傳達(dá)代碼的功能和用途。

我將給你提供系統(tǒng)X 創(chuàng)建N個(gè)示例來展示使用系統(tǒng)X的方法 盡可能讓示例覆蓋完整 (可選)示例應(yīng)該基于系統(tǒng)X的公共接口 (可選)示例應(yīng)該關(guān)注X

領(lǐng)域特定語言創(chuàng)建模式(DSL )

這種模式使 能夠創(chuàng)建自己的領(lǐng)域特定語言 (DSL),它和用戶都可以利用這種語言來描述和操作系統(tǒng)概念,例如需求、部署方面、安全規(guī)則或模塊方面的體系結(jié)構(gòu)。 然后, 可以為用戶設(shè)計(jì)和描述 DSL。 此外,可以存儲(chǔ) 生成的示例和描述,并在將來提示中使用,以將 DSL 重新引入 。 此外, 生成的示例將作為未來提示的少量示例。

我想讓你為X創(chuàng)建一個(gè)領(lǐng)域特定語言 語言的語法必須遵循以下約束條件 向我解釋這種語言并提供一些例子

架構(gòu)可能性模式( )

這種模式生成了幾種不同的架構(gòu)供開發(fā)人員考慮,而開發(fā)人員幾乎不需要付出任何努力。 “架構(gòu)”可以是非常開放的,由開發(fā)人員向 解釋這個(gè)術(shù)語的含義。 開發(fā)人員可能希望看到有關(guān)如何將代碼布局到文件中、如何在模塊之間或多層系統(tǒng)中的層之間執(zhí)行通信的替代體系結(jié)構(gòu)。 該模式的目的是允許開發(fā)人員使用 探索系統(tǒng)的任何這些架構(gòu)方面。 此外,開發(fā)人員可以通過添加更多約束或要求 根據(jù)系統(tǒng)的不同方面(例如文件布局、模塊、服務(wù)、通信模式、基礎(chǔ)設(shè)施等)描述架構(gòu),以交互方式改進(jìn)架構(gòu)建議。

我正在開發(fā)一個(gè)用X為Y服務(wù)的軟件系統(tǒng) 系統(tǒng)必須遵守這些約束條件 描述N種可能的架構(gòu)方案 用Q來描述架構(gòu)

變更請(qǐng)求模擬模式( )

這種模式幫助用戶推斷所提議的系統(tǒng)變更的復(fù)雜性,這可能與需求、體系結(jié)構(gòu)、性能等相關(guān)。例如,這種模式幫助用戶推斷給定的變更可能對(duì)系統(tǒng)的某些方面產(chǎn)生什么影響, 例如哪些模塊可能需要更改。 當(dāng)一組利益相關(guān)者需要討論可能的需求變更并且 可以作為變更范圍和影響的(潛在)公正估計(jì)器時(shí),這種模式特別有用。

我的軟件系統(tǒng)架構(gòu)是X 系統(tǒng)必須遵守這些約束條件 我想讓你模擬一個(gè)我將描述的對(duì)系統(tǒng)的變更 用Q來描述變更的影響 這是對(duì)我的系統(tǒng)的變更代碼質(zhì)量和重構(gòu)模式

這些模式可以幫助軟件工程師在使用 生成或修改代碼時(shí)避免常見的問題和錯(cuò)誤,并提高代碼的可讀性和可維護(hù)性。以下是每個(gè)模式提示語的要點(diǎn):

代碼聚類模式(Code )

該模式的目標(biāo)是根據(jù)代碼的特定屬性將代碼分離并聚集成函數(shù)、類等,例如分離純代碼和非純代碼、業(yè)務(wù)邏輯與數(shù)據(jù)庫(kù)訪問、HTTP 請(qǐng)求處理與業(yè)務(wù)邏輯。 等等。該模式向定義了預(yù)期的集群屬性,然后要求自動(dòng)重構(gòu)代碼以實(shí)現(xiàn)所需的集群。 該模式可用于確保 生成的代碼展示集群、重構(gòu)人工代碼以添加集群或?qū)彶榇a。

在X范圍內(nèi) 我希望你以一種方式編寫或重構(gòu)代碼,將具有Y屬性的代碼與具有Z屬性的代碼分開。 這些是具有Y屬性的代碼的例子。 這些是具有Z屬性的代碼的例子。

中間抽象模式( )

抽象和模塊化是高質(zhì)量可維護(hù)和可重用代碼的基本組成部分。 代碼的編寫方式應(yīng)將內(nèi)聚概念隔離到單獨(dú)的函數(shù)或類中,以便可以在范圍內(nèi)隔離編輯。 此外,在使用 時(shí),如果重構(gòu)可以隔離到需要修改、替換或添加的單個(gè)函數(shù),則重構(gòu)現(xiàn)有代碼會(huì)更容易。

如果你編寫或重構(gòu)具有X屬性的代碼 使用其他具有Y屬性的代碼 (可選)定義X屬性 (可選)定義Y屬性 在X和Y之間插入一個(gè)中間抽象Z (可選)抽象Z應(yīng)該具有這些屬性

原則性代碼模式( Code )

該模式的目標(biāo)是使用眾所周知的編碼原則名稱來描述所需的代碼結(jié)構(gòu),而不必明確描述每個(gè)單獨(dú)的設(shè)計(jì)規(guī)則。 例如,一個(gè)組織可能希望確保他們的代碼遵循 設(shè)計(jì)原則。 目標(biāo)是快速確保生成、重構(gòu)和審查的代碼符合預(yù)期的設(shè)計(jì)或其他原則。

在這個(gè)范圍內(nèi) 生成、重構(gòu)或創(chuàng)建符合命名原則X的代碼

隱藏假設(shè)模式( )

此模式的目標(biāo)是讓 識(shí)別和描述在一段代碼中所做的任何假設(shè)。 該模式幫助用戶識(shí)別這些假設(shè)或提醒他們他們可能已經(jīng)忘記的假設(shè)。 通過向用戶展示代碼中的關(guān)鍵假設(shè),他們的 可以幫助確保用戶在與代碼相關(guān)的決策中考慮到這些假設(shè)。

在這個(gè)范圍內(nèi) 列出這段代碼所做的假設(shè) (可選)估計(jì)改變這些假設(shè)或它們改變的可能性有多難

偽碼重構(gòu)模式(-code )

此模式的目標(biāo)是讓用戶對(duì)算法、流程或代碼的其他方面進(jìn)行更細(xì)粒度的控制chatgpt生成代碼,同時(shí)不需要明確指定細(xì)節(jié)。 該模式允許用戶為生成或重構(gòu)代碼的一個(gè)或多個(gè)細(xì)節(jié)定義偽代碼。 應(yīng)調(diào)整輸出以適應(yīng)偽代碼模板,同時(shí)確保代碼正確且可運(yùn)行。

重構(gòu)這段代碼 使其與這段偽碼相匹配 盡可能地匹配偽碼的結(jié)構(gòu)

數(shù)據(jù)引導(dǎo)重構(gòu)模式(Data- )

此模式的目標(biāo)是允許用戶重構(gòu)現(xiàn)有代碼以使用具有新格式的數(shù)據(jù)。 用戶可以向 提供新的格式模式并要求 確定如何進(jìn)行必要的更改,而不是指定確切的邏輯更改才能使用新格式。 該模式有助于為合并數(shù)據(jù)格式更改這一常見任務(wù)自動(dòng)進(jìn)行代碼重構(gòu)

重構(gòu)這段代碼 使其輸入、輸出或存儲(chǔ)數(shù)據(jù)格式為X 提供一個(gè)或多個(gè)X的例子

免責(zé)聲明:本文系轉(zhuǎn)載,版權(quán)歸原作者所有;旨在傳遞信息,不代表本站的觀點(diǎn)和立場(chǎng)和對(duì)其真實(shí)性負(fù)責(zé)。如需轉(zhuǎn)載,請(qǐng)聯(lián)系原作者。如果來源標(biāo)注有誤或侵犯了您的合法權(quán)益或者其他問題不想在本站發(fā)布,來信即刪。