Cursor助力Java開(kāi)發(fā) | 您所在的位置:網(wǎng)站首頁(yè) › 屬豬是哪些幾幾年的 › Cursor助力Java開(kāi)發(fā) |
視頻講解 這篇文章來(lái)教大家如何使用Cursor來(lái)開(kāi)發(fā)Java,開(kāi)始之前先來(lái)回答一個(gè)問(wèn)題:Cursor是基于VSCODE二開(kāi)的,可以用來(lái)寫Java嗎? 答案是可以的,就我使用了一段時(shí)間來(lái)說(shuō),雖然不如IDEA那么順手,但它的Ai功能完全掩蓋其它的不足。 一、Cursor的安裝直接去官網(wǎng)下載: https://www.cursor.com , 交互什么的和vscode一樣(畢竟是基于vscode二開(kāi)的) 導(dǎo)入Java項(xiàng)目,會(huì)提示安裝一些Java擴(kuò)展。下面是一些基本的插件(按照提示就會(huì)安裝,MybatisX看個(gè)人需求) Extension Pack for JavaDebugger for JavaLanguage Support for Java? by Red HatMaven for JavaProject Manager for JavaTest Runner for JavaIntelliJ IDEA Keybindings 保證大部分快捷鍵和IDEA一樣MybatisX 可以在Mapper的接口和XML之間跳轉(zhuǎn)默認(rèn)的主題顏色可能對(duì)大部分人來(lái)說(shuō)太絢麗了,有些刺眼,可以在這里選擇適合自己的主題顏色 Cursor默認(rèn)的文件結(jié)構(gòu)是一層一層的,和IDEA有點(diǎn)區(qū)別。通過(guò)設(shè)置可以讓目錄結(jié)構(gòu)和IDEA一樣 可以把「JAVA PROJECTS」 拖到側(cè)邊欄,這樣更符合IDEA的習(xí)慣,啟動(dòng)項(xiàng)目,就算完成了Cursor的安裝了 注:可以用Cursor和IDEA同時(shí)打開(kāi)一個(gè)項(xiàng)目,Cursor默認(rèn)會(huì)選擇好maven和jdk,如果沒(méi)有的話,可以在IDEA里面按照之前的方式設(shè)置一下,Cursor也會(huì)同步修改好的 Cursor 的側(cè)邊欄有2個(gè)窗口,CHAT 和 COMPOSER,開(kāi)發(fā)代碼的時(shí)候直接無(wú)腦選擇 COMPOSER就行 CHAT 就理解成一個(gè)聊天對(duì)話框,你問(wèn)它答COMPOSER 是一個(gè)權(quán)限很大的CHAT,比如你讓它寫一個(gè)代碼,它可以直接生成文件寫好代碼,對(duì)于它生成的代碼,可以選擇接受或拒絕COMPOSER 還有 normal/agent 模式,agent 可以執(zhí)行命令,比如你告訴它「提交代碼」,它就可以 卡卡執(zhí)行 git add . git commit 等,權(quán)限很大,用的時(shí)候要謹(jǐn)慎 不要把Ai當(dāng)成一個(gè)傻子,更不要把它當(dāng)成上帝,而是把它當(dāng)作一個(gè)人。當(dāng)你和別人溝通的時(shí)候,你要說(shuō)出背景和問(wèn)題,有了清晰的背景和清晰的問(wèn)題,別人才可以很好的給你答案。 對(duì)于寫代碼來(lái)說(shuō),背景就是「整個(gè)代碼庫(kù)」,問(wèn)題就是指令,比如「為xx接口,新增一個(gè)xx字段的>查詢條件」 Cursor的強(qiáng)大在于它可以很好的理解代碼庫(kù),當(dāng)你在 在 Composer 里面 @Codebase 它就理解了整個(gè)代碼庫(kù),是真的理解了,不再是之前IDEA里面的插件一樣含糊其詞的理解。既如此那么在使用Cursor只剩下一個(gè)問(wèn)題了:「描述問(wèn)題,下達(dá)指令」 對(duì)于后端的代碼,無(wú)非就是各種增刪改查,我們要做的就是任務(wù)拆分,拆分成一個(gè)個(gè)可執(zhí)行的小指令,發(fā)給Cursor讓它去寫代碼。 千萬(wàn)不要覺(jué)得你的需求特殊,你的需求很復(fù)雜,再高的樓也是一磚一瓦堆砌起來(lái)的,復(fù)雜的需求最多就是涉及到的接口多,僅此而已,它只是多而不是難。 案例一產(chǎn)品需求:為某個(gè)列表新增兩個(gè)時(shí)間查詢 需求工時(shí): 0.5天 需求分析,需要被查詢的2個(gè)字段,字段A數(shù)據(jù)庫(kù)是時(shí)間,字段B數(shù)據(jù)庫(kù)是日期,前端產(chǎn)品要求傳遞日期范圍 那么就要在Controller的Query里面新增4個(gè)日期的接受字段,傳遞到Service的時(shí)候字段A相關(guān)的要轉(zhuǎn)成時(shí)間,同時(shí)在XML里面加上對(duì)應(yīng)的查詢 三次對(duì)話完成了這個(gè)需求 對(duì)話輸入內(nèi)容1@Codebase @DmsPatientPackageController.java 需要對(duì) findPatientPackageWithPage 新增 created 和 expiryDate的范圍查詢, created前端傳遞的是日期格式,數(shù)據(jù)庫(kù)是時(shí)間格式,需要在 @DmsPatientPackageViewServiceImpl.java 進(jìn)行轉(zhuǎn)換,2@Codebase 1、我習(xí)慣讓開(kāi)始叫From,結(jié)束叫To, 2、日期轉(zhuǎn)成時(shí)間的時(shí)候開(kāi)始要是00:00:00,結(jié)束要是 23:59:59, 3、你需要幫我完善SQL對(duì)這幾個(gè)字段的處理 @PatientPackageMapper.xml3@Codebase createdTo 改為 createdDateTo,createdFrom 改為 createdDateFrom, createdBeginTime 改為 createdFrom, createdEndTime 改為 createdTo,expiryBeginDate 改為 expiryDateFrom,expiryEndDate 改為 expiryDateTo在第一次對(duì)話的時(shí)候,從Controller到Xml 的代碼就寫完了,后面的都是簡(jiǎn)單的調(diào)優(yōu)了。你沒(méi)看錯(cuò),它就是可以這么好的理解代碼庫(kù)。 案例二當(dāng)然你會(huì)覺(jué)得上面這個(gè)案例很簡(jiǎn)單,但本質(zhì)上每一個(gè)復(fù)雜的需求,都會(huì)被拆分成很多個(gè)小的模塊,整體復(fù)雜,具體一定不復(fù)雜,我們拆好之后就可以讓Cursor去寫代碼了。 再比如,你可以看 視頻中的這個(gè)案例,整個(gè)小系統(tǒng)的前后端全部都是Cursor生成的。并不是每一個(gè)都需要拆分成那么明確,你只需要需求明確就好了,比如下面在生成這個(gè)系統(tǒng)的時(shí)候我的一些對(duì)話。 需求描述排行榜接口@Codebase @OrderController.java 在訂單里面加一個(gè)排行榜接口。在 @OrderViewServiceImpl.java 的實(shí)現(xiàn)中,先獲取非【終止】,近一年的全部訂單,再?gòu)挠唵卫锩嬲页銮?名的菜單,返回的字段:菜單id、菜單名稱、點(diǎn)擊次數(shù)讓它幫我格式化數(shù)據(jù)@Codebase 在fm_menu里面加了一個(gè)字段side_dish,格式是[{"sideDishId": 5, "quantity": 1}, {"sideDishId": 2, "quantity": 0.2}],sideDishId是@SideDish.java里面的id,幫我完成這個(gè)字段的添加,且在@MenuBO.java和@MenuVO.java里面返回一個(gè)字段,List sideDishs,里面是拼接好的結(jié)果,比如sideDishId=5的name是菜苔,結(jié)果就是菜苔 1把。核心邏輯就是對(duì)話,講清楚你的需求,如果它生成的不對(duì),再反饋給它改就好了。其實(shí)這并不復(fù)雜,只要嘗試用它做幾個(gè)簡(jiǎn)單的小需求就找到感覺(jué)了。 建議 雖然可以直接用Cursor全部的開(kāi)發(fā),但體驗(yàn)不是很好,最重要的是當(dāng)它改了代碼,刪除的是紅色,新增的是綠色,在check代碼的時(shí)候很難受。我現(xiàn)在都是用Cursor寫代碼,然后IDEA來(lái)check代碼。同時(shí)打開(kāi)一個(gè)項(xiàng)目切換一下并不麻煩,在IDEA里面看到的都是修改后的代碼,check起來(lái)一目了然Ai是會(huì)犯錯(cuò)的,check代碼很重要,當(dāng)寫完一個(gè)小的功能建議提交代碼,不然寫的多了后面想要會(huì)滾什么的相當(dāng)麻煩最最最最重要的就是先下載嘗試 |
今日新聞 |
推薦新聞 |
專題文章 |
CopyRight 2018-2019 實(shí)驗(yàn)室設(shè)備網(wǎng) 版權(quán)所有 |