近期技術社群對 Ruby on Rails(RoR)討論度極高,號稱開發效率是傳統 Java 框架的 10 倍。抱著懷疑與好奇,我下載最新版親自體驗,記錄這趟「換口味」之旅。
遵循官方指引,幾條指令即建立出完整的 Model-View-Controller 架構。scaffold 自動生成資料庫遷移、模型驗證、控制器動作與預設視圖,讓我對「約定優於配置」有具體感受:
app/controllers,模型放 app/models,視圖放 app/views/控制器名。/users 對應 UsersController#index。users),模型為單數(User),零配置自動映射。這套強制性命名慣例,讓熟悉 Rails 的開發者能秒懂專案結構,極大降低認知負擔。
預設介面雖快,但實務專案必須客製化。修改視圖需手寫 .rhtml(現為 .erb)模板,Ruby 程式碼與 HTML 混寫,類似早期 ASP/JSP 模式。雖然框架提供 Helper 方法簡化常見標籤,但複雜邏輯仍需在模板中撰寫 Ruby 代碼,對「關注點分離」提出挑戰。
123 也是物件,擁有方法如 123.to_s。:name、區塊 {|x| x*2}、鴨子型別,寫起來輕鬆愉快。RDT 提供語法高亮、大綱視圖、除錯支援,並整合正則表達式測試工具——Ruby 在文字處理上確實強項。但對 Rails 專案結構(如自動跳轉 Controller 對應 View)支援有限,體驗不如 IntelliJ RubyMine 或 VS Code + Ruby 插件。
Java 仍是我的主力陣營,但 Rails 展示「約定優於配置」如何消除樣板代碼。未來專案若需快速原型、內部管理系統、內容導向網站,Rails 將是強力備選。掌握多種語言與框架,才能在適當場合選擇最利工具。
RoR 以強烈的意見化設計,換取極致的開發啟動速度。雖非銀彈,但其設計哲學值得所有後端工程師研習。下一步,我計劃嘗試用 Rails 實作一個小型 Side Project,深入體驗 ActiveRecord 遷移與測試驅動開發流程。