阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!

有沒有感覺自己是最後一個不使用最新 AI 開發工具的人?我以前也這麼覺得,直到我發現了一個基於 CLI 的編碼代理,可以直接在終端機中執行。

我最近接觸到的基於命令列的編碼代理程式之一是Forgecode ,我已經用它進行了很多實驗。為了幫助您了解它在終端機中的功能,我總結了我在企業開發中使用 Forgecode 的 10 種實際方法。

編碼劑

這些編碼代理可以與現有工作流程無縫集成(無需學習新的 IDE),並充當“完整的編碼代理”,能夠“根據規範編寫、重構和優化程式碼”,除錯複雜問題,生成測試套件,記錄程式碼,提出架構改進建議等等。簡而言之,錯過這個 AI 外殼就意味著錯過開發工具包中的秘密武器。

  1. 根據規範編寫和最佳化程式碼

編寫程式碼

我首先嘗試的事情之一是讓Forge將規範轉換為可執行的程式碼。例如,我有一個 Python 函數規範,用於將時間戳轉換為 ISO 格式。我在終端機中打開我的專案倉庫,並執行瞭如下程式碼:

$ forge -p "Write a Python function that converts a Unix timestamp to an ISO 8601 formatted string."

幾秒鐘之內,Forgecode 分析了上下文(我專案的 Python 環境)並傳回了一個完整的函數,甚至建議進行最佳化,例如使用 Python 的內建 datetime 模組而不是手動解析。

在一個案例中,我要求它根據一份書面 API 規範實作一個電子郵件發送處理程序。 Forge 不僅產生了處理程序程式碼,而且還對其進行了動態最佳化(如果有多封電子郵件,則進行大量發送)。我無需解釋周圍的程式碼——Forge 會讀取我的專案檔案並相應地調整輸出。這種「告訴代理我需要什麼,然後取得程式碼」的工作流程使得功能原型設計速度極快。 (事實上,Forge 的文件也展示了類似的行為——在加入諸如暗黑模式切換之類的功能時,它可以「搭建必要的元件」。)

  1. 除錯複雜問題

偵錯

接下來,我把一些神祕的執行階段錯誤和 bug 交給了 Forge。例如,有一天,我的 Node.js 應用程式拋出了神秘的 TypeError:無法讀取 undefined 的屬性「map」。我沒有深入研究程式碼,而是執行了:

$ forge -p "Why am I getting 'TypeError: Cannot read property \"map\" of undefined' in my UserProfile component?"

Forgecode 立即掃描了程式碼,準確指出我的陣列變數為空,並建議在其周圍加入保護子句。它引導我了解可能的原因並進行修復,有效地完成了初步的錯誤分類。這與 Forge 的官方行為相符——對於類似的錯誤,Forge「會分析錯誤,根據程式碼提示潛在原因,並提出不同的解決方案」。它突出顯示了 Redux Store 中缺少的初始化部分(這是我之前忽略的),這讓我印象深刻。

在另一起事件中,我將一個多頁的Python 堆疊追蹤貼到 Forge 中,它很快就找出了失敗的匯入。對於依賴關係錯綜複雜的企業級專案來說,讓 AI 助理篩選日誌並指出故障模組可以節省大量時間。

  1. 產生測試套件

產生測試套件

編寫測試至關重要,但也很繁瑣。 Forge 已經成為我的自動化測試工程師了。假設我完成了一個新函數calculateShippingCost(order)的實作。我打開程式碼文件,檢查了一下,然後讓 Forge 寫測試:

$ forge -p "Generate a set of Jest unit tests for the calculateShippingCost(order) function, covering edge cases."

Forge 傳回一個全面的測試套件,涵蓋正常輸入和失敗情況(例如訂單值負數、欄位缺失)。它甚至為測試提供了註釋和解釋。我只需將這些註釋複製到calculateShippingCost.test.js檔案中並執行即可。在另一個專案中,我需要快速提升測試覆蓋率以進行審計,因此我將一個未經測試的實用程式類別指向了Forge,它會自動產生Mocha測試。

生產力的提升是實實在在的:無需手動寫出數十個斷言,Forge 就能完成繁重的工作。 (實際上,它遵循了我在配置中設定的「所有新功能都應包含單元測試」的指導原則。)更棒的是,它生成的測試實際上是可執行的——我曾多次使用 Forge 來捕捉回歸問題,甚至在手動執行之前就已如此。

  1. 程式碼文件和技術規格

程式碼文件和技術規格

我把 Forge 也當成一個技術文件撰寫者。寫完一個複雜的演算法後,我經常會要求 Forge 產生文件字串或設計文件。例如:

$ forge -p "Document the function calculateTax in detail, including its parameters, return values, and an example."

它回复的是清晰的文件字串或 Markdown 程式碼片段,我可以將其加入到我的程式碼或 README 文件中。有一次,我向 Forge 展示了一個傳統的 YAML 工作流程,並詢問道:「請逐步解釋一下這個CI/CD 管線的具體操作。」 Forge 解析了配置,並輸出了每個作業的可讀摘要。它甚至為我計劃的一個REST API建立了一個規範:“為一個接受 {userId} 並返回配置文件資料的端點建立一個 OpenAPI 描述。” 最終,我得到了一個樣板 YAML 規範,並對其進行了改進。

Forge 還能概括複雜的模組:只要指向一個類,它就能將邏輯解釋成簡單易懂的語言。這個實用工具在程式碼審查或知識傳遞過程中非常有用——新團隊成員可以更快地上手,因為我可以快速執行「解釋此文件」的提示。 (雖然官方範例中沒有提到,但這種 Forge 的使用方式自然遵循了其「分析專案結構並解釋流程」的模式。)

  1. 架建置議

建築建議

Forge 不僅適用於小型任務;我甚至用它來進行高層設計。在規劃新的微服務時,我會向它尋求架建置議。例如,我曾向它諮詢過:

$ forge -p "Propose a scalable microservices architecture for an e-commerce order processing system."

Forge 審查了我們的程式碼庫和現有服務(它可以查看我們的資料夾結構),並建議將訂單接收、付款和出貨分割到不同的容器中。它建議在訂單建立和訂單履行之間建立一個訊息隊列,並確定了合適的資料庫模型。即使還未達到 100% 的生產就緒狀態,這些建議也為我們提供了一個堅實的起點。

在一個案例中,我描述了我們的資料需求,並問道:「什麼樣的資料庫模式適合一個包含使用者、貼文、評論和分類的部落格?」 Forge 產生了一個包含表格和關係的模式——正如其文件中「為部落格設計資料庫模式」的範例所示。對於系統層面的問題(「我們應該使用SQL 還是 NoSQL來處理這些資料?」),它會根據我們的專案來權衡利弊。這種與人工智慧一起進行的架構腦力激盪避免了數週的猶豫不決:我可以透過聊天反覆討論高層想法,直到最終確定方案。

  1. 程式碼理解

理解程式碼

當你接觸到一個陌生的程式碼庫時, Forge就像一位隨時準備回答問題的資深開發人員。早些時候,我請它解釋一下我們的身份驗證流程:

$ forge -p "Explain how the authentication system works in this codebase."

一如既往,Forge 解析了多個檔案(中間件、使用者模型、控制器),並描述了端到端的流程:從登入請求到 JWT 建立,並提及了所涉及的關鍵模組。這與 Forge 文件中的行為——「分析專案結構」——相符,並提供了詳細的解釋。它甚至突出顯示了 OAuth 令牌的驗證位置。在大型Java程式碼庫中,它概述了哪些類別處理資料庫存取,哪些類別處理業務邏輯,這對入門非常有幫助。

對於一個特別棘手的服務,我執行了 forge -p “總結一下這個 Spring 控制器中每個端點的用途。”,並返回了一個簡潔的端點及其功能列表。基本上,每當我或同事問「這段程式碼是做什麼的?」時,Forge 通常都能在掃描上下文後給出快速且準確的答案。它在架構評審或解讀同事的拉取請求時非常有用。

7.功能實現

功能實現

新增功能正是Forge 的強項。我們常用自然語言描述需求,然後讓它草擬框架。例如,為了在我們的 React 應用程式中加入暗黑模式切換,我輸入了:

$ forge -p "Implement a dark mode toggle in our React application."

Forge 給了一個方案:更新全域樣式表,增加一個切換元件,甚至提供了按鈕和對應CSS變數的範例 JSX。它建議將首選項儲存在 localStorage 中——這正是我們團隊最終使用的。然後我指示它“編寫切換按鈕的React元件”,它給出了包含 propTypes 和註解的簡潔程式碼。這個工作流程與 Forge 自身的例子如出一轍:當被問及暗黑模式切換時,「Forge 會建議最佳方案…甚至會建立必要的元件」。

還有一次,我們需要在 Express 伺服器上新增日誌中間件;我告訴 Forge 我們有什麼,它使用 morgan 產生了一個 logger.js 檔案。它甚至解釋瞭如何整合它。這就像讓一位高級工程師為每個新功能起草樣板文件,這樣我就可以專注於微調邏輯。

  1. 故障排除與除錯(環境問題)

程式碼問題

除了程式碼錯誤之外,Forge 還可協助解決環境和部署問題。例如,我們的 CI 管道突然出現Docker權限錯誤。我請求:

$ forge -p "Our Docker build is failing with a permission denied error when creating a directory. What could be wrong?"

Forge 分析了常見原因,發現我們在容器中以 root 使用者身分建立檔案時,沒有設定正確的所有權。它建議使用 chown 或以非 root 使用者身分執行,這正是我們需要的修復方法。在另一個場景中,一位同事遇到了生產環境中環境變數無法載入的問題。

我向 Forge 描述了 .env 的設置,它指出我們的 Dockerfile 在 npm install 之前忘記複製 .env 檔案。按照 Forge 的提示,我們很快就發現了錯誤配置。本質上,我把 CLI 當作任何問題的首選故障排除工具——無論是分段錯誤、測試失敗,還是 Jenkins 作業不穩定,Forge 經常能幫我們找到根本原因或後續步驟。 (這是它「除錯助手」角色在維運領域的自然延伸。)

  1. 重構遺留系統

遺產

處理雜亂無章的舊程式碼曾經令人望而生畏。現在,我使用 Forge 進行現代化改造和重構。例如,我們有一個十年前的 PHP 模組需要清理。我告訴 Forge:

$ forge -p "Refactor this legacy function to improve readability and error handling."

它以更模組化的方式重寫了該函數,加入了 try/catch 並重命名了變數以提高清晰度。在另一個案例中(與其文件範例一致),我要求它將一個基於類別的 React 元件轉換為 hooks:

$ forge -p "Refactor the class-based UserProfile component to use React Hooks instead."

Forge詳細講解了每個部分——將狀態移至 useState,用 useEffect 替換生命週期方法——並給出了新的函陣列件。整個轉換過程流暢無誤;之後我只需要進行一些小的修改。這完全符合文件中的範例,Forge 透過將類別元件重構為鉤子函數「可以幫助你實現程式碼庫的現代化」。總的來說,使用 Forge 來完成重構的繁瑣工作意味著我不再害怕接觸遺留程式碼。我實際上是在與 AI 進行“結對編程”,逐步實現技術債的現代化。

  1. Git操作與歷史管理

Git

最後,Forge 也成為了Git的得力助手。我常常會用它來處理版本來控制任務。例如,我需要合併一個有衝突的過時功能分支:

$ forge -p "Merge branch 'feature/login' into 'main' and help resolve any conflicts."

Forge 掃描了 diff,並以互動方式建議如何協調差異,甚至自動編輯衝突標記。在一個實際案例中,它注意到了鍵重命名衝突,並建議保留最新的架構變更。這與 Forge 自己的 git 範例一致:對於存在衝突的合併,「Forge 可以引導您解決 git 衝突」。

我還用它來產生常規的提交資訊:只需安裝一個自訂的小命令,我就可以執行 /commit,Forge 就會幫我產生一條語義化的提交資訊(例如「feat(login): add remember-me checkbox」)。對於發布管理,我請 Forge 總結提交歷史記錄,它產生了一份變更日誌草稿。基本上,無論我進行分支切換、責任分析或撰寫 PR,Forge 都能讓整個過程更加流暢。事實上,文件甚至在 forge.yaml 中展示了自訂的 Git 命令,例如自動提交或產生 PR。透過讓人工智慧準備我的 git 命令和訊息,我節省了數不清的時間。

如果您喜歡所看到的內容,⭐ 為GitHup repo加星標,以便隨時了解最新動態並支持該專案!

準備好增強您的工作流程了嗎?

準備好

起初我持懷疑態度,但 Forgecode 的 CLI 助理已成為我最常用的開發工具。它直接整合到我的終端(無需切換到 Web UI),感覺就像是我開發環境的自然延伸。只需幾個步驟即可開始使用:

這是 GitHub 倉庫: Forgecode

透過 NPM 安裝(npm i -g @antinomyhq/forge),在 forgecode.dev 中設定 FORGE_KEY,然後執行 forge。就這樣。

Forge 現已準備好協助您完成開發任務。

如果您關心更快、更聰明地交付程式碼,請嘗試 Forge CLI——您未來的提交(和您的團隊)會感謝您!

完畢

結論

像 Forge 這樣的 CLI 工具正在悄悄重塑企業團隊建立軟體的方式。它們讓開發人員只需在終端機中操作即可。有了 Forge,常規甚至複雜的任務(從編碼到文件再到持續整合)都變得更快、更不容易出錯。它並沒有什麼神秘之處,它只是一個插入到你的 Shell 並利用你的上下文的智能代理。而且,由於它使用你自己的 API 金鑰在本地執行,因此能夠確保其安全性和私密性。

如果您還沒有嘗試過,我建議您嘗試 Forge。安裝 CLI,連接您選擇的模型,然後開始讓它“修復此錯誤”或“生成測試”。您可能會發現,將這個 AI 助理加入到您的團隊中,開發速度會比您預期的更快。畢竟,企業開發的未來是協作和代理的——不要錯過 Forge 如何幫助您的團隊更聰明、更快速地建立。

讓我知道你的經驗! ! !


原文出處:https://dev.to/pankaj_singh_1022ee93e755/10-ways-a-cli-coding-agent-boosted-my-productivity-by-80-nnm


共有 0 則留言


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

阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!