小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Cursor 一個(gè)真正讓程序員產(chǎn)生危機(jī)感的 AI 編程工具

 江海博覽 2024-08-15 發(fā)布于浙江

https://www./

Cursor 一個(gè)真正讓程序員產(chǎn)生危機(jī)感的 AI 編程工具

起初

最開(kāi)始接觸 cursor 的時(shí)候是在去年年初,openAI ChatGPT 帶火了一批 AI 概念產(chǎn)品。GitHub 的 Copilot 自不用說(shuō),很早就在使用,有了大模型的加持當(dāng)時(shí)也是如日中天。 我記得 cursor 當(dāng)時(shí)主打的點(diǎn)是:

  1. 可以無(wú)逢遷移 vscode ,vscode 的所有插件可以直接一鍵轉(zhuǎn)移到 cursor。連界面都一模一樣
  2. 輕巧、快速。體量小,啟動(dòng)快,編程效率高
  3. 可用免費(fèi)的 AI 模型進(jìn)行提示。

當(dāng)時(shí)體驗(yàn)下來(lái)發(fā)現(xiàn)也確實(shí)如宣傳所說(shuō),是挺快,但是沒(méi)有那么強(qiáng)的吸引力讓我愿意換 vscode 和 idea 。我使用最多的還是 vscode+idea+copilot+chatgpt ?;旧蠞M(mǎn)足我日常開(kāi)發(fā)的需求了。當(dāng)然后來(lái)又加上了 warp

現(xiàn)在

最近我又體驗(yàn)了一下 cursor ,發(fā)現(xiàn)它和原來(lái)的版本有很大的不同。而這一次,徹底改變了對(duì)它的看法。目前我已將編程工具切換到了 cursor,很心甘情愿的切換了過(guò)去。

原理

先說(shuō)最重要的,一切事情有困就有果,有果就有因,cursor 好用的功能有很多,但最重要的我認(rèn)為只有一個(gè)。關(guān)于這個(gè)功能,我要說(shuō)明一下它的原理。

其實(shí)市面上的 AI 編程助手類(lèi)工具不止一個(gè),比較好用的有:

  • github 的 copilot
  • 字節(jié)豆包的 marscode
  • 阿里的 通義靈碼
Cursor 一個(gè)真正讓程序員產(chǎn)生危機(jī)感的 AI 編程工具
Cursor 一個(gè)真正讓程序員產(chǎn)生危機(jī)感的 AI 編程工具

大家都知道,這些工具背后是各家的 LLM ,提示質(zhì)量的高低主要取決于這些大模型的能力。而所有的工具都只是基于當(dāng)前文件的。無(wú)論是代碼解釋、優(yōu)化、生成注釋?zhuān)际腔诋?dāng)前文件的內(nèi)容,無(wú)論是針對(duì)文件、類(lèi)、方法。你對(duì)代碼提問(wèn)的 codeBase 是單文件,上下文自然也是當(dāng)前打開(kāi)的這個(gè)單文件。

這就是現(xiàn)在的這些 AI 編程工具的運(yùn)行邏輯,從當(dāng)前文件中獲得代碼的上下文再結(jié)合你的提問(wèn)(prompt),一起發(fā)給 LLM,最后得到結(jié)果。其實(shí)這已經(jīng)能解決不少問(wèn)題了,在沒(méi)有 cursor 之前感覺(jué)很不錯(cuò),寫(xiě)程序確實(shí)能提高效率。

我們覺(jué)得上面那些工具很不錯(cuò)是因?yàn)槲覀儧](méi)有用過(guò)更好的工具:

  • cursor 的 codeBase 是整個(gè)工程
  • cursor 的 codeBase 是整個(gè)工程
  • cursor 的 codeBase 是整個(gè)工程

可能有的伙伴看到這幾個(gè)字立刻就懂我是什么意思了,對(duì),就是那個(gè)你越想越激動(dòng)的事情。

Cursor 一個(gè)真正讓程序員產(chǎn)生危機(jī)感的 AI 編程工具

cursor 的邏輯是,先將工程內(nèi)的所有代碼進(jìn)行索引和向量化(Embedding),再之后你的所有提問(wèn)都是基于整個(gè)工程給你答案,它會(huì)將你的提問(wèn)結(jié)合整個(gè)工程的代碼一起提交給 LLM,默認(rèn)有這些模型:

Cursor 一個(gè)真正讓程序員產(chǎn)生危機(jī)感的 AI 編程工具

注意這里不包含 deepseek-coder,那是我自己添加的。

這很像基于 RAG 方法論的系統(tǒng)實(shí)現(xiàn),只不過(guò)外掛的知識(shí)庫(kù)是代碼庫(kù)而已。

這就是我認(rèn)為最重要的功能,我說(shuō)清楚了它的邏輯,接下來(lái)我們來(lái)說(shuō)基于這個(gè)功能能做什么,這才是最激動(dòng)人心的部分

能解決的問(wèn)題

代碼補(bǔ)全

之前工具的代碼補(bǔ)全雖然使用了 LLM,但仍然不那么精準(zhǔn),因?yàn)樗荒馨旬?dāng)前文件作為上下文,而 cursor,它的 codeBase 是基于整個(gè)工程的,它的代碼補(bǔ)全相當(dāng)于是分析了你整個(gè)工程的代碼基礎(chǔ)之上給的建議,那是正當(dāng)?shù)木珳?zhǔn)啊。這也就是為什么有的朋友說(shuō),現(xiàn)在用 cursor 寫(xiě)程序一路 tab 下來(lái)就完事兒了,比自己寫(xiě)的還好。簡(jiǎn)直就是自動(dòng)化編程。

Cursor 一個(gè)真正讓程序員產(chǎn)生危機(jī)感的 AI 編程工具

智能糾錯(cuò)

這代碼你就放心寫(xiě)吧,如果你寫(xiě)著寫(xiě)著寫(xiě)錯(cuò)了,cursor 會(huì)在你輸入的時(shí)候自動(dòng)糾正你的錯(cuò)誤

Cursor 一個(gè)真正讓程序員產(chǎn)生危機(jī)感的 AI 編程工具

它為啥能糾錯(cuò),它怎么知道我寫(xiě)錯(cuò)了? 對(duì),還是 codeBase,你的整個(gè)工程它都了如指掌。

聊天

太基礎(chǔ)的功能了,然而因?yàn)?codebase,它就有了無(wú)限可能。首先,你可以在當(dāng)前文件中針對(duì)某一部分來(lái)提問(wèn),比如你要重構(gòu)一個(gè)方法什么的

Cursor 一個(gè)真正讓程序員產(chǎn)生危機(jī)感的 AI 編程工具

它會(huì)重構(gòu)的比較好,因?yàn)樗?codebase 是整個(gè)工程。

你也可以單獨(dú)打開(kāi)一個(gè)聊天窗口

Cursor 一個(gè)真正讓程序員產(chǎn)生危機(jī)感的 AI 編程工具

在這里提問(wèn)可以?xún)H針對(duì)當(dāng)前文件、文件夾、圖片、文檔、網(wǎng)絡(luò)或者整個(gè) codebase

Cursor 一個(gè)真正讓程序員產(chǎn)生危機(jī)感的 AI 編程工具

最重要就是這個(gè) Codebase 這是可以發(fā)揮無(wú)限想像的地方。

由于篇幅的原因,我不會(huì)把所有的細(xì)節(jié)全部用圖片或視頻的形式放出來(lái),因?yàn)樘嗔?,但你看我的描述也一定能體會(huì)到 cursor 的強(qiáng)大,這里我舉幾個(gè)例子,這些例子我已經(jīng)測(cè)試成功并且在工作中使用了,它很強(qiáng),很實(shí)用:

  1. 我是項(xiàng)目主要的開(kāi)發(fā)者,我現(xiàn)在想針對(duì)某個(gè)功能進(jìn)行重構(gòu),注意不是一個(gè)類(lèi),一個(gè)文件,而是整個(gè)功能的重構(gòu)。我讓 cursor 給出我具體的建議和修改的代碼。它實(shí)現(xiàn)了,非常具體、清晰、詳細(xì)、正確率高達(dá) 95 % 以上(claude 模型)
  2. 我有一個(gè)陳舊的項(xiàng)目,代碼中幾乎沒(méi)有注釋?zhuān)矝](méi)有接口文檔。我現(xiàn)在想從代碼中分析出一份 api 接口文檔,要包括地址、請(qǐng)求類(lèi)型、請(qǐng)求和響應(yīng)字段,以及示例 json。 它也實(shí)現(xiàn)了,就是我想要的內(nèi)容,100% 正確
  3. 我有一個(gè)小白同事,剛進(jìn)項(xiàng)目組,對(duì)他要負(fù)責(zé)的功能模塊完全不知道流程是什么,不巧的是整個(gè)項(xiàng)目也沒(méi)有什么文檔,需要他去看代碼自己梳理。他讓 cursor 幫他梳理出項(xiàng)目中有關(guān) oauth2 認(rèn)證、鑒權(quán)的完整流程。從第一個(gè)請(qǐng)求開(kāi)始,到最后一個(gè)請(qǐng)求數(shù)據(jù)返回,包括所有相關(guān)的代碼片段和執(zhí)行路徑。cursor 瞬間完成了,正確率 100%
  4. 我有一個(gè)測(cè)試同事,想寫(xiě)關(guān)于某個(gè)重要模塊的測(cè)試用例及測(cè)試報(bào)告,cursor 基于整個(gè)項(xiàng)目的 codebase 幫他一步一步實(shí)現(xiàn)了。
  5. 我有個(gè)前端同事上傳了一張別人設(shè)計(jì)的不錯(cuò)的界面的圖片,他讓 cursor 幫他根據(jù)他 vue2 項(xiàng)目的情況自動(dòng)生成頁(yè)面代碼,cursor 瞬間完成了,和圖片的相似度達(dá)到 85%
  6. 我有個(gè)大數(shù)據(jù)開(kāi)發(fā)同事,他正在重構(gòu)之前寫(xiě)的 SQL,他把建表語(yǔ)句告訴 cursor 后,讓他把一批 sql文件根據(jù)他的要求進(jìn)行了重構(gòu),cursor 很快就完成了。
  7. 我有個(gè)運(yùn)維同事,他之前把所有運(yùn)維的工作全部代碼化了。在一個(gè)倉(cāng)庫(kù)里,現(xiàn)在基礎(chǔ)設(shè)施有一些變動(dòng),他讓 cursor 根據(jù)現(xiàn)有的運(yùn)維腳本和代碼進(jìn)行重構(gòu),cursor 瞬間就完成了,正確率 90%
  8. 我還有個(gè)產(chǎn)品同事,現(xiàn)在不怎么用 Axure 畫(huà)原型了,他說(shuō)和 cursor 交流一下基礎(chǔ)上就能出前端代碼,跟前端學(xué)了點(diǎn)兒基礎(chǔ)知識(shí),原型幾分鐘就搞定了。
  9. 我有個(gè)朋友,現(xiàn)在想將 .net 項(xiàng)目轉(zhuǎn)成 java,他原先估計(jì)要組一個(gè)團(tuán)隊(duì)至少 5 個(gè)后端一起干,現(xiàn)在他一個(gè)人正在一步一步地用 cursor 幫助他實(shí)現(xiàn)。
  10. 我還有個(gè)朋友。。。。。

我想你應(yīng)該知道我想說(shuō)什么了,我想你也知道 cursor 為什么足以讓我興奮了。而所有的這些原因,都是因?yàn)樗钪匾脑?,它?codebase,它和其他產(chǎn)品不一樣的邏輯。

cursor 當(dāng)然還有一些其他功能我沒(méi)有介紹到,不過(guò)那都不重要,你已經(jīng)知道了它的邏輯,它的核心原理和功能,剩下的就交給你了,交給你的想象力和創(chuàng)造力了。

優(yōu)點(diǎn)和缺點(diǎn)

以上的內(nèi)容怎么看都是 cursor 的優(yōu)點(diǎn),然而在閱讀的過(guò)程中你一定想到它還有許多令人擔(dān)心的問(wèn)題,沒(méi)錯(cuò)。首先就是數(shù)據(jù)安全。雖然 cursor 官方宣稱(chēng)數(shù)據(jù)是保存在本地的,不會(huì)被上傳,但是我知道你一定擔(dān)心。這是個(gè)有意思的問(wèn)題,因?yàn)殛P(guān)于這一點(diǎn)無(wú)論對(duì)方如何承諾你都不會(huì)輕信,隱私和方便它永遠(yuǎn)是問(wèn)題的兩端,我們不可能全都要,所以要做個(gè)取舍。

然后就是價(jià)格,cursor 前兩周是免費(fèi)使用的,然后再用就要收費(fèi)了,怎么收費(fèi)呢?

Cursor 一個(gè)真正讓程序員產(chǎn)生危機(jī)感的 AI 編程工具

我說(shuō)一下重點(diǎn),如果你使用 cursor 是包含兩部分費(fèi)用的,一部分是軟件的費(fèi)用,這部分比如一個(gè)月 20$ 是付給 cursor 的,另一部分是模型的使用費(fèi)用,這個(gè)是你付給像 openAI 這樣的模型提供商的。那么加起來(lái)可能一個(gè)月你至少有 30$ 以上的成本。不過(guò)關(guān)于模型這部分,因?yàn)?cursor 可以添加 deepseek 的 coder 模型,所以模型使用成本算是打下來(lái)了,因?yàn)?deepseek 模型的 API 是白菜價(jià)

Cursor 一個(gè)真正讓程序員產(chǎn)生危機(jī)感的 AI 編程工具

不但是白菜價(jià),首次注冊(cè)人家還送 500萬(wàn) tokens

Cursor 一個(gè)真正讓程序員產(chǎn)生危機(jī)感的 AI 編程工具

總結(jié)來(lái)說(shuō),除了優(yōu)點(diǎn)都是缺點(diǎn),包括:

  • 成本不低
  • 數(shù)據(jù)安全

這兩點(diǎn)加起來(lái)對(duì)很多人來(lái)說(shuō)就望而卻步了,當(dāng)然還要解決網(wǎng)絡(luò)的問(wèn)題。不過(guò)我覺(jué)得國(guó)內(nèi)的公司一定不會(huì)坐以待斃,一定很快就會(huì)有類(lèi)似的產(chǎn)品上線了,到時(shí)候網(wǎng)絡(luò)就不是問(wèn)題了。

未來(lái)

正如我標(biāo)題所寫(xiě),因?yàn)榭吹搅?cursor,這次我真的覺(jué)得程序員有危機(jī)了,尤其是對(duì)于初級(jí)的、新手程序員。因?yàn)槲矣霉ぞ唠m然可能有一點(diǎn)點(diǎn)錯(cuò)誤,但它可以瞬間完成一些基礎(chǔ)的工作,完全可以替代人了,我不需要招那么多人來(lái)干那些 “臟活累活” ,我只需要幾個(gè)高級(jí)并且會(huì)使用高級(jí)工具的人才就可以了,他們創(chuàng)造的人效是原來(lái)的 10 倍以上。

再進(jìn)一步,自動(dòng)化編程可以期待了嗎? 也就是提一個(gè)描述得很清晰的需求給 AI,他能自動(dòng)把程序?qū)懞?,有公司正在做:https://www./ 原先我覺(jué)得他在吹牛,現(xiàn)在,尤其是使用了 cursor 后,我覺(jué)得可能不遠(yuǎn)了。

Cursor 一個(gè)真正讓程序員產(chǎn)生危機(jī)感的 AI 編程工具

思考

我在最近幾年思考了一個(gè)問(wèn)題,很多企業(yè)沒(méi)有業(yè)務(wù)知識(shí)庫(kù),就算是有,文檔也不全,也不及時(shí)更新,這個(gè)所謂的企業(yè)內(nèi)部的業(yè)務(wù)知識(shí)庫(kù)也是名存實(shí)亡。那如果需要了解業(yè)務(wù)的時(shí)候怎么辦? 比如需要大版本更新,重大業(yè)務(wù)調(diào)整的時(shí)候,怎么辦呢? 找開(kāi)發(fā)看代碼是最準(zhǔn)的了,然后這些辛苦的工作又 TMD 轉(zhuǎn)到開(kāi)發(fā)這兒來(lái)了。

我想來(lái)想去,感覺(jué)沒(méi)有什么非常好的解法。雖然可以用 RAG 來(lái)解決一部分的問(wèn)題,但沒(méi)有完全解決,因?yàn)橹灰臋n不是最新的,文檔有問(wèn)題,一切基于知識(shí)庫(kù)的分析全都是錯(cuò)的。直到 cursor 出現(xiàn)了,我覺(jué)得問(wèn)題可以以另外一種方式來(lái)解決了。因?yàn)榇a是準(zhǔn)的,代碼就是錯(cuò)那也是代碼的 bug。但它是準(zhǔn)的,代碼寫(xiě)錯(cuò)了,也是準(zhǔn)的。代碼什么樣線上就是什么樣,業(yè)務(wù)就是什么樣。

那么整個(gè)企業(yè)的業(yè)務(wù)知識(shí)就已經(jīng)在代碼里了,只需要從代碼倉(cāng)庫(kù)提煉就可以了,我們借助 cursor 或者以后什么其他類(lèi)似的工具再加工一下就完成可以提煉出準(zhǔn)確、實(shí)時(shí)、可用的企業(yè)業(yè)務(wù)知識(shí)了。而這個(gè) “知識(shí)” 才是企業(yè)真正的業(yè)務(wù)資產(chǎn)。代碼就算沒(méi)了,根據(jù)業(yè)務(wù)重建都可以,反過(guò)來(lái),如果你對(duì)業(yè)務(wù)不了解,給你代碼也沒(méi)用。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多