Cursor 團隊如何利用Bugbot Rules 實現自動化程式碼審查 特別是在高風險的資料庫遷移場景中,他們制定了一套“鐵律”,讓Bugbot 在人工審查之前就攔截掉絕大多數危險操作,重點是“Bugbot Rules”,幾個關鍵字:規範化、自動化、左移 🤖 什麼是Bugbot Rules? 可以把Bugbot 想像成一位全天候在線的“代碼安檢員”,它的工作機制很簡單:你在代碼庫中存放一個規則文件(通常是.cursor/BUGBOT.md),用自然語言寫下你的審查標準。當有新的代碼提交時,Bugbot 就會對照這份“安檢手冊”,自動掃描代碼。一旦發現違規,它會立即在程式碼行上發表評論或提出警告。 🛡️ 核心實戰:資料庫遷移的“防災指南” Cursor 團隊分享了他們內部防止資料庫事故的具體規則。他們要求Bugbot 嚴格執行以下標準: 1. 允許的操作(但有條件) 新增表或列:這是允許的。但新增加的欄位必須設定為“nullable” 或帶有“預設值”,以防止舊程式碼寫入資料時出錯。 2. 需格外小心的操作建立索引:這是高風險操作。規則強制要求必須使用CONCURRENTLY 關鍵字,以避免在建立索引時鎖定整個表,導致業務停擺。此外,索引的建立必須放在獨立的遷移檔案中進行。 3. 嚴令禁止的操作· 破壞性變更:絕對禁止刪除列、刪除表、重新命名列或更改列的資料類型。這些操作會導致正在運行的舊版本程式碼瞬間崩潰。 · 外鍵約束:在新表中禁止使用外鍵。 Cursor 團隊建議在應用程式碼層面處理資料關聯,而不是依賴資料庫的外鍵約束,以避免潛在的效能瓶頸。 · 複雜查詢:在主資料庫上,禁止全表掃描,也禁止使用JOIN 或GROUP BY。這些操作極易耗盡資料庫資源,建議在應用層進行資料組裝。 4. 建議的最佳實務欄位類型選擇:建議優先使用BIGINT 而不是INTEGER,優先使用TEXT 而不是VARCHAR。 🚀 擴展應用:不止於資料庫除了資料庫安全,Bugbot 的規則還可以應用在更多日常開發場景中,幫助團隊維持程式碼的整潔與規範: · 程式碼整潔度管理:你可以告訴Bugbot:「如果看到TODO 或FIXME 註釋,必須檢查它是否關聯了一個特定的Issue 編號。」如果沒有,Bugbot 會自動留言提醒開發者補充追蹤單號或刪除該註釋,防止程式碼庫裡堆積大量「殭屍任務」。 · 安全性與命名規範:你可以設定規則來攔截可能洩漏的金鑰,或強制要求特定的函數、埋點事件必須符合團隊的命名約定。 閱讀原文
正在加载线程详情
正在从 X 获取原始推文,整理成清爽的阅读视图。
通常只需几秒钟,请稍候。
