在公司三年前選擇Spring+Hibernate+WebWork2作為公司開發框架時我們的一個項目經理提出了很多擔心的意見,很多的爭論也花費了不少時間。不過現在這個項目經理在經歷過維護惡夢后再也不提我們也可以用自動生成工具生成DAO代碼之類的話了,現在他可以用1個人維護一個客戶的所有項目了。
下面是我們對選擇一個框架的一些思考,希望能對讀者有所啟發。
1) 首先看對維護帶來的什么效果
其實很多爭論是沒有意義的,比如在沒有一個大前提之下就進行UNIX和WINDOWS誰好的爭論只能是浪費時間,同樣做一個網站可以用10多種技術,一個公司(特別是小公司),采用一種最適合自己客戶要求的框架作為主要的開發要求應該是容易培訓新手和維護的。
2) 在封閉和開放之間選擇一個平衡點
太開放和靈活會導致比較高的學習曲線,那樣別人還不如直接用原生的工具呢;太封閉對公司雖然更安全(比如有些公司的組件只有二進制代碼和使用說明),但是對開發人員的前途是不利的,如果人員留不住,最終也會拖慢公司的競爭能力。
3) 不斷積累和持續過程才是正常
我們給新手培訓時很強調使用一個框架雖然站在別人的肩膀上了,但是這還是一個起點而不是終點!一個框架最初使用時,肯定會發現有好多客戶要的功能框架不能提供。那就通過項目逐步積累組件吧,千萬不要老是拷貝粘貼搞開發。讓每個開發者都有機會成為框架和組件庫的貢獻者,那這樣的文化氛圍才是別的公司不能一下走學走的。
llano的三個版本集成如下:
llano for java
ExtJS/Spring/Hibernate/SiteMesh/Freemaarker/log4j/JUnit
llano for .net 2.0
ExtJS/NHibernate/log4net/NUunit
llano for .net 3.5
ExtJS/LINQ/log4net
alex 7-10