今天公司大佬先鋒們給培訓了cursor的使用,還給注冊了官方賬號!躍躍欲試,但是測試任務好重,結合第三方工具開發也是沒有頭緒。
但巧的是,剛好下午有同事有個需求,想要把一個幾千行的excel轉成canoe的系統變量文件直接導入到工程。
這不正好是cursor適用的,最簡易的功能應用場景嘛~!
拿來練手,成功了~!!整體耗時不到3個小時,包含寫這篇文章的時間。
心得:
- 最開始給cursor的指令要明確!且少量!
- 在第一次成功生成的基礎上,再繼續讓它修改代碼;就像真正的需求開發一樣,逐漸迭代。
- 否則一旦出現問題,將很難定位問題點——如果開發人員對代碼語法不熟悉,僅僅依賴cursor自己修復bug,cursor自己的解決方向會越來越偏。
- 當修復很多次都得不到預期結果時,最好是Ctrl+N新開一個chat窗口,將前面的經驗匯總成新的需求描述告訴給cursor。
- 在逐級迭代的過程中,驗證代碼的正確性的方法:可以先使用需求迭代前的測試文件,讓代碼運行,確保運行結果正確——保證以前的功能沒有被改錯;再使用針對新需求的測試文件,驗證新的功能點是否實現。
- 降低不必要的工作量--不重復造輪子,明確真正的需求:轉化時發現cursor讀取excel有困難,但cursor可以讀取csv,最開始嘗試讓cursor自己將excel轉成csv,再進行后面的數據處理----失敗多次后,其實沒有必要讓cursor去做--wps等可以直接轉化成csv,cursor在這個基礎上后面的代碼開發才是需求的核心功能。
- 降低功能實現的復雜度——類比于數據分析之前的數據清洗————這一點我也不確定是不是對生成核心功能有效——比如
- (1)excel表中的內容,無關項(序號列)直接刪除,
- (2)列名使用英文的與CANoe系統變量文件中的屬性相近的名稱
- (3)文件名稱不使用特殊符號--使用英文小寫數字及下劃線的組合
- (4) 需求excel里要轉化的條目都是double類型的,就不用考慮整數和字符串以及數組之類的
源vsysvar文件來自于自己從canoe 導出的簡易系統變量文件,盡量涵蓋各種數據狀態,比如某些屬性為空。讓cursor了解不同取值狀態的文件結構。
最后驗證生成正確的方法就是:導入canoe,能夠識別到對應系統變量。
成功的chat過程:
下面是最后成功生成的提示詞:
- ?提示1:@abc.csv @target3.vsysvar 將abc.csv文件轉化成vsysvar結構的文件,名稱為111.vsysvar,除了具體變量定義中的屬性,每行數據各有不同,其他屬性都使用默認值,數據類型都是double;參考target3.vsysvar的文件結構,;將轉化的代碼保存在main.py中;這段代碼應當支持超過2個不同的namespace命名空間的csv文件的格式轉化
- 這其中“除了具體變量定義中的屬性,每行數據各有不同”的需求描述,是來自于前面多次嘗試的心得---讓cursor識別兩個文件的結構,了解cursor是如何理解這個文件的,站在cursor的角度去描述需求
- cursor執行后發現失敗,會自動定位失敗原因嘗試修復,下面的截圖是一部分自我修復的記錄
- ?
- 提示2:用這段代碼將abc_1.csv轉化成999.vsysvarc
- 提示3:很好,繼續優化這段代碼,如果csv中name屬性值為空,那么不創建這一行的系統變量
- 提示4:驗證這段代碼,將abc_2.csv轉化成987.vsysvar
- 提示5:很好,繼續完善這段代碼,如果namesapace屬性不存在,也同樣跳過這一條變量的生成,但是,要在完成文件生成時,彈框提示用戶,有哪些行沒有生成變量;那么屬性為空的也要提示;提示內容包含行的編號以及提示語“缺少name或者namespace”【中間出現報錯,并自動修復】
- 提示6:驗證這段代碼,將abc_3.csv生成rrr.vsysvar文件
- 提示7:很好繼續優化這段代碼,如果namespace與name的組合必須是唯一的,如果出現了相同的組合,那么僅保留第一條,并在生成結束后,告知用戶沒有生成變量的行數以及原因--與哪一行名稱相同
- 提示8:驗證這段代碼,將abc_4.csv生成qqq.vsysvar
文件
最后可用的只有腳本和demoexcel:
有效步驟的文件也只是很少一部分:
調試過程中生成的文件,則很多:
所有文件的下載地址
通過網盤分享的文件:SVCursor.zip
鏈接: https://pan.baidu.com/s/1JGw1gaAGMZU5khJjRTLNcw?pwd=4pms 提取碼: 4pms
?
?