chatgpt生成代碼 一分鐘讀論文:《ChatGPT 提示模式:提高代碼質量、重構、需求獲取和軟件設計
前哈佛大學計算機科學教授、谷歌工程主管 Matt 在美國計算機協會(ACM)的一個虛擬會議上說“不要指望你的程序員職業生涯會一直持續下去,因為 AI 正在取代這個角色”。 近來讓很多工程師感到很無力,仿佛任何努終將徒勞,但也有很多工程師看到了機會并嘗試通過它成為 10X 工程師。美國田納西州納什維爾市范德堡大學的論文《 for Code , , , and 》 為軟件工程提供了一個模式目錄,全面總結了幫助工程師應用 改進需求獲取、快速原型制作、代碼質量、重構和系統設計的提示模式的核心思想和100個提示要點。
系統需求和架構模式
這些模式可以幫助軟件工程師在開發過程中更好地理解和驗證系統需求和架構,并提高開發效率和質量。以下是每個模式提示語的要點:
需求模擬模式( )
這種模式允許利益相關者以交互方式探索依賴于軟件的系統的需求,以確定是否正確捕獲了某些功能。 模擬輸出應提供有關初始要求和為完成利益相關者試圖在模擬中執行的任務而添加的新要求的更多詳細信息。 此模式的目標是幫助獲取和分析軟件需求的完整性。
我希望你扮演系統的角色 使用需求來指導你的行為 我會要求你做X,你要告訴我在給定的需求下X是否 可能。 如果X是可能的,用需求來解釋為什么。 如果我不能根據需求做X,用Y格式寫出需要的 缺失需求。
規范消歧模式( )
這種及時模式目的是確保盡早發現并澄清任何潛在的溝通不暢或歧義的任何領域。
在這個范圍內 考慮這些需求或規范 指出任何模糊或潛在的意外結果的地方
API生成模式(API )
此模式的目標是讓開發人員能夠快速探索多種可能的 API 設計,更早地形式化 API 設計,并為手動改進設計提供一個起點。
使用系統描述X 為系統生成一個API規范 API規范應該采用Y格式
API模擬模式(API )
這種模式使 從規范中模擬 APIchatgpt生成代碼,從而使開發人員能夠立即與 API 交互并通過 運行的模擬來測試它。此外, 還可以通過合成示例請求以及提供使用指南和解釋錯誤來幫助開發人員探索模擬 API。
根據規范X扮演描述的系統 我會以Y格式輸入請求到API中 你要根據規范X以Z格式響應適當的回應
少樣本代碼示例生成模式(Few-shot Code )
該模式的目標是讓 生成一組使用示例,這些示例稍后可以作為提示中的示例提供回 ,以利用少樣本學習。 Few-shot 基于在提示中向 提供一組有限的示例訓練數據。 就代碼而言,少量示例是 可以從中學習的代碼的正確用法。 在某些情況下chatgpt生成代碼,代碼示例可以在更大的空間內傳達代碼的功能和用途。
我將給你提供系統X 創建N個示例來展示使用系統X的方法 盡可能讓示例覆蓋完整 (可選)示例應該基于系統X的公共接口 (可選)示例應該關注X
領域特定語言創建模式(DSL )
這種模式使 能夠創建自己的領域特定語言 (DSL),它和用戶都可以利用這種語言來描述和操作系統概念,例如需求、部署方面、安全規則或模塊方面的體系結構。 然后, 可以為用戶設計和描述 DSL。 此外,可以存儲 生成的示例和描述,并在將來提示中使用,以將 DSL 重新引入 。 此外, 生成的示例將作為未來提示的少量示例。
我想讓你為X創建一個領域特定語言 語言的語法必須遵循以下約束條件 向我解釋這種語言并提供一些例子
架構可能性模式( )
這種模式生成了幾種不同的架構供開發人員考慮,而開發人員幾乎不需要付出任何努力。 “架構”可以是非常開放的,由開發人員向 解釋這個術語的含義。 開發人員可能希望看到有關如何將代碼布局到文件中、如何在模塊之間或多層系統中的層之間執行通信的替代體系結構。 該模式的目的是允許開發人員使用 探索系統的任何這些架構方面。 此外,開發人員可以通過添加更多約束或要求 根據系統的不同方面(例如文件布局、模塊、服務、通信模式、基礎設施等)描述架構,以交互方式改進架構建議。
我正在開發一個用X為Y服務的軟件系統 系統必須遵守這些約束條件 描述N種可能的架構方案 用Q來描述架構
變更請求模擬模式( )
這種模式幫助用戶推斷所提議的系統變更的復雜性,這可能與需求、體系結構、性能等相關。例如,這種模式幫助用戶推斷給定的變更可能對系統的某些方面產生什么影響, 例如哪些模塊可能需要更改。 當一組利益相關者需要討論可能的需求變更并且 可以作為變更范圍和影響的(潛在)公正估計器時,這種模式特別有用。
我的軟件系統架構是X 系統必須遵守這些約束條件 我想讓你模擬一個我將描述的對系統的變更 用Q來描述變更的影響 這是對我的系統的變更代碼質量和重構模式
這些模式可以幫助軟件工程師在使用 生成或修改代碼時避免常見的問題和錯誤,并提高代碼的可讀性和可維護性。以下是每個模式提示語的要點:
代碼聚類模式(Code )
該模式的目標是根據代碼的特定屬性將代碼分離并聚集成函數、類等,例如分離純代碼和非純代碼、業務邏輯與數據庫訪問、HTTP 請求處理與業務邏輯。 等等。該模式向定義了預期的集群屬性,然后要求自動重構代碼以實現所需的集群。 該模式可用于確保 生成的代碼展示集群、重構人工代碼以添加集群或審查代碼。
在X范圍內 我希望你以一種方式編寫或重構代碼,將具有Y屬性的代碼與具有Z屬性的代碼分開。 這些是具有Y屬性的代碼的例子。 這些是具有Z屬性的代碼的例子。
中間抽象模式( )
抽象和模塊化是高質量可維護和可重用代碼的基本組成部分。 代碼的編寫方式應將內聚概念隔離到單獨的函數或類中,以便可以在范圍內隔離編輯。 此外,在使用 時,如果重構可以隔離到需要修改、替換或添加的單個函數,則重構現有代碼會更容易。
如果你編寫或重構具有X屬性的代碼 使用其他具有Y屬性的代碼 (可選)定義X屬性 (可選)定義Y屬性 在X和Y之間插入一個中間抽象Z (可選)抽象Z應該具有這些屬性
原則性代碼模式( Code )
該模式的目標是使用眾所周知的編碼原則名稱來描述所需的代碼結構,而不必明確描述每個單獨的設計規則。 例如,一個組織可能希望確保他們的代碼遵循 設計原則。 目標是快速確保生成、重構和審查的代碼符合預期的設計或其他原則。
在這個范圍內 生成、重構或創建符合命名原則X的代碼
隱藏假設模式( )
此模式的目標是讓 識別和描述在一段代碼中所做的任何假設。 該模式幫助用戶識別這些假設或提醒他們他們可能已經忘記的假設。 通過向用戶展示代碼中的關鍵假設,他們的 可以幫助確保用戶在與代碼相關的決策中考慮到這些假設。
在這個范圍內 列出這段代碼所做的假設 (可選)估計改變這些假設或它們改變的可能性有多難
偽碼重構模式(-code )
此模式的目標是讓用戶對算法、流程或代碼的其他方面進行更細粒度的控制chatgpt生成代碼,同時不需要明確指定細節。 該模式允許用戶為生成或重構代碼的一個或多個細節定義偽代碼。 應調整輸出以適應偽代碼模板,同時確保代碼正確且可運行。
重構這段代碼 使其與這段偽碼相匹配 盡可能地匹配偽碼的結構
數據引導重構模式(Data- )
此模式的目標是允許用戶重構現有代碼以使用具有新格式的數據。 用戶可以向 提供新的格式模式并要求 確定如何進行必要的更改,而不是指定確切的邏輯更改才能使用新格式。 該模式有助于為合并數據格式更改這一常見任務自動進行代碼重構
重構這段代碼 使其輸入、輸出或存儲數據格式為X 提供一個或多個X的例子
免責聲明:本文系轉載,版權歸原作者所有;旨在傳遞信息,不代表本站的觀點和立場和對其真實性負責。如需轉載,請聯系原作者。如果來源標注有誤或侵犯了您的合法權益或者其他問題不想在本站發布,來信即刪。
聲明:本站所有文章資源內容,如無特殊說明或標注,均為采集網絡資源。如若本站內容侵犯了原著者的合法權益,可聯系本站刪除。