2025/12/03

Using AI Turn My Requirement Into A Spec

LLM 最強大的就是你給予適當的內容,它可以幫你延伸很多你沒注意到的問題,最近常常把需求稍微梳理過後,加上一段 prompt 讓他整理成 spec,再將結果調整一下變可以開 redmine 的票。

widget 設定完成後,若使用者將 widget 的欄位刪除,有機率會造成計算或使用錯誤,經討論後端要先行驗證欄位是否存在,查找有問題後一律回覆 422 給前端

---

你的角色是網路工程師。請協助將我提供的功能簡述,轉換成規格(spec)格式。轉換後的 spec 需包含以下幾個內容:

- 功能標題
- 功能簡述
- 實作建議
- 測試建議
- 其他注意事項

允許使用 emoji 輔助
# 📌 Widget 欄位存在性驗證(後端)

## 📝 功能簡述

當使用者完成 widget 設定後,如果後續手動刪除了 widget 所需的欄位,可能導致運算錯誤或使用體驗異常。後端需在每次相關操作前進行欄位存在性驗證,若必填欄位不存在,統一回傳 HTTP 422 錯誤給前端。

---

## 🛠️ 實作建議

1. **欄位驗證邏輯**

   * 在 widget 運算、讀取前加入一段欄位檢查邏輯。
   * 驗證所有 widget 設定中宣告的欄位是否存在於資料來源(如資料庫欄位、配置檔或動態欄位列表)。
   * 若任一欄位不存在,立即中止流程並回傳 422。

2. **統一錯誤格式**

   * 使用統一格式,例如:
        ```json
        {
          "message": "missing field",
          "code": "CO-ME108",
          "status": false
        }
        ```
        **此 message 以及 code 為示意。**

---

## 🧪 測試建議

1. **正常情境**
   * 所有欄位都存在 → 回傳 200 並正常執行邏輯。

2. **單一欄位缺失**
   * 刪除一個 widget 必要欄位 → 應回傳 422,且錯誤訊息不包含該欄位名稱。

3. **多個欄位缺失**
   * 模擬多個欄位被刪除 → 應回傳 422,且錯誤訊息不包含該欄位名稱。

其實他寫了相當多建議,這是我整理過後的結果,那些建議不一定符合我們需求,但可以當作參考也是相當不錯。

沒有留言: