偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

會(huì)用ChatGPT≠工程師,谷歌資深員工發(fā)文,揭秘AI編程不為人知的真相

人工智能 新聞
蘇格拉底曾提到的門諾悖論(Meno's paradox)認(rèn)為,人只能學(xué)會(huì)自己已經(jīng)知道的事情;而關(guān)于AI輔助編程,谷歌資深工程師最近的一篇博客告訴我們,類似的知識(shí)悖論同樣存在。

盡管程序員們紛紛反饋用上AI輔助之后,工作效率提升,但我們用到的軟件中bug依舊不少。

針對(duì)這一現(xiàn)象,前谷歌產(chǎn)品經(jīng)理Peter Szalontay,以及現(xiàn)任的谷歌Chrome的工程團(tuán)隊(duì)領(lǐng)導(dǎo)Addy Osmani都給出了自己的分析,并提供了一些如何使用AI輔助編程的建議。

AI編碼工具的黑暗真相

1月7日,前谷歌產(chǎn)品經(jīng)理Peter Szalontay發(fā)推,并配上了一個(gè)令人驚心動(dòng)魄的標(biāo)題:「無人談?wù)摰腁I編碼工具的黑暗真相」。

「在華麗的demo和病毒式推文的背后,隱藏著半途而廢的項(xiàng)目和破碎的承諾?!?/span>

圖片

Peter Szalontay表示,作為L(zhǎng)azy AI的首席執(zhí)行官,他在18個(gè)月的時(shí)間的時(shí)間中目睹了超過10萬名開發(fā)人員的苦苦掙扎,因此要為所有構(gòu)建AI項(xiàng)目的開發(fā)者提供幾條建議。

圖片

Peter Szalontay本科畢業(yè)于加州大學(xué)洛杉磯分校,修讀了數(shù)學(xué)/經(jīng)濟(jì)學(xué)和軟件工程專業(yè),2016年-2019年期間曾擔(dān)任谷歌產(chǎn)品經(jīng)理,領(lǐng)導(dǎo)著一支由1000多名員工組成的團(tuán)隊(duì),并推出了響應(yīng)式搜索廣告(Responsive Search Ad)。

2023年3月,Szalontay成立初創(chuàng)公司Lazy AI并擔(dān)任CEO,旨在幫助用戶通過無代碼或低代碼的方式構(gòu)建全棧Web應(yīng)用程序。

1. 智能體編碼≠萬金油

「50%的AI編寫的代碼都毫無價(jià)值」。如果你試過Bolt、v0、Replit等工具來構(gòu)建登錄頁面以外的東西,一定對(duì)這句話深有感觸。

因?yàn)槊看未a更改時(shí),都有可能因prompt引入一些bug或不需要的行為。如果LLM每次對(duì)代碼進(jìn)行5項(xiàng)更改,那么代碼完成時(shí),可能會(huì)出現(xiàn)許多個(gè)你自己都不知道怎么會(huì)觸發(fā)的bug。

Lazy AI采取的方式是按照工程師的方式進(jìn)行構(gòu)建:發(fā)送prompt、測(cè)試更改,然后發(fā)送另一個(gè)prompt。這是獲得有效成果的唯一途徑。

2.「通用編碼器」是一個(gè)謊言

如果一家公司站出來說他們已經(jīng)開發(fā)了一款產(chǎn)品,可以讓你只用prompt在任何框架中構(gòu)建任何應(yīng)用程序......冷靜點(diǎn),這種說法很可疑。

Lazy AI首次嘗試同時(shí)支持Python和JavaScript編碼時(shí),讓AI在JS文件中編寫Python,結(jié)果它混淆了依賴關(guān)系,甚至弄混了兩種語言的注釋語法。

最終確實(shí)有方法讓AI在兩種語言中都能可靠地工作——但只有為編程語言構(gòu)建特定的修復(fù)程序,并驗(yàn)證模型的每個(gè)響應(yīng)之后才能做到。

3. 不要把授權(quán)交給LLM

你可以在任何AI編碼工具中嘗試這個(gè)簡(jiǎn)單的提示:「構(gòu)建一個(gè)谷歌登錄頁面,并跳轉(zhuǎn)到顯示我的詳細(xì)信息的個(gè)人資料頁面?!?/span>

之后你就會(huì)看到層出不窮、千奇百怪的錯(cuò)誤和bug:被破壞的OAuth流程,重定向URI錯(cuò)誤,以及在Google Cloud Console中無休止地打轉(zhuǎn)以獲取API密鑰。

4. LLM無法訪問數(shù)據(jù)庫

幾乎每個(gè)想法的實(shí)現(xiàn)都需要一個(gè)數(shù)據(jù)庫,但構(gòu)建項(xiàng)目時(shí),又總是需要更改數(shù)據(jù)庫。如果AI編碼工具按提示收費(fèi),那么準(zhǔn)備好迎接下面這些不斷重復(fù)的場(chǎng)景:

你更改了數(shù)據(jù)庫,AI Agent混亂了......

你修改了了代碼,數(shù)據(jù)庫混亂了......

你需要遷移,結(jié)果AI編寫了有缺陷的遷移代碼......

5. 現(xiàn)在付款,但永遠(yuǎn)沒法成功

下面這些AI常見的智障錯(cuò)誤,不知道你是否眼熟:


- 要求AI構(gòu)建新功能時(shí),AI卻刪除了一部分之前的內(nèi)容

- AI復(fù)制了你的部分代碼 

- 你明確指示執(zhí)行X操作,AI卻正在執(zhí)行Y 

- AI因?yàn)闊o法修復(fù)自己創(chuàng)建的bug而卡住


當(dāng)你現(xiàn)在為AI編碼工具付費(fèi)時(shí),期待模型在未來「變得更好」是不夠的,一個(gè)放錯(cuò)位置的括號(hào)可能會(huì)破壞整個(gè)頁面。在一個(gè)沒有從頭開始準(zhǔn)備的平臺(tái)上構(gòu)建現(xiàn)實(shí)世界中的應(yīng)用程序,就是在浪費(fèi)錢。

以上這些推文的內(nèi)容或許過于簡(jiǎn)明扼要,而且傾向性過強(qiáng)。如果要想更全面、更深入地探究AI輔助編碼的利弊,以及最佳的使用方法,谷歌Chrome工程團(tuán)隊(duì)領(lǐng)導(dǎo)Addy Osmani的這篇博客則更加有用。

圖片

原文鏈接:https://addyo.substack.com/p/the-70-problem-hard-truths-about

AI輔助編程——菜鳥和老手的差距

對(duì)AI輔助編程工具的使用,存在兩種模式,第一種可以稱為「自舉模式」(bootstrapper),也就是使用諸如Bolt之類的工具,根據(jù)截圖產(chǎn)生代碼,使得程序員能夠在AI協(xié)助下完成初始代碼庫,從而在數(shù)小時(shí)或數(shù)天而非數(shù)周的時(shí)間,生成最小可用原型。

相比于從零開始,程序員更熟悉的方式是如下描述的「迭代模式」,即使用Cursor、Copilot等工具進(jìn)行日常開發(fā)工作流程。

圖片

例如,使用人工智能進(jìn)行代碼補(bǔ)全、進(jìn)行復(fù)雜重構(gòu)任務(wù)、生成測(cè)試和文檔,或是將AI智能體當(dāng)作「小助手」,咨詢編程中遇到的問題,并尋求代碼改進(jìn)建議。

在迭代模式下,新手和老油條看似都能在幾分鐘之內(nèi)使用AI工具完成代碼搭建,但細(xì)看下來,資深程序員對(duì)AI的使用更加智慧。

他們不僅僅是接受AI的建議,而是試圖讓AI重構(gòu)代碼,生成更小、更專業(yè)化的模塊。資深程序員還會(huì)增加AI遺漏的意外情況的處理模塊,同時(shí)對(duì)AI給出的建議保持質(zhì)疑。

相反,新手則會(huì)盲從AI的建議,這樣生成的代碼會(huì)如同海邊的沙堡,看似堅(jiān)固,但一遇到現(xiàn)實(shí)中的意外案例,就會(huì)崩潰。

這是由于,「菜鳥」會(huì)接受AI給出的錯(cuò)誤或過時(shí)的代碼,忽略關(guān)鍵的安全性和性能考慮,也沒有對(duì)AI生成的代碼進(jìn)行調(diào)試,從而構(gòu)建出一個(gè)他們不完全理解的脆弱系統(tǒng)。

以上的差異可以說明,AI工具對(duì)經(jīng)驗(yàn)豐富的開發(fā)者幫助大于初學(xué)者。這似乎有些反直覺——AI不應(yīng)該使編程變得更加人人可及嗎?

知識(shí)悖論——只有知道怎么用才能用好

事實(shí)上,當(dāng)前的AI,就像是在團(tuán)隊(duì)中有一個(gè)工作積極性爆棚的初級(jí)開發(fā)者。他們可以快速編寫代碼,但需要不斷的監(jiān)督和糾正。你知道的越多,就能更好地引導(dǎo)他們。

不止是在程序員群體之中,非工程師使用AI進(jìn)行編碼時(shí),也會(huì)遇到類似的問題,即發(fā)現(xiàn)自己遇到了令人沮喪的瓶頸。AI工具能出人意料地迅速完成70%的任務(wù),但在最后、最難完成、最令人沮喪的30%上,卻只會(huì)收益遞減。

圖片

可以舉一個(gè)小例子來理解這個(gè)現(xiàn)象。比如,你試圖讓AI修復(fù)程序中的一個(gè)小bug,智能體給出一個(gè)看似合理的建議,但這個(gè)補(bǔ)丁破壞了其他部分。

接著,用戶會(huì)繼續(xù)要求AI修復(fù)新出現(xiàn)的問題,這又產(chǎn)生了更多的bug,從而使得局面變得更糟。這意味著最后的30%——使軟件準(zhǔn)備進(jìn)入生產(chǎn)、可維護(hù)和健壯的部分——仍然需要真正的工程知識(shí)。

人工智能并沒有使我們的軟件顯著改進(jìn),因?yàn)檐浖|(zhì)量可能從未主要受限于編碼速度。軟件開發(fā)中的難點(diǎn)——理解需求、設(shè)計(jì)可維護(hù)的系統(tǒng)、處理意外情況、確保安全和性能——仍然需要人類的判斷。

AI所做的,是讓我們能夠更快地進(jìn)行迭代和實(shí)驗(yàn),通過更快的探索,可能帶來更好的解決方案。但前提是程序員必須保持工程規(guī)范,將AI作為工具,而不是替代良好軟件實(shí)踐的替代品。

記?。耗繕?biāo)不是更快地編寫更多代碼。而是構(gòu)建更好的軟件。如果使用得當(dāng),人工智能可以幫助我們做到這一點(diǎn)。但最終,我們?nèi)孕柚馈父谩沟暮x以及如何實(shí)現(xiàn)它。

當(dāng)下對(duì)AI輔助編程濫用的背后,還有一個(gè)更深層次的問題:AI工具讓編碼變得人人可行的實(shí)質(zhì),是代替你處理了程序的復(fù)雜性。從另一個(gè)角度來看,這實(shí)際上可能會(huì)阻礙新手的學(xué)習(xí)與成長(zhǎng)。

AI只是把代碼放在你面前,并不能讓你理解其背后的原理時(shí)。由于新手缺少調(diào)試經(jīng)驗(yàn),而這會(huì)反過來導(dǎo)致了一種對(duì)AI工具的依賴。他們需要不斷回到AI那里去修復(fù)問題,而不是培養(yǎng)自己處理這些問題的專業(yè)知識(shí)。

如何使用AI編程——幾條建議

有鑒于AI輔助編程中的「知識(shí)悖論」,當(dāng)前的人工智能工具最好被用于快速驗(yàn)證想法,并用來生成最小可用的原型,或者作為有助于編程學(xué)習(xí)的輔助工具。

對(duì)于如何用好這些工具,作者給出了如下建議:

1. 從原型做起,使用AI進(jìn)行快速原型設(shè)計(jì)

2. 使用人工智能處理孤立、定義明確的任務(wù),逐步構(gòu)建更大的功能

3. 花時(shí)間理解生成的代碼是如何工作的,并審核每一行代碼

4. 保持「模塊化」,將代碼分拆為功能單一的模塊和小文件,保持組件之間的清晰接口,記錄模塊的邊界

5. 在應(yīng)用AI輔助編程的同時(shí),學(xué)習(xí)基本編程概念,逐步建立知識(shí)基礎(chǔ)

6. 將人工智能作為學(xué)習(xí)工具,加速學(xué)習(xí),而不僅僅是代碼生成器

7. 最重要的是,相信自己的判斷力,利用人工智能加速,而非取代判斷力

但以上這些都需要耐心和努力——這與許多人最初希望通過AI工具實(shí)現(xiàn)的目標(biāo)正好相反。

具體來說,在編程時(shí),有益的AI工具使用可分為三種模式:

一是「AI初稿」模式:即讓AI生成一個(gè)基礎(chǔ)版代碼庫,之后程序員手動(dòng)審查和重構(gòu)以提高模塊化程度,并增加全面錯(cuò)誤處理、撰寫詳盡的測(cè)試,同時(shí)記錄關(guān)鍵決策。

第二種是是恒定對(duì)話模式,即為每個(gè)不同的任務(wù)啟動(dòng)新的AI聊天,在對(duì)話時(shí)保持語境集中且簡(jiǎn)潔,程序員經(jīng)常審查代碼并提交更改,在此過程中保持緊密的反饋回路。

第三種被稱為「信任但核實(shí)」模式,程序員使用AI進(jìn)行初始代碼生成,對(duì)所有關(guān)鍵路徑進(jìn)行手動(dòng)審查,同時(shí)對(duì)可能的異常案例進(jìn)行自動(dòng)化測(cè)試,并定期進(jìn)行安全審核。

展望未來——AI對(duì)程序員意味著什么

盡管存在由于知識(shí)悖論帶來的挑戰(zhàn),對(duì)人工智能在軟件開發(fā)中的作用,我們應(yīng)持樂觀態(tài)度。這其中的關(guān)鍵在于,理解AI真正擅長(zhǎng)的是什么:

人工智能擅長(zhǎng)幫助實(shí)施我們已理解的模式。它就像有一個(gè)無限耐心的、打字速度極快的程序員搭子,非常適合快速原型設(shè)計(jì)和探索不同的方法;也像一個(gè)沙盒,可以用于快速測(cè)試概念。

此外,AI還顯著縮短了處理模板和常規(guī)編碼任務(wù)所需的時(shí)間,并能自動(dòng)處理日常事務(wù),使程序員能夠?qū)W⒂谟腥さ膯栴}。

人工智能輔助開發(fā)的格局在2025年將發(fā)生巨大變化。盡管當(dāng)前的工具已經(jīng)改變了原型設(shè)計(jì)和迭代方式,但我們正站在一個(gè)更加重大變革的邊緣:即AI智能體軟件工程的興起。

圖片

未來的輔助編程系統(tǒng),不僅僅是響應(yīng)提示,它們還能規(guī)劃、執(zhí)行并不斷迭代解決方案。

當(dāng)前工具大多等待程序員的指令,但看看像Anthropic在Claude中實(shí)現(xiàn)的計(jì)算機(jī)使用,或Cline自動(dòng)啟動(dòng)瀏覽器和運(yùn)行測(cè)試的新功能。這些不僅僅是美化版的自動(dòng)補(bǔ)全——它們實(shí)際上是在理解任務(wù)并主動(dòng)解決問題。

而自主編程AI不僅僅是提出修復(fù)方案,它還可以主動(dòng)識(shí)別潛在問題,啟動(dòng)并運(yùn)行測(cè)試套件,檢查UI元素并捕獲屏幕截圖,提出并實(shí)施修復(fù)方案以及驗(yàn)證解決方案是否有效。

下一代輔助工具可能不僅限于與代碼協(xié)同工作——它們可能實(shí)現(xiàn)無縫集成:視覺理解(UI截圖、原型、圖表)與語言交互(瀏覽器、終端、API)。

這種多模態(tài)能力意味著,AI工具可以像人類一樣理解和處理軟件——全面地,而不僅僅是代碼層面。

從使用這些工具的工作中,我們應(yīng)意識(shí)到:未來并非關(guān)于 AI 取代開發(fā)者——而是 AI 成為一個(gè)越來越有能力的合作伙伴,它可以在尊重人類指導(dǎo)和專業(yè)知識(shí)的同時(shí)采取主動(dòng)。

圖片

這種對(duì)開發(fā)工具交互方式的根本轉(zhuǎn)變,意味著在自然語言中清晰思考和精確溝通的能力正變得與傳統(tǒng)編碼技能一樣重要。

具體來說,2025 年最有效的團(tuán)隊(duì)需要學(xué)會(huì)如下四點(diǎn):

1. 明確為他們的 AI 智能體設(shè)定邊界和指南

2. 建立強(qiáng)大的架構(gòu)模式,使智能體能夠在其中工作

3. 構(gòu)建人類與AI能力之間的有效反饋循環(huán)

4. 保持人工監(jiān)督的同時(shí)利用AI的自主性

這些都要求程序員提升技能,具備更強(qiáng)的系統(tǒng)設(shè)計(jì)和架構(gòu)思維,更優(yōu)的需求規(guī)范和溝通,更多關(guān)注質(zhì)量保證和驗(yàn)證,并提升人機(jī)協(xié)作能力。

責(zé)任編輯:張燕妮 來源: 新智元
相關(guān)推薦

2010-08-05 11:14:12

Flex優(yōu)勢(shì)

2024-12-09 08:00:00

C++代碼

2010-09-03 08:52:38

CSS

2018-06-01 11:21:49

軟件開發(fā)真相

2020-02-20 12:02:32

Python數(shù)據(jù)函數(shù)

2013-08-09 09:27:08

vCentervSphere

2010-04-19 16:09:22

Oracle控制文件

2014-11-06 10:35:57

程序員

2025-04-24 08:05:00

Linuxsort命令排序

2011-11-15 10:25:56

IBMWindows

2014-08-18 10:44:31

斯諾登

2011-11-08 13:41:27

蘋果siri人工智能數(shù)據(jù)中心

2021-02-05 09:58:52

程序員Windows系統(tǒng)

2011-10-19 16:19:27

iOS 5蘋果

2011-11-14 10:06:16

IBM大型機(jī)支持Windows系統(tǒng)POWER7

2012-11-30 14:13:01

2010-09-06 14:19:54

CSS

2017-03-28 08:40:14

2011-05-03 13:13:52

編程PHPJava

2024-12-31 13:30:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)