第一次打開 Cursor 時,我對著屏幕發(fā)了三分鐘呆。作為一個寫了五年代碼的老程序員,早就習(xí)慣了鍵盤敲到飛起的節(jié)奏,突然要對著編輯器 "說話",總覺得有點別扭。
半年后的今天,我的 VS Code 已經(jīng)積了灰。這個看似只是加了 AI 功能的編輯器,悄悄改變了我寫代碼的方式,甚至連思考問題的角度都不一樣了。
那些被 AI 拯救的加班夜
上個月做電商項目,臨下班前產(chǎn)品突然說要加個分布式鎖功能。要是擱以前,我至少得留到半夜:查 Redisson 文檔、寫工具類、測異常場景,一套流程下來少說三小時。
那天我對著 Cursor 敲了幾行注釋:
// 幫我寫個分布式鎖工具類
// 用 Redisson 實現(xiàn),要有 tryLock、unlock 方法
// 記得處理自動續(xù)期和連接異常
回車的瞬間,代碼就開始一行行往外冒。等我喝口水的功夫,一個帶注釋、帶異常處理的完整工具類已經(jīng)躺在編輯器里了。改了幾個參數(shù)名,加了個日志輸出,半小時搞定收工。
走出公司大樓時,晚風(fēng)都是涼的。那是這個月第一次沒在辦公室看月亮。
這種被拯救的時刻不止一次。有次線上出 bug,定位到是循環(huán)邏輯效率太低,數(shù)據(jù)量大了就超時。我把代碼選中,輸了句 "優(yōu)化這段循環(huán)的性能",Cursor 直接幫我改成了并行流處理,執(zhí)行時間從 8 秒降到 1.2 秒。
原來 AI 不是來搶飯碗的,是來幫我們從重復(fù)勞動里解脫出來的。
從 "埋頭寫" 到 "先想清楚"
用 Cursor 最明顯的變化,是我寫代碼前發(fā)呆的時間變多了。
以前拿到需求,腦子里有個大概就開始敲,邊寫邊改,經(jīng)常寫到一半發(fā)現(xiàn)邏輯走不通,又回頭重構(gòu)?,F(xiàn)在我會先對著空白文件寫注釋:這個接口要實現(xiàn)什么功能?有哪些參數(shù)?異常情況怎么處理?需要調(diào)用哪些服務(wù)?
這些注釋就像給 AI 的劇本,寫得越詳細,生成的代碼越合身。有次寫用戶登錄接口,我把 "密碼要加密存儲"、"登錄失敗五次鎖定賬號" 這些細節(jié)都寫進指令里,生成的代碼直接通過了安全測試,連測試小哥都夸我這次考慮得特別全。
慢慢發(fā)現(xiàn),這其實是逼著自己先把邏輯理順。很多時候我們寫不出好代碼,不是技術(shù)不夠,是沒想清楚要做什么。Cursor 就像個嚴格的產(chǎn)品經(jīng)理,逼著你把需求說明書先寫明白。
那些好用到想安利的小技巧
用得多了,也摸出些獨家用法。
1. 讓 AI 當(dāng)你的翻譯官
碰到不熟悉的框架時,我會先讓 Cursor 用 "人話" 翻譯文檔。比如學(xué) DDD 的時候,那些 "聚合根"、"領(lǐng)域事件" 的概念看得頭大,我就讓它 "用通俗的話解釋下聚合根和實體的區(qū)別",它舉了個 "訂單和訂單項" 的例子,一下子就懂了。
2. 分階段生成代碼
復(fù)雜功能別指望一步到位。上次寫支付流程,我先讓它生成主流程,再單獨處理退款邏輯,最后加日志和監(jiān)控。就像搭積木一樣,一塊一塊拼起來,比直接要個完整功能靠譜多了。
3. 把它當(dāng)代碼評審工具
寫完代碼別急著提交,讓 Cursor 幫忙看看。輸句 "檢查這段代碼有沒有性能問題",它會幫你找出循環(huán)嵌套太深、對象沒回收這些小毛病。我用這個方法,代碼評審時被懟的次數(shù)少了一半。
4. 定制自己的代碼風(fēng)格
剛開始生成的代碼總有些小習(xí)慣和我不一樣,比如括號換行方式、變量命名風(fēng)格。后來發(fā)現(xiàn)可以在設(shè)置里定義這些規(guī)則,現(xiàn)在生成的代碼就像我自己敲出來的一樣,連注釋風(fēng)格都一模一樣。
最后想說的話
有人擔(dān)心用多了 AI 會退化,其實不會。就像計算器沒讓我們忘記加減乘除,Cursor 也不會讓我們忘記怎么寫代碼。它只是把我們從機械勞動里解放出來,有更多時間去想 "為什么要這么做",而不是 "怎么做"。
這半年里,我用省下來的時間學(xué)了 K8s,看了本設(shè)計模式的書,甚至還陪女兒拼了個樂高城堡。這些以前總說沒時間做的事,現(xiàn)在都慢慢撿起來了。
工具終究是服務(wù)人的。重要的不是我們用不用 AI,是能不能借著它的力,去做更有價值的事。
如果你也在用 Cursor,或者打算試試,歡迎在評論區(qū)聊聊你的感受。說不定我們能一起發(fā)現(xiàn)更多好用的技巧呢。
#程序員日常 #編程工具 #AI 助手 #工作效率