AI寫代碼翻車無數(shù)次,我發(fā)現(xiàn)只要提前做好這3步,bug立減80%
從“10 萬行代碼全是 bug”到“提交流程一次過”,作者用三周血淚史總結出一套 AI 編程防翻車三步法:先定位、再理解、后輸出。只要讓 AI 把上下文吃透,bug 率立降 80%。如果你也在用 Cursor 或 Claude Code,這篇文章就是避坑指南。
最近大部分精力都鋪在“提示詞管理助手”2.0版本開發(fā)上,帶著我的好搭子claude code和cursor一起奮斗。
昨天晚上終于完成了上線前的測試環(huán)節(jié),把它打包提交審核了,現(xiàn)在就等待谷歌那邊過審就可以和大家見面啦~
這次迭代是我目前AI編程里耗時最多,難度最大的一次。
在“提示詞管理助手”2.0版本的開發(fā)過程中,我總結了一下我干的最多的事情:寫bug和改bug。
前兩周的時間完全聽AI的改架構,寫了10萬行代碼全是bug,我本來滿懷期待覺得AI說沒問題,那應該我可以收獲一個超級好用的版本。
結果啥都沒收獲還消耗了40刀的token。。。
只能從頭再來了,我咬著牙給自己打氣,你可以的,繼續(xù)肝吧。
然后我繼續(xù)迭代自己用claude code和cursor的編程方法,盡可能的降低bug發(fā)生的頻率,一輪輪迭代過去了,終于見到了曙光。
打包提完審核的那一刻,感覺如釋重負,終于還是做出來了,我還是可以和我的AI搭子們一起做很多事情的。
前兩天跟大家分享了claude code 的整體編程思路,這次想更加聚焦的講一個更關鍵的問題:
AI編程到底怎樣能夠少寫bug,從而更高效的開發(fā)?
要真正解決AI編程bug率高的問題,我們要先搞清楚,它為什么寫代碼的過程中會出錯。
以“提示詞管理助手”為例,我就經(jīng)歷了bug從幾乎沒有到寫啥蹦啥的全過程。
在早期幾個版本用cursor開發(fā)的時候,bug可以說是非常少了。cursor開發(fā)都是一版過的,然后有一些細節(jié)我修修補補就好了。
隨著功能的增加,代碼量也隨著增加,對應的bug率也增加了很多。
最明顯的是在1.6.6版本后,我想優(yōu)化一下飛書的授權問題,搞了倆小時除了讓它更難用了,什么都沒有改出來。。。
項目越大,代碼量越多,AI越難準確的理解現(xiàn)有邏輯結構,bug也就會更頻繁的出現(xiàn)。
歸根到底其實還是上下文信息不夠,導致AI不能正確的完成對應任務。
那其實只要能夠想辦法讓AI在寫代碼前獲得足夠的上下文,這樣bug也會降低很多很多。
于是我開始調整自己和 AI 協(xié)作的方式,在拿到一個需求后,我不會急著讓它寫代碼,而是遵循這樣一套流程:
1.?定位代碼位置:先讓AI把和這個需求相關的所有代碼都找出來,明確說明這些代碼文件都存放在哪。
2.?理解邏輯:搞清楚現(xiàn)有功能是如何運作的,新功能需要在什么位置介入。
3.?輸出方案:開始寫代碼,搞定需求
前兩步的重點是讓AI看清楚現(xiàn)狀,提供更多的上下文信息。
當AI具備了足夠的上下文信息,再去寫代碼,成功率會很高,bug也會減少很多。
提示詞管理2.0版本的開發(fā)進度中,我也采用了這個方法,對比之前的開發(fā)效率提升了太多了,要么那么多新功能和架構調整,我壓根就搞不完。。。
那這個流程到底有多好用?我挑了兩個我親手踩過坑、后來靠它救回來的案例,帶大家一起體驗一下它的絲滑。
1.Cursor案例:版本號管理的bug修復
這是個小bug,主要是因為我在調架構的時候動的太多了,導致我的版本號管理文件好像被誤刪了,現(xiàn)有的版本管理邏輯和舊的對不上。
第一步:用 Cursor 快速定位文件
我需要cursor幫我修復這個問題,于是我先讓它找對應的文件:
cursor自己查找了對應代碼,告訴我現(xiàn)在的new是哪些文件來控制的,現(xiàn)在的邏輯是什么。
第二步:和 Cursor 一起梳理邏輯
然后繼續(xù)和cursor討論,得出一個功能開發(fā)的邏輯。
第三步:讓 Cursor 生成修復方案
確認cursor都理解了,就讓它開發(fā)就好了。
然后我測試了一下效果,改的沒有任何問題。
2.claude code:提示詞增刪改查bug修復
這是個超級大的bug,我花了好幾天時間在上邊才把它改明白。
我之前寫代碼的時候過于讓AI發(fā)揮,于是提示詞增刪改查它給我做了3套系統(tǒng),導致我后續(xù)修改的時候,每次修改都只能疊加更多的bug。
第一步:讓 Claude code 定位文件
于是我需要claude code幫我徹底解決這個問題,老樣子還是讓它先定位問題:
因為這個bug我改了一下午我實在沒修復,這一次我就直接用“AI協(xié)作教練”提示詞出的指令,讓claude code先把這塊的邏輯完整的讀一遍。
然后claude code吭哧吭哧干了半天,給了我一個文檔,基本上覆蓋了這個場景下的所有邏輯。
第二步:和 claude code 一起梳理邏輯
然后我和它繼續(xù)討論,讓它給到了我明細的流程圖。
第三步:讓 claude code 生成修復方案
基于流程圖,讓它梳理清楚當前bug的原因,然后做修復。
終于一次過了,太不容易了。
這兩個案例一個小一個大,但是其本質都是一樣的:幫AI看清現(xiàn)狀,給與AI更多的上下文,從而讓它寫代碼的時候變得更靠譜,降低代碼率。
在寫這篇稿子的時候發(fā)現(xiàn),“提示詞管理助手”2.0版本過審了,那我想在結尾跟大家聊一些我自己開發(fā)中的心路歷程,聊聊我那些質疑過自己無數(shù)次的瞬間。
我開發(fā)一共花了3周,在前兩周架構優(yōu)化失敗后,我腦子中其實有一個聲音告訴我,這個產品你其實沒必要做那么重,只要能用就行了。
新功能簡單做一下,沒有什么致命bug,前端樣式和架構其實都不用調。只需要花一兩天新版本就能推上去了,開發(fā)難度降低了很多。
從理性角度來講這是正確的,但我想認真做好產品。
我可以接受花更多的時間,可以接受少寫一點文章少一些流量,我想把這個產品做好,堅持迭代下去。
我在“提示詞管理助手”開發(fā)完,去找小排老師和大銘老師得瑟的時候是這么說的:我的新版本開發(fā)完了,我感覺我的AI編程水平又往前邁了一大步。
如果我當時選擇了偷懶,選擇了不面對這一關,會錯過很多美麗的風景的。
我想,還是要認真做好每一件事情,對得起自己,對得起用戶,對得起良心。
這世界的力終究是反作用的,你給這個世界什么樣的力,它會還回來的。
本文由人人都是產品經(jīng)理作者【云舒】,微信公眾號:【云舒的AI實踐筆記】,原創(chuàng)/授權 發(fā)布于人人都是產品經(jīng)理,未經(jīng)許可,禁止轉載。
題圖來自Unsplash,基于 CC0 協(xié)議。
安卓版么?iOS開發(fā)會容易點