和OSX糾纏了一陣子,終於成功架構整個開發環境: 1.8.6的Ruby,2.2的Rails,mysql gem,mysql DB server,mongrel等等 (都裝在/usr/local內),我還找來了在RoR界享負盛名的Textmate做code editor,可謂萬事俱備;下一步就是,如何開始入手coding?
阿毛想以Rails去寫的,其實是一個值勤編制系統,即所謂的roster planning system。之前我曾經花了九年的時間,開發及支援一個以醫護人員為主的roster system; 這類系統可以非常複雜,簡單的一張”更表”除了要確保每更夠人數外,還要考慮每周工時,更與更之間關係 (例如”踩完通宵”就別再上早班),個別同事的合作性,是否定時每人都可在周末或公眾假期day-off,超時補假有多少累積,會否同一更兼顧數處地方….. 等等。自問我們開發的系統比市面上其他現成產品,功能來得更全面,但因為是in-house app,系統彈性當然會較少,而且因為機構龐大,user group也有十多個代表,政治考慮加上用戶慣性影響,出來的製成品與我的理想頗有距離。要將Rails融匯貫通,沒有比重新寫過一個優化的值勤系統更適合的了。
想法有了,工具亦就位,但該要如何入手?
我曾考慮過先跳過Rails的標準語法,去找一些plugin方便先搭起系統基本架構: 例如HOBO,Active Scaffold。HOBO的確利害,不費”一兵一code”已可做出非常像樣的app;Active Scaffold亦不賴,簡直將Rails的Scaffolding脫胎換骨,讚!!
然而要活用這類所謂的skeleton app,你的UI (即Rails內的Views)和business objects (即Rails內的Models)兩者愈接近愈好,但一張更表的表達方法變化多端,row,col,cell可以代表同一個model object內的不同屬性 (properties),而且不同用戶亦會有不同的更表設定,view及controller部份需要特別處理,那些”樣版”介面幫助不大。結果還是咬緊牙關,慢慢的去寫controller和view好了 – 對不擅長web UI development的阿毛來說,簡直舉步維艱… -_-”
還有一樣要考慮的,就是更表要像Excel一樣可以給用戶即時輸入更新(即所謂的in-cell editing),意味javascript必定少不了。Rails本身是用Prototype,連帶所有的helper function都是建基在Prototype上;但誰都知道最主流的JS library是jQuery (連Microsoft及Nokia都取了jQuery的授權),橫豎都是從頭學起,時間和心力當然要花得其所了。結果花了一陣子裝了jRails插件,令原本的helper function得以繼續可用 (不過功能靠jQuery提供,而非Prototype)。
Web app我實在做得太少了,要成功”on the Rails”,還得痛下苦功…
0 Responses to “萬事起頭難,on the Rails更難”