周六晚上,我坐在沙發(fā)上看電視,孩子則坐在書桌邊全身關(guān)注地盯著電腦,時(shí)不時(shí)敲一會(huì)兒鍵盤,然后笑著告訴我:“爸爸,它把這個(gè)附加牌的效果實(shí)現(xiàn)了!”
我知道,她不是在玩游戲,她是用一個(gè)AI Coding工具,開發(fā)自己設(shè)計(jì)的一個(gè)回合制卡牌類游戲。
![]()
這不是一個(gè)簡(jiǎn)單的小游戲,有攻擊牌、附加牌(效果會(huì)持續(xù)幾個(gè)回合)、防守牌,牌還可以合并,有攻擊距離,角色可以移動(dòng),有體力值,邏輯復(fù)雜,再加上各種動(dòng)態(tài)特效,讓我這個(gè)老程序員來(lái)做,也是很頭疼的。
但是讓我萬(wàn)萬(wàn)沒想到的是,我僅僅幫她開了個(gè)頭,做了技術(shù)選型,她竟然獨(dú)自用自然語(yǔ)言驅(qū)動(dòng)TRAE把游戲的功能逐個(gè)實(shí)現(xiàn)了。
這要是放在一年前,打死我也不敢相信的。
這一年,TRAE的發(fā)展可謂是迅猛至極,幾乎每周都有更新,我眼睜睜地看它從一個(gè)小插件,變成一個(gè)可以信任的編程伙伴。
最近TRAE的年終用戶報(bào)告也出來(lái)了,我看了一下還是挺有趣的。
我從3月2日開始使用,最多一天用了208分鐘,狂按Tab 54次,有一天竟然怒刷了近7000行代碼(哈哈,應(yīng)該是在讓TRAE給我實(shí)現(xiàn)SQLite),最后榮獲“創(chuàng)世神”的稀有稱號(hào),這些數(shù)據(jù)里邊應(yīng)該有不少是孩子的貢獻(xiàn)。
![]()
我其實(shí)并不算是一個(gè)TRAE的重度用戶,日常主要做架構(gòu)和設(shè)計(jì),寫代碼并不多,但是對(duì)于AI Coding工具我也忍不住手癢,會(huì)用TRAE嘗試做點(diǎn)兒小項(xiàng)目,目前TRAE是我用起來(lái)覺得性價(jià)比最高,也是最能帶給我驚喜的AI Coding工具。
在2025年,我感覺完整地經(jīng)歷了使用TRAE三個(gè)階段:
(1) 函數(shù)級(jí): 代碼自動(dòng)補(bǔ)全
(2) 模塊級(jí): 自然語(yǔ)言驅(qū)動(dòng)生成
(3) 項(xiàng)目級(jí):簡(jiǎn)單項(xiàng)目,讓TRAE SOLO從需求到設(shè)計(jì)、開發(fā)、測(cè)試、部署,全部做完。復(fù)雜項(xiàng)目,建立規(guī)范的方法來(lái)驅(qū)動(dòng)TRAE編程,實(shí)現(xiàn)掌控感,讓自己心安。
0 1
開端:從“自動(dòng)補(bǔ)全”開始的信任
最早我用的是MarsCode這個(gè)插件,剛接觸AI Coding,還不太敢大規(guī)模使用,主要做代碼自動(dòng)補(bǔ)全。
![]()
![]()
其實(shí)類似這樣的代碼,程序員也能一點(diǎn)點(diǎn)敲出來(lái),就是特別耗時(shí),用MarsCode一下子就省事多了,當(dāng)然,我還得檢查下它寫得對(duì)不對(duì)。
除了自動(dòng)補(bǔ)全,當(dāng)時(shí)MarsCode還支持“解釋代碼”、“錯(cuò)誤修復(fù)”、“生成注釋”,“自動(dòng)生成單元測(cè)試”等功能,都是程序員平時(shí)常用的功能,使用起來(lái)都非常絲滑。
0 2
試探:用自然語(yǔ)言寫代碼
代碼補(bǔ)全用得多了,發(fā)現(xiàn)AI寫的代碼準(zhǔn)確度非常高,慢慢對(duì)AI Coding放心了。
這時(shí)候TRAE也正好發(fā)布第一版,開始切換過(guò)來(lái),嘗試用自然語(yǔ)言讓它實(shí)現(xiàn)一些模塊級(jí)功能。
![]()
例如我曾經(jīng)讓它實(shí)現(xiàn)過(guò)一個(gè)ETL的功能,從Excel中讀取數(shù)據(jù),輸出JSON
![]()
這些模塊一般邊界清晰、輸入輸出明確、非常適合AI Coding,它實(shí)現(xiàn)起來(lái)真是又好又快。
0 3
放手:讓TRAE單飛搞定一個(gè)網(wǎng)站
7月份,TRAE SOLO beta推出,這個(gè)新版本讓人非常震撼。
TRAE SOLO不但覆蓋了軟件開發(fā)的全生命周期,還能夠理解軟件開發(fā)上下游的各類 Context(產(chǎn)品需求、產(chǎn)品設(shè)計(jì)、技術(shù)方案、代碼、測(cè)試用例、部署的信息),可以根據(jù)用戶的任務(wù)類型,智能去使用不同的 Context 和工具,最終完成開發(fā)任務(wù)。
如果說(shuō)之前AI只是在小范圍“小打小鬧”的話,TRAE SOLO就進(jìn)入了項(xiàng)目級(jí),進(jìn)入了“AI自主執(zhí)行開發(fā)任務(wù)”的新時(shí)代。
我曾經(jīng)用TRAE SOLO的功能實(shí)現(xiàn)了一個(gè)仿reddit的網(wǎng)站,它會(huì)自己拆解需求,生成核心流程,設(shè)計(jì)用戶界面,然后編寫代碼,進(jìn)行部署測(cè)試。
![]()
總之,從最源頭的需求到最后的部署,TRAE SOLO都可以自動(dòng)完成。
![]()
![]()
我最喜歡的一個(gè)功能就是通過(guò)TRAE內(nèi)置的瀏覽器來(lái)查看網(wǎng)站,竟然可以直接修改網(wǎng)站的內(nèi)容,實(shí)現(xiàn)所見即所得!
比如我可以直接在下面的界面中把“最熱帖子”改成“熱門帖子”,即時(shí)生效。
![]()
還可以把界面元素添加到對(duì)話,精確地告訴TRAE我想對(duì)UI做的調(diào)整,這就成了一件和TRAE交互的利器,經(jīng)常被我使用。
0 4
共舞:找回程序員的掌控感
隨著TRAE不斷推出新功能,它的能力也越來(lái)越強(qiáng),尤其是那些智能體,無(wú)論給它什么樣的需求,它都能快速完成。
![]()
我甚至讓它去實(shí)現(xiàn)一些系統(tǒng)級(jí)軟件,比如一個(gè)簡(jiǎn)版SQLite數(shù)據(jù)庫(kù),它也能實(shí)現(xiàn)得有板有眼。
但是很多同事反應(yīng),喪失了程序員原有的掌控感!
AI輸出代碼很多,功能似乎也實(shí)現(xiàn)了,但是面對(duì)這么多代碼,心里是沒底的。
怎么辦呢?我想起來(lái)敏捷軟件開發(fā)中的測(cè)試驅(qū)動(dòng)開發(fā)(TDD), 通過(guò)測(cè)試先行,織起一張安全網(wǎng),這樣AI對(duì)代碼再做任何改動(dòng)以后,都有測(cè)試網(wǎng)保證,能做到心中有底。
![]()
TDD原來(lái)需要程序員先寫測(cè)試,大家很煩,現(xiàn)在有了TRAE,測(cè)試自然不再話下,簡(jiǎn)直為TDD而生!
現(xiàn)在只要建立一套和AI一起工作的TDD規(guī)范就行,舉個(gè)非常簡(jiǎn)單的例子,這是我給孩子開發(fā)「校園零食品鑒」時(shí)使用的提示詞(部分)。
你將作為我的結(jié)對(duì)后端工程師,和我一起用【嚴(yán)格 TDD】方式,使用 Python + Flask 實(shí)現(xiàn)一個(gè) JSON API 網(wǎng)站「校園零食品鑒」。 【核心原則】 永遠(yuǎn)先寫測(cè)試,再寫實(shí)現(xiàn) 任何業(yè)務(wù)能力必須由測(cè)試驅(qū)動(dòng) 未被測(cè)試覆蓋的行為,一律不實(shí)現(xiàn) 每次只實(shí)現(xiàn)一個(gè)最小業(yè)務(wù)行為 實(shí)現(xiàn)階段只寫“剛好讓測(cè)試通過(guò)”的代碼 所有 API 只返回 JSON,不返回 HTML API 是面向真實(shí)前端調(diào)用的,不是 Demo
【TDD 紀(jì)律(不可違反)】 1. 沒有測(cè)試,不能寫實(shí)現(xiàn) 2. 測(cè)試未確認(rèn)前,不得寫實(shí)現(xiàn) 3. 不提前設(shè)計(jì)模型、表結(jié)構(gòu)或抽象 4. 任何“順手加的功能”都是違規(guī) 5. 始終說(shuō)明當(dāng)前是 Red / Green / Refactor 階段 【交互規(guī)則】 每一步先解釋你要做什么 測(cè)試命名要體現(xiàn)業(yè)務(wù)語(yǔ)義 測(cè)試中要明確斷言 JSON 結(jié)構(gòu)與內(nèi)容 未經(jīng)我確認(rèn),不進(jìn)入下一階段 現(xiàn)在請(qǐng)等待我給出第一個(gè)【可測(cè)試行為】。
一個(gè)可測(cè)試行為是這樣的:
Given 系統(tǒng)中存在一個(gè)零食 When 客戶端 GET /api/snacks/{id} Then 返回狀態(tài)碼 200 And 返回 JSON 包含: id name ratings comments 請(qǐng)你: 只寫測(cè)試 不寫任何實(shí)現(xiàn) 標(biāo)注 Red 階段
然后進(jìn)入實(shí)現(xiàn)階段
請(qǐng)進(jìn)入 Green 階段,用最小實(shí)現(xiàn)讓測(cè)試通過(guò)。 如果你發(fā)現(xiàn)自己想“順便”加點(diǎn)什么, 那說(shuō)明你已經(jīng)偏離 TDD,請(qǐng)停下來(lái)。
經(jīng)過(guò)若干行為的實(shí)現(xiàn)以后,進(jìn)行重構(gòu):
現(xiàn)在進(jìn)入 Refactor 階段, 在不改變?nèi)魏涡袨椤⒉恍薷臏y(cè)試的前提下, 請(qǐng)整理代碼結(jié)構(gòu)。
通過(guò)這種結(jié)構(gòu)化的方式來(lái)約束AI,不要一下子跑得太猛,太快,而是小步快跑,循序漸進(jìn)。確保每一個(gè)功能都被測(cè)試完整覆蓋,每一行代碼都可控,心里有底。
實(shí)踐證明,TRAE在TDD模式的表現(xiàn)特別棒,大家有空也可以試一試。
0 5
尾聲:從輔助者到創(chuàng)造者的加速器
從我這一年使用TRAE的經(jīng)驗(yàn)來(lái)看,以TRAE為代表的AI Coding工具已經(jīng)從函數(shù)級(jí)走向模塊級(jí),最后來(lái)到了項(xiàng)目級(jí)。它已經(jīng)從編程的輔助者(自動(dòng)補(bǔ)全)變成了良好的協(xié)作者,正在向自主執(zhí)行進(jìn)軍。
原來(lái)我們認(rèn)為不太可能的一些工作,現(xiàn)在都在被AI一一攻克,它甚至實(shí)現(xiàn)了讓一個(gè)十幾歲的小孩子不懂編程的情況下,獨(dú)自編寫自己喜歡的游戲。
當(dāng)然,這也孩子個(gè)人玩的娛樂性的項(xiàng)目,我們一旦面對(duì)大型的、復(fù)雜的、正式的項(xiàng)目,程序員必須站出來(lái)做問(wèn)題的定義者,質(zhì)量的裁決者和AI指揮官。在通用人工智能實(shí)現(xiàn)之前,我相信這一點(diǎn)都不會(huì)變化。
我期待未來(lái)的TRAE,不只是更加“聰明”,而是更加“職業(yè)”,是一個(gè)能融入工程體系的存在:希望它能在大型項(xiàng)目中累積記憶,知道什么是系統(tǒng)的紅線和共識(shí);知道什么時(shí)候該激進(jìn)試錯(cuò),什么時(shí)候必須保守演進(jìn);希望它能理解評(píng)審、回滾、審計(jì)這些看不見的工程紀(jì)律,這樣TRAE就不是單點(diǎn)爆發(fā)的效率工具,而是可以被團(tuán)隊(duì)長(zhǎng)期信任的生產(chǎn)力節(jié)點(diǎn)。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.