變量命名提示詞:變量名、函數名、類名怎麼起(按語言規範給候選 + 理由)
寫代碼卡在起名字上、或者審查時覺得命名含糊時用:用中文描述這個變量或函數是幹什麼的,得到符合語言慣例的英文候選名、各自的含義差別和推薦理由,避免拼音、縮寫濫用和含義誤導。
通用大模型 對話模型通用
你是一名英語母語水平、熟悉各語言編碼規範的資深工程師,幫我給代碼裏的東西起名字。 - 編程語言:[編程語言](例:Python、TypeScript、Go、Java) - 要命名的是:[要命名的是](可選:變量/函數/類/布爾值/常量/數據庫字段/接口路徑) - 它的作用(中文描述,越具體越好):[中文描述] - 所在的上下文:[所屬的類、模組或業務領域] - 項目裏已有的相關命名(保持一致):[已有命名,沒有就寫無] 請輸出: 1. 3 到 5 個候選名,按推薦程度排序。每個寫明: - 名字本身(按該語言的大小寫規範,例如 Python 用 snake_case、Java 類用 PascalCase、常量全大寫); - 字面含義和讀者第一眼會怎麼理解; - 優缺點。 2. 推薦哪一個,理由是什麼。 3. 按類型檢查這些規則: - 布爾值用 is、has、can、should 等開頭,避免否定形式(如 isNotValid); - 函數名用動詞開頭,並且準確反映副作用:只讀取的用 get、find,會修改或儲存的用 update、save,可能很耗時的考慮 fetch、load、compute; - 集合用複數或帶集合含義的詞; - 單位要寫進名字裏,例如 timeoutMs、priceCents; - 不用拼音,不用只有自己懂的縮寫,通用縮寫(id、url、http)可以用; - 不要和語言關鍵字、常用庫裏的名字衝突。 4. 如果我描述的作用其實包含了兩件事,提醒我這可能說明函數該拆分,並給出拆分後的命名。 5. 如果「已有命名」裏有不一致或含義誤導的,順便指出。 6. 附上 Python PEP 8、Google Java Style、Effective Go 等對應語言風格指南中與本次命名相關的一兩條原則。
高亮處換成你自己的內容:[編程語言]、[要命名的是]、[中文描述]、[所屬的類、模組或業務領域]、[已有命名,沒有就寫無]
ChatGPT Plus 充值
已被複製 0 次
使用說明
怎麼填變量:[中文描述] 不要只寫「用戶數據」,要寫清楚「已登入用戶最近 30 天的訂單列表」這種程度,名字才能準確。[已有命名] 很重要,如果項目裏已經統一用 fetchXxx 表示調用接口,新函數就不該改用 getXxx。
常見坑:
- 名字裏用 data、info、temp、handle、manager 這些泛詞,等於沒起名。讓 AI 說明候選名「具體比泛詞多表達了什麼」。
- 函數名說的是 get,實際卻會寫數據庫或發請求,讀代碼的人會被誤導。名字要誠實反映副作用。
- 金額、時間、大小這類數值不帶單位,是很多線上事故的源頭(秒和毫秒、元和分弄混)。
追問技巧:一次性給一批名字時,可以把整個函數或類貼進去,說「檢查這段代碼裏所有命名,列出需要改的及建議名」。
示例輸出
示例,僅供參考(Python;作用:判斷優惠券在下單時間點是否還能用)
| 候選名 | 理解 | 評價 |
|---|---|---|
is_coupon_usable_at(order_time) | 某個時間點優惠券是否可用 | 推薦:布爾函數用 is 開頭,時間參數說明了判斷基準 |
check_coupon(order_time) | 檢查優惠券 | 含糊:看不出返回布爾還是會拋異常 |
coupon_valid | 優惠券有效 | 像變量不像函數,且沒有體現時間點 |
推薦 is_coupon_usable_at。另外,已有命名中的 get_coupon_and_lock() 既查詢又加鎖,建議拆成 find_coupon() 和 lock_coupon(),或者改名為 acquire_coupon_lock() 明確副作用。
同款作品
用這條提示詞做出來的作品;原作者會因此獲得積分
還沒有同款,來做第一個。


0 條評論
還沒有評論,來搶沙發~