在做后端開發時,madhusha_99 每次創建新的 Express.js 項目都會重復同樣的動作:手動建控制器目錄、寫路由、搭服務層,再復制一堆樣板代碼到 config、middleware。這種機械勞動讓他覺得寶貴的時間被嚴重浪費。“我在重復搭建同樣的 Express 項目結構上浪費了太多時間,于是決定把這個過程完全自動化,”他在發布 exp-gen 時這樣解釋。于是,一個名為 exp-gen 的交互式命令行工具出現了,它可以在幾秒內生成一套適合生產環境的 Express.js API 架構。
正方開發者看到 exp-gen 的演示后,直呼這正是他們想要的東西。工具借助 @clack/prompts 提供了漂亮的選擇式交互界面,只需回答項目名稱、選 TypeScript 還是 JavaScript、選哪種數據庫、是否自動安裝依賴,一個結構完整的項目就生成了。它支持的數據庫包括 MongoDB(通過 Mongoose)、MySQL、SQLite 以及 JavaScript 下的 PostgreSQL,文檔還預告了 Prisma 支持即將上線。對于那些一周要起好幾個中型服務的團隊來說,這種自動化能大幅減少重復配置的時間,也避免了不同成員搭建時架構風格不一的問題。
![]()
但反方的聲音也很明確:這樣的分層模板是否有些過度工程化?exp-gen 生成的代碼強制采用分層架構,每個項目都會出現 configs、controllers、dtos、interfaces、models、repositories、services、routes、middlewares、utils 等目錄。對于只有一個簡單 CRUD 接口的微服務,這么多層可能會讓項目平添許多不必要的文件跳轉。有開發者評論說,如果只是寫一個內部工具或快速驗證想法,這種結構反而顯得笨重。正方則回應指出,工具定位本來就是中大型后端項目,并且源代碼完全開源,團隊可以根據需要刪減層次,它只是提供了一個起點,而不是約束。
從實際使用體驗來看,exp-gen 的價值不在于它定義了唯一的正確架構,而在于把那些每個項目都會用到的通用層和連接邏輯提前寫好了。開發者在生成后可以立即運行 npm run dev 啟動服務,直接開始寫業務邏輯。其控制器、DTO、接口和倉庫層的劃分方式,與目前社區大量 Node.js 后端的實踐一致,這無疑能降低新成員接手項目時的理解成本。尤其對于小型團隊或獨立開發者,省下的搭建時間足夠他們去考慮更核心的數據建模和業務設計。
當前工具的發布只是一個開始。madhusha_99 在 GitHub 倉庫中列出了明確待完善的方向:Prisma 模板、PostgreSQL 方案的優化、更好的認證模板、Docker 支持、基于 Jest 或 Vitest 的測試模板,以及 CI/CD 模板和新項目模板。他把項目定位為一個社區驅動的開源工具,呼吁更多人參與貢獻,并樂于聽到關于功能建議和改進開發者體驗的反饋。這種開放態度意味著如果模板能被豐富起來,exp-gen 可能從一個腳手架生成器,演變成一個規范化的后端項目啟動平臺。
衡量這類工具是否值得采用,關鍵要看它能否融入團隊現有的工作流并持續跟上依賴的變化。exp-gen 的輕量級、交互式選擇和明確定義的架構層,給了開發者一個不會過份干預后期決策的基礎代碼。但它最大的考驗也許不是功能多少,而是社區能否持續為不同場景提供模板。畢竟自動化腳手架的本質,是把那些本該被自動化的部分還給工具,讓人的精力真正放在需要創造力的地方。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.