Opus 4.7 使用體驗

大家好,我是 `uni-app` 的核心開發 `笨笨狗吞噬者`,歡迎關注我的微信公眾號 `前端笨笨狗`。

感想

不得不說,AI 的發展實在太快了,去年我入職 uni-app,一年中的大部分時間還是在手刻程式碼,就是網路上說的 古法編程。一方面是對 AI 的能力仍有質疑,覺得對於框架維護,AI 不懂;另一方面是體驗了一些模型,感覺能力也不是很強。公司這邊也是大力支持使用 AI,同事甚至一天提交了一百多個 commit

上週我在家用 gpt-5.4AI 寫了 https://github.com/uni-toolkit/uni-toolkit/tree/main/packages/vite-plugin-component-insight 外掛,我寫好 md 檔之後,就去打王者榮耀了,大概一個多小時之後,它已經寫出來,並且按照我的要求先用原生微信小程式做測試和驗證,然後再用 uni-app 專案做了測試和驗證,這個活以前我可能要做大概半天,現在再看看,我基本上什麼編碼工作都沒有做(只簡單修改了一下 readme)。

現在我的工作,基本上百分之八九十都是交給 AI 編寫或者做決策,比如我需要修復框架的問題,我會告訴 AI,現在的問題是什麼,我的修復思路是什麼,具體要修改什麼檔案,等它改完之後,我再來 review,看一下程式碼修改是否合理。

有時候真不明白要我幹啥了,emmmmmm....

skill

前段時間,我建立了 https://github.com/uni-toolkit/skills 專案,用來存放針對 uni-app 主包瘦身的 skills。今天就想著再來試試 Opus 4.7 的能力,同時也驗證一下我的 skills 是否正確,能不能給開發者提供足夠合理的建議,下面分享一下我的測試流程

前置工作

我一般使用 AI 做某個任務的習慣是,先寫個 md 檔,比如我現在的需求是驗證 uniapp-subpackage-node-modules 的正確性,md 檔如下:

<div><div><div></div><span>markdown</span></div><div><div> <span>體驗AI程式碼助手</span></div><div> <span>程式碼解讀</span></div><div>複製程式碼</div></div></div>```
<span><span># 需求</span></span>
<span></span>
<span>驗證 <span>`uniapp-subpackage-node-modules`</span> skill 的正確性</span>
<span></span>
<span><span>## 步驟一</span></span>
<span></span>
<span><span>### 需求</span></span>
<span></span>
<span>主包中加一個頁面,建立兩個分包頁面,主包可以分別跳轉到分包頁面。頁面要有一個元件範例,每個元件或頁面都要加入 rattail 工具函式的範例</span>
<span></span>
<span><span>### 注意事項</span></span>
<span></span>
<span><span>-</span> 頁面不要太複雜</span>
<span><span>-</span> 使用的 rattail 版本為 1.0.8 </span>
<span><span>-</span> 工具函式可以選一部分簡單的,一部分複雜的</span>
<span><span>-</span> rattail 官網是 https://rattail.varletjs.org/zh/getting-started.html</span>
<span></span>
<span><span>## 步驟二</span></span>
<span></span>
<span><span>### 需求</span></span>
<span></span>
<span><span>`https://github.com/uni-toolkit/skills/tree/main/skills/uniapp-subpackage-node-modules`</span> 這個是要驗證的 skill,你把 skill 套用到這個專案中,同時跑一下 skill,把你覺得專案應該修改的地方寫成一個 md 檔到專案根目錄</span>
<span></span>
<span><span>### 注意事項</span></span>
<span></span>
<span><span>-</span> 不要修改專案的原始邏輯,僅安裝 skill、套用 skill、輸出分析資訊</span>
<span></span>
<span><span>## 步驟三</span></span>
<span></span>
<span>參考上述分析得到的日誌,如果這個專案可以優化,你可以根據 skill,優化一下這個專案的產物生成</span>
<span></span>
<span><span>### 注意事項</span></span>
<span></span>
<span><span>-</span> 不要新增無關依賴和邏輯</span>
<span><span>-</span> 分包用到的 rattail 函式應該打包到分包中,注意驗證這個</span>

### 指揮 AI

`md` 檔的內容寫得差不多之後,我會讓 `AI` 按照步驟進行工作,分步驟的目的是防止 `AI` 一下子修改出太多東西看不過來(吐血經歷,之前讓 `AI` 寫 `https://github.com/uni-toolkit/uni-toolkit/tree/main/packages/vite-plugin-component-insight`,review 累死人)

我這個專案是主包、分包都用到了 `rattail` 工具庫的函式,HBuilderX `5.04` 版本開始,HBuilderX 專案或 CLI 專案支援將分包引用的 `node_modules` 相依打包到分包中,我想讓分包用到的函式打包到分包中,`AI` 套用了 `uniapp-subpackage-node-modules` 之後,

![skill.jpg](https://i.imgur.com/ks8S1Tj.jpeg)

輸出了一份詳細的診斷報告(大概兩百多字,本文僅展示部分內容)

<div><div><div></div><span>markdown</span></div><div><div> <span>體驗AI程式碼助手</span></div><div> <span>程式碼解讀</span></div><div>複製程式碼</div></div></div>`` <span><span># Skill 分析報告:uniapp-subpackage-node-modules</span></span> <span></span> <span><span>> 本檔由uniapp-subpackage-node-modulesskill 套用至目前專案後自動輸出。</span></span> <span><span>> 目的:驗證 skill 的正確性,分析專案在「分包 node<span>_modules 歸屬」上的現況與風險,<span>**不直接改動專案原始邏輯**</span>。</span></span></span> <span></span> <span>- Skill 來源:<span><https:></https:></span></span> <span>- 已安裝到:.cursor/skills/uniapp-subpackage-node-modules/</span> <span> -SKILL.md</span> <span> -references/node-modules-subpackage-rules.md</span> <span> -agents/openai.yaml</span> <span></span> <span>---</span> <span></span> <span>## 一、診斷結論(TL;DR)</span> <span></span> <span>- <span>**屬於問題域**</span>:是。專案確實存在「分包 js 未進入分包vendor.js、仍全部留在主包common/vendor.js」現象。</span> <span>- <span>**是否滿足 uni-app 內建分包優化前提**</span>:<span>**否**</span>。命中 3 條直接不符合項:</span> <span> 1.manifest.jsonmp-weixin<span>**未開啟**</span>optimization.subPackages</span> <span> 2.packageApackageB根目錄 <span>**沒有獨立的package.json**</span></span> <span> 3. 目標依賴rattail<span>**被主包 + 多個分包同時引用**</span>,屬於「共享依賴」,按規則不適合進入單分包vendor.js</span> <span>- <span>**更像是哪類原因**</span>:<span>**設定未開啟 + 依賴劃分不合理**</span>(雙重原因)。即便開了設定,當前rattail` 的引用鏈也會把它拉回主包,這是符合官方優化規則的正常結果。</span>
<span></span>
<span>---</span>
<span></span>

AI 很好地分析出了可優化點,並且我們還可以讓它根據分析日誌做保守修改

res.jpg

修改前,rattail 的函式都被打包到了 common/vendor.js

before.jpg

修改後,分包的內容都被打包到了分包中

after.jpg


原文出處:https://juejin.cn/post/7631008687278342190


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝3   💬3   ❤️1
258
🥈
我愛JS
💬1  
4
🥉
Gigi
2
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登