本文來自微信公眾號: caoz的夢囈 ,作者:caoz
先匯報一下,其實我的vibe coding一直有繼續(xù),最近沒通報是因為希望后續(xù)產(chǎn)品有個穩(wěn)定的發(fā)布版本,但是有點遺憾,第一是審核時間變得很長。(可以看出,用AI做App已經(jīng)是潮流)第二是蘋果市場悍然拒絕我的產(chǎn)品上架,說是山寨和重復(fù)產(chǎn)品,申訴未果,就只能放在testflight里,不過最近兩周一直在外面浪,所以一些修復(fù)更新還沒處理,所以今天暫時不宣傳自己做了什么。主要是很多人會疑惑,AI技術(shù)越來越強(qiáng),對小白越來越友好,那么我們還需要學(xué)習(xí)vibe coding么,那句話咋說來著,只要你學(xué)的不夠快,你就發(fā)現(xiàn)可以不用學(xué)了。
如果我們把vibe coding,或者說AI編程簡單理解為提示詞工程,如何學(xué)習(xí)使用合理的提示詞,可能真不用學(xué)了。
話說回來,有一件事我確實又忽視了,TK教主微博提到了大概這么個意思,學(xué)習(xí)AI的第一步?jīng)]那么高深,先能做到正確表達(dá)。有時候我們以為是理所當(dāng)然的基本能力,其實很多人不具備,清晰表達(dá)力是學(xué)會使用AI的第一步,沒有這一步,再好的AI也無法給你真正的幫助。我發(fā)現(xiàn)我兒子就有這個問題,他天天有點頭疼腦熱就用AI搜索,然后每次都說自己得了特別要命的絕癥,需要緊急治療,其實就是他的表達(dá)極度夸張,缺乏嚴(yán)謹(jǐn)清晰的描述。
任何時候,溝通能力都是基本功,表達(dá)能力和理解力,否則再強(qiáng)大的工具你也利用不起來,在我的文章里,我會默認(rèn)你有這個基礎(chǔ),這是所有后續(xù)建議的前提。
那么現(xiàn)在AI編程很強(qiáng)大了,我們好像真的可以零基礎(chǔ)做項目了,是不是意味著任何人都可以輕松的做任何事情了?
也許未來可以,但我覺得時間還有幾年。
也許你可以躺著等,等別人把能做的都做了,把能占的坑都占完了,然后你說,現(xiàn)在不用學(xué)也能做到了,問題是,這時候你做到了,還有什么價值呢。
就最近這一年,已經(jīng)明顯感覺到,蘋果和谷歌的審核周期變長了,審核門檻提高了,背后真相不用猜也知道,都在瘋狂發(fā)布產(chǎn)品,而且都是AI生成的。
所以,如果你現(xiàn)在選擇從入門到放棄,我覺得也可以理解,但是如果你覺得還可以掙扎一下,還有一些想法值得去嘗試實現(xiàn),那么,結(jié)合我最近的經(jīng)驗教訓(xùn),以及和其他人溝通的一些反饋,說一下我的建議。
1,記憶管理仍然有意義。
我其實幾個月前在新加坡和某知名創(chuàng)業(yè)者就聊過這個話題,目前大模型的記憶管理并不完善,包括所謂持續(xù)記憶的chatgpt,實際溝通中也會經(jīng)常忘記過去的信息。而且隨信息量增加這個現(xiàn)象更明顯。
編程也存在這個問題,你過往開發(fā)的目的,每次改動調(diào)整的目標(biāo)和策略,是否有完整的記憶,實際上很多人開始會有產(chǎn)品文檔,但是迭代的時候會丟信息,然后后續(xù)開發(fā)修復(fù)或者增加功能的時候,AI只看代碼和當(dāng)前需求,會錯漏很多過往的問題,有時候就會形成很惡心的鬼打墻局面,改了一個新問題,老問題出現(xiàn)了,改了老問題,新問題又回來了。反復(fù)在重復(fù)問題中轉(zhuǎn)圈。
所以編程的過程中也需要不斷更新記憶文件,并且這個文件也不能太大,否則token消耗會爆掉,就需要主索引文檔和不同的模塊文檔,這樣才能平衡消耗和記憶保存,你們看到現(xiàn)在很多第三方工具都把解決記憶問題當(dāng)作核心競爭力,比如愛馬仕agent,比如那個好萊塢女影星的開源項目,我最近在星球也一直強(qiáng)調(diào)這個。
每次版本迭代和更新的時候,要求AI合理的記錄記憶文件,并且記憶文件要合理的進(jìn)行規(guī)劃,去重冗余,并且不要用大而全的文件存儲一切,方便后續(xù)快速對應(yīng)閱讀和處理。這樣AI在后續(xù)處理的時候,能夠做到盡量不傷害過往的成果,不重現(xiàn)過往的錯誤。
我知道這說起來好像挺平常的,其實我在開發(fā)過程中,最怕的就是這個,突然過往的成果被改壞了,或者過往修復(fù)過的bug又重現(xiàn)了,很多次,很多很多次。記憶管理,要讓AI知道過往。
2,代碼可維護(hù)性
其實記憶管理也是可維護(hù)性的一部分,但不是全部。
有些人就會問,你都用AI編程了,代碼你又不改,可維護(hù)性不是脫褲子放屁。
這里的可維護(hù)性,不是人來維護(hù)代碼,而是AI維護(hù)代碼。
AI維護(hù)代碼,也需要可維護(hù)性。
AI修改的代碼會越來越龐大,越來越多廢棄的部分,此外,復(fù)用性不夠,類似的功能很多重復(fù)編寫,那么后續(xù)進(jìn)行版本迭代的時候,它就可能出現(xiàn)各種問題,比如陷入大量冗余代碼理解而浪費token,比如因為復(fù)用性不夠只處理了一部分問題,導(dǎo)致整體展示和業(yè)務(wù)邏輯不統(tǒng)一,比如會去更新已經(jīng)廢棄的代碼而不是正在使用的部分,比如理解代碼的過程被廢棄邏輯引入歧途,我坦白說,這些比如我都經(jīng)歷過,不是拍腦袋想的。
所以,每次版本更新,都需要讓AI在它清醒的時候(剛做完更新,記憶還相對完整),清理掉冗余邏輯,刪除廢棄代碼,提升復(fù)用性,類似結(jié)構(gòu)代碼歸并處理。這樣,后續(xù)AI自己做新的版本迭代的時候,才能節(jié)省token,提升處理效率,以及降低各種惡心事情的發(fā)生幾率。
3,自動測試體系
AI編程后,我發(fā)現(xiàn)有一件事的工作量不但不會少,反而增加了,就是測試。
因為以前很清楚自己修改了什么地方,測試也只著重跟進(jìn)特定功能和操作流程即可。但是AI編程很多時候不知道它改了啥,特別是當(dāng)指示約束不夠好的時候,它會基于錯誤的理解去亂改,就很崩潰,有時候你以為它只改了一個小局部,但可能很多想不到的地方也被干擾的面目全非,特別是如果架構(gòu)設(shè)計不清晰的一些vibe coding玩家,更容易遇到這種情況。
所以每次改動都要做各種測試,而且就算如此也經(jīng)常遇到意想不到的地方出問題了。
所以當(dāng)設(shè)計好需求后,其實是應(yīng)該設(shè)計一個自動測試的測試范例和流程,好消息是,這個可以讓AI來做,壞消息是,這個做完了也需要你測試是不是真的好使。
AI自動測試是個非常大的方向,現(xiàn)在應(yīng)該有不少第三方的工具,不過我坦白,我還沒用過,這是我的問題。如果你希望靠個人或小團(tuán)隊打造一個可持續(xù)穩(wěn)定迭代的商業(yè)產(chǎn)品,這件事需要重視起來,因為你會發(fā)現(xiàn),當(dāng)你產(chǎn)品進(jìn)入不斷的反饋迭代優(yōu)化流程時,這是你70%的工作量。
另外,再度強(qiáng)調(diào),自動測試只能解決功能性測試,也就是功能是否符合設(shè)計預(yù)期。但不能解決一些所謂體驗優(yōu)化的測試,特別是小游戲這種,比如游戲難度是否合理,游戲卡頓,游戲用戶操作的流暢度,交互反饋用戶理解是否一致,數(shù)值平衡等等,這些仍然需要人來測試。甚至需要深度玩家才能測試出來。
就像我最近搞得AI圍棋工具,我真的請了職業(yè)棋手參與測試,因為我的水平怎么下都是輸,完全測試不了難度分級的效果。
4,關(guān)注本地模型
大模型雖好,但是使用成本越發(fā)昂貴。
我這里說的本地模型,是指當(dāng)你產(chǎn)品希望賦予某些AI能力,一種是基于API訪問大模型,按照使用付費,另一種是直接嵌入本地模型,在客戶端直接跑起來。
但目前,一般手機(jī)能力有限,能在手機(jī)上跑的本地模型通常能力不強(qiáng),或者過于消耗資源而無法被手機(jī)市場接納。
比如我本來打算用katago 28B本地版本直接做AI圍棋終端,但是連產(chǎn)品提交都不行,只好降級為18B版本,就這樣也無法展開參數(shù)跑,手機(jī)性能畢竟有限。
不過從長遠(yuǎn)看,第一,本地模型能力正在快速增長;第二,手機(jī)算力也在持續(xù)增長。所以未來可以樂觀一點,基于本地模型的一些AI工具依然會大有可為。
還是前面的案例,即便是katago 18B模型,用低參數(shù)去跑,依然可以有準(zhǔn)職業(yè)棋手的棋力,這是很恐怖的。以前alphago lee版本需要驚人的算力成本來維持其表現(xiàn)力,而現(xiàn)在稍微帶高端一點顯卡的單機(jī)都可以輕松碾壓那個版本(katago28B都不需要最高參數(shù),中等參數(shù)足夠了,手機(jī)暫時還不行,但再過幾年呢)
本地模型,開源模型,如何部署,如何結(jié)合到自己的網(wǎng)站,應(yīng)用里,都是值得關(guān)注的方向,未來幾年,在成本效率平衡的考量下,本地模型大有可為。
5,有想法盡量占坑吧。
蘋果審核明顯更嚴(yán)苛了,谷歌審核周期也逐漸拉長。
所謂占坑,就是某些領(lǐng)域你要盡早塞進(jìn)你的產(chǎn)品,然后以后慢慢迭代,為什么這么說,蘋果拒絕我的AI圍棋產(chǎn)品,說是山寨和濫發(fā),其實我能理解,就是現(xiàn)在做AI圍棋的太多了,而且katago又是開源引擎,他們代碼一審核,好家伙,好多產(chǎn)品都帶著這個引擎,而且圍棋么,你想想,還能有啥功能,還能長啥樣,都是對弈,復(fù)盤,識譜這些對吧。這咋創(chuàng)新,幾千年了對不對。
以前沒那么多人做App,有些相似問題也不大,現(xiàn)在好家伙,幾倍十幾倍的增長,人家門檻自然水漲船高了。
如果你不早點占坑,以后你做出來的產(chǎn)品,可能上架門檻會更高,可能辛辛苦苦做出來,人家審核說一句,沒創(chuàng)新,你就上不了市場。占坑以后才有機(jī)會慢慢迭代。
以上,是對不死心,還想繼續(xù)在這個領(lǐng)域折騰的同學(xué)的建議。
最近我發(fā)現(xiàn)一個趨勢,其實我自己也是,就是很多App或者小程序的開發(fā)者,就不是為了賺錢,不是為了做出多成功的產(chǎn)品,是什么呢,自己有需要,市場上也有產(chǎn)品,但是市場上的產(chǎn)品要么就訂閱費,要么就彈廣告,要么就只能聯(lián)網(wǎng)才能使用。那現(xiàn)在AI編程那么容易,自己搞一個,就照著主流產(chǎn)品做,但是不收費不彈廣告,自己用著舒服就好。我開發(fā)的幾款產(chǎn)品,先不管別人怎么看,我是真的平時一直在玩,在用的。
想想也是,我要是手機(jī)市場的負(fù)責(zé)人,我也不喜歡這種開發(fā)者,這不攪局么。
