上萬點贊!AI輔助神器Cursor助力開發效率翻倍
一、靈魂拷問 - “AI提效200%?我信你個鬼!”
提到AI輔助開發,很多同學都吐槽過。
“AI寫的代碼都很垃圾啊,問AI問題很多時候就像對牛彈琴一樣,答非所問”。
其實并不見得是AI無法勝任我們的開發需求,關鍵在于要掌握正確的使用方法,就像學習IDE和Git工具一樣。
那為什么很多同學使用AI的效果不好呢?通常有以下三個原因:
1.提示詞不夠精準
許多人習慣用模糊指令,比如“寫個登錄代碼”,但AI不是人類,它需要明確的任務路徑。正確的提問方式應當為:“使用 Spring Boot 框架,搭配 MySQL 數據庫,采用 BCrypt 加密算法,編寫包含用戶名密碼驗證、登錄失敗提示、用戶會話管理的用戶登錄功能代碼”。
2.使用方式不當
我們不能期待AI完全替代我們來進行思考,正確的AI輔助開發思路應該為:
1:用提示詞生成80%框架代碼。
2:人工補充核心業務邏輯。
3.工具選擇不當
使用通用的大模型AI工具進行代碼生成,而不是專業的開發工具。有時候我們會發現,讓ChatGPT生成代碼,光給AI講清需求背景以及代碼上下文就得反復溝通十多次,有這功夫確實不如我自己動動手了。
二、Cursor的殺手锏 - 不是“問答AI”,是“編碼協作者”
Cursor與通用大模型AI的本質區別在于與代碼環境深度集成,解決了基于通用AI進行代碼生成時,溝通吃力的致命缺陷。
它“看得見”你的代碼
Cursor 不僅僅是一個代碼補全工具,它實際上是一個完整的 IDE,它的核心是圍繞 AI 驅動的編程體驗進行設計。基于Cursor進行開發時,再也不需要在聊天框里費力描述代碼,省去了復制粘貼的麻煩。你只需要把代碼片段、多個文件、甚至整個文件夾選中并拖動到Cursor的Chat界面,Cursor就可以基于上述的代碼背景完成開發。
任務自治:從指令到交付的閉環
通用大模型AI往往只會生成代碼片段或描述,在此之后你需要手動進行逐行整合。
而Cursor會從創建代碼目錄開始,到Cursor幫你創建測試類并自動執行測試完畢為止,完整的進行代碼交付。中途出現的任何問題,Cursor會給出方案,并讓用戶選擇如何修改。然后重新自動進行測試,直到代碼可用為止。
我們以讓Cursor生成一個簡單的天氣爬蟲為例: Cursor基于我們的要求生成完成代碼后,會自動展開測試
Image text
此時Cursor發現沒有爬取到任何天氣數據后,給出了兩個建議讓我們選擇。
Image text
我們讓Cursor自動修復后,Cursor會重新引導用戶執行測試,我們點擊右上角“Run”執行腳本,這一次爬蟲可以正常運行。
Image text
風險把控:Cursor驅動代碼審查
在代碼審查方面,Cursor能夠基于用戶給出的規范更靈活地識別不合理的代碼,極大提升代碼質量和審查效率。并根據CR的結果自動生成修復方案并應用。下面給出一個CR的提示詞案例:
使用下面的git命令, 輸出當前分支與遠程主分支的差異, 輸出到cr.diff 文件中
git diff origin/master > cr.diff
掃描diff 文件中的差異代碼。reviwe 的規則如下
1. 方法體行數應少于100行, 不包括空行,和注釋
2. 枚舉定義需要有兩個以上屬性, code, name, 并且需要有通過code獲取枚舉項的方法
3. 接口返回false , 前端是否有對false進行處理
4. throw 了異常的位置, 一定要打log日志
5. 所有的public 公有方法都要打印入參log.info日志
6. 所有的public 公有方法, 結束都要打印結束日志
7. 所有調用rpc的方法, 都要打印日志
8. 所有方法都要有方法級別的注釋
9. try catch異常后, 如果在catch 中又拋出了新創建的異常時, 需要將原異常賦值給新異常, 案例如下:
```java
try {
ApiResult<String> result = uploadService.getUploadId(uploadIdDTO);
log.info("UploadServiceHelper#getUploadId result:{}", JsonUtils.toJsonWithoutNull(result));
if (result.isSuccess()){
return result.getData();
}
}catch (Exception e){
log.error("UploadServiceHelper#getUploadId 調用uploadService.getUploadId失敗", e);
throw new MyException("調用uploadService.getUploadId失敗", e);
}
```
10. 不能調用被標記@Deprecated 的屬性或方法或類
11. 定義的常量值, 給出清晰的注釋說明用途, 避免硬編碼
12. 標注了@transactional的方法要明確回滾異常類型, 對于只讀操作要標注只讀readOnly=true 提高性能
13. 3次以上字符串拼接使用StringBuilder代替字符串拼接
14. 檢查是否存在其他破壞兼容性的改動或邏輯上的錯誤
遍歷所有規則, 一個規則一個規則的去檢查增量代碼的規范性, 每個規則進行Review時, 使用獨立的上下文, 最后歸納所有的Review結果.
輸出違反規則的文件位置, 并修改對應文件 符合規范
cr 結束后將cr.diff 文件刪除然后Cursor會給出如下的輸出:
Image text
Image text
最后,Cursor會基于上述審查結果自動進行代碼修改,用戶可以手動選擇接受。
這些能力的疊加,使得在實際開發中,原本需要一天完成的任務,借助Cursor往往三四個小時就能搞定,真正實現效率翻倍的可能。
三、關鍵提醒:效率倍增的前提是“善用其長,避其之短”
- 它不是“魔法”是“神器”:核心價值是處理定義明確、模式化、有上下文的任務,而不是替代你的設計、架構以及核心業務邏輯。
- 核心原則:Review, Review, Review!生成的代碼/修改必須仔細審查!它能幫你寫出功能正確、語法規范的代碼,但業務邏輯的正確性和最優性最終在你。
- 清晰指令是關鍵:描述需求時盡可能清晰、具體。就像給一個聰明的實習生下任務一樣。
四、結語:擁抱進化,成為更強大的開發者
擁抱AI的本質,是開發者的一場戰略性進化。它絕不意味著能力的退化,而是幫助開發者將精力聚焦于更高級的任務(設計、架構、復雜業務、創新)。就像工匠有了電動工具,大師依然是大師,只是效率更高而已。
關于作者,張晨朝,俠客匯Java開發工程師。































