將使用數種實際的範例,講述如何結構化專案邏輯與 UI 畫面。
建議使用多層的 Namespace 來結構化專案的業務邏輯,每個業務流程須講究獨立運作。
當不同角色的業務邏輯 UI 畫面不一樣時,該如何使用前後端技術有效率實作,並保留容易擴充的彈性,將是本次探討的重點。
使用 Rails 開發專案,務必不要死守 MVC 架構,Presenter、Form Object、Query Context 等都是你的好朋友。Rails 的 Form Builder 是很有彈性的,可以串接 ActiveRecord 以外的物件,重點是如何做好表單驗證、錯誤處理、巢狀表單。將會示範如何靈活運用這些物件。
最容易將專案越搞越複雜的方式,大多發生於
1. 相似的業務流程,直接使用同一個流程,加上很多 if else 條件。
2. 不同的角色,有類似的 UI,使用很多 if else 條件去 render 不同的 patial 檔案。
以上無視眾多的小差異積累的威力,就會造成牽一髮動全身,讓專案變得難以維護。將會示範幾項手法來處理這問題。
使用 Rails view 或 React 實作 UI 端(Server / Client Side Render)的基本守則是類似的,因此可以做到遊走於兩種實作方法的。將會示範基本做法。