2008年10月2日 星期四

開發產品軟體雜感

由於在軟體界已逾四年,碰過比較有印象的產品有ATG(電子商務平台),跟目前要開發的產品Firewire CMS(內容管理系統)。ATG是一個滿成熟的平台,在四五年前,就已經有controller-->manager-->類似hibernate OR mapping 的觀念,並擁有自己的 taglib,也就是整套都在他自己的環境下被封裝好了,需要照著產品自訂的流程跟API來作開發。

最近碰的這套是內容管理系統,以開發的角度來說是較容易些。因為他的 development guide 只定義了自己的API跟 taglib,除了要懂這些標籤跟少數的API,其實就沒有什麼太多技術面的問題,剩下的都是比較屬於如何利用他自己的流程、介面來管理內容。

而台灣自製的軟體產品我大概碰過兩套,都是跟知識管理有關係的,其中一套設計的比較好、利用struts,EJB來建構,裡面也有很多的design pattern可以參考跟學習,當然如果不作分散式的處理,使用EJB實在有點大材小用,也增加開發的額外負擔。

當我們的專案碰到產品時,應該不能以寫程式的角度來看,不然我們可能會認為,這些功能我用struts, spring 都作的出來,為什麼要增加額外的負擔再去學這些流程。而這些流程跟技術,都有一定的道理存在。

例如 CMS 強調的就是產品上稿,與產品之間的關連性,只要將這些element與關連建起來,利用他自製的tag,就可以很容易的將這些功能表現出來。

雖然我們能夠在這既有的 framework 上發揮的點並不多,但是這些產品畢竟都還是 java-based的,可以從開發的流程去檢討、可以試著整進CI、作適度的 refactoring,都可以有助於專案的品質。

0 意見: