<kbd id="9plqc"><label id="9plqc"></label></kbd>

        <th id="9plqc"></th>
        1. <center id="9plqc"><video id="9plqc"></video></center>
          <sub id="9plqc"><form id="9plqc"><pre id="9plqc"></pre></form></sub>
          <nav id="9plqc"><form id="9plqc"><legend id="9plqc"></legend></form></nav>
          Cursor助力Java開(kāi)發(fā) 您所在的位置:網(wǎng)站首頁(yè) 屬豬是哪些幾幾年的 Cursor助力Java開(kāi)發(fā)

          Cursor助力Java開(kāi)發(fā)

          2025-03-19 04:39| 來(lái)源: 網(wǎng)絡(luò)整理| 查看: 265

          視頻講解

          這篇文章來(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)慎 在這里插入圖片描述

          開(kāi)發(fā)

          不要把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)麻煩最最最最重要的就是先下載嘗試


          【本文地址】

          公司簡(jiǎn)介

          聯(lián)系我們

          今日新聞

          推薦新聞

          專題文章
            CopyRight 2018-2019 實(shí)驗(yàn)室設(shè)備網(wǎng) 版權(quán)所有
            黄色免费网站在线看,韩国精品在线观看,韩国美女一区二区,99国产热 醴陵市| 株洲县| 任丘市| 高密市| 贺州市| 澄江县| 宜州市| 广元市| 安乡县| 北票市| 卓资县| 宜宾县| 平和县| 天水市| 南靖县| 沐川县| 梁平县| 托里县| 兰西县| 闽侯县| 天峨县| 小金县| 化隆| 泰州市| 溆浦县| 平南县| 揭东县| 陇川县| 沙坪坝区| 印江| 霍城县| 松滋市| 武城县| 永嘉县| 吉隆县| 苏尼特左旗| 阿拉善左旗| 神木县| 鄄城县| 巩留县| 资讯 | http://444 http://444 http://444 http://444 http://444 http://444