竹十一
          在匆忙與奔走中墮落
          炒冷飯:關(guān)于選擇框架(或稱通用成熟技術(shù))

          (加Java少許)


          一直以來都習(xí)慣性的使用成熟的框架來進行開發(fā)工作,卻沒注意過為什么要這么干,仿佛只是“從惡如崩”。最近在維護一個遺留系統(tǒng)時,完全是jsp+servlet來做的。思考使人進步,小弟不才,在郁悶之余就是抓著頭發(fā)胡思亂想。結(jié)果就是,俺對成熟框架技術(shù)的傾向性更加明顯了。


          為什么要用框架來工作

          單單用最簡單的技術(shù)不好嗎?比如jsp,或者進一步再加一點servlet。偶認為,做個測試,驗證個事情,這些簡單的東東,用的技術(shù)越簡單越好,簡單上手快,從頭到尾2分鐘就驗證完了;要是用框架,恐怕先把架子搭起來就10分鐘過了。
          簡單的驗證可以天馬行空隨心所欲,但是做應(yīng)用做產(chǎn)品就不一樣了。對于一個企業(yè)級的應(yīng)用系統(tǒng)來說,可維護性、可測試性和團隊開發(fā)的便利性等等等等是更重要的。顯然對于這些特性,公開的框架技術(shù)比私有開發(fā)的技術(shù)有更多的優(yōu)勢,(或許)更重要的是現(xiàn)在流行的這些框架技術(shù)同時還提供了很多企業(yè)級特性,比如日志、事務(wù),這些特性經(jīng)過了很多人的驗證,基本來說肯定比自己簡單實現(xiàn)的要更可靠。
          開源框架技術(shù)相對私有簡單技術(shù)來說,有一個突出的優(yōu)勢,使用人群。使用人群大明顯的意味著兩點好處:一、更多的問題別人都遇到過,可能都有辦法解決了已經(jīng);二、更多的文檔,哪怕很少的人把他們的經(jīng)驗寫下來,因為人群基數(shù)大,文檔總數(shù)也會是驚人的。
          不光是開源的框架,很多大企業(yè)也有自己內(nèi)部的應(yīng)用框架,江湖傳聞東軟就有:),這種公司內(nèi)部的基礎(chǔ)架構(gòu)也是很有優(yōu)勢的,是公司持續(xù)的投資,技術(shù)的積淀。當(dāng)然積淀下來要變成糞堆您別找俺,俺離那好遠好遠:)。俺親歷過Jade,IBM的一個類似Struts但歷史應(yīng)該更悠久的MVC框架,做的很不錯,活的很好,IBM很多應(yīng)用都是這個東西在下面頂著。


          如何選擇一個合適的框架

          在偶看來,如何選擇 一個合適的框架,要從幾個方面綜合考慮。
          首先,目標(biāo)框架是不是被大眾廣泛接受的,拿大家見的最多的MVC框架來說,SpringMVC、Struts、webwork2、Struts2、Tapstry、JSF都符合這一條件,他們都各有廣大的使用群。
          其次,開發(fā)人員是不是對目標(biāo)框架比較了解,移植到新技術(shù)框架上開發(fā)的成本有多大,不能為了嘗試新的框架技術(shù)而拿新項目來做試驗,除非客戶的銀子和周期可以任意揮霍,或者能完全引導(dǎo)客戶。
          然后還有就是要考慮到項目的可維護性,不能一個項目采用一個框架,后期維護起來還要額外的熟悉技術(shù)的成本。當(dāng)然單純從開發(fā)人員的角度來說,這樣或許也不錯,可以熟悉各種技術(shù),做萬金油比較容易。對于一個大項目分幾個組來分別共同完成時,很容易在這點上出問題。林子大了什么鳥都有,用的技術(shù)太多了,換個坑蘿卜栽不下去,工期耽誤肯定難免了。(最近俺是深受其害呀:()
          還有一種情況,其實沒的選擇,比如你進入一個公司,他們恰好有自己的一套東東,這時候就只好用了。非要另起爐灶,估計你就得被掃地出門了。不過這種情況一般都會有人培訓(xùn)下:),不會上來就讓你胡來的。


          加強選定的框架

          依托一個框架工作久了,自然而然的就會遇到一些情況。比如,需要一個新的功能,而選擇的框架本身沒有提供;已有的功能用起來總是覺得別扭,和自己的思路不太對應(yīng)等等。舉個比較遙遠的例子來說,2003/2004的那個年末年初struts大概在0.9版,那個時候是沒有DispatchAction可用的,于是乎江湖中出現(xiàn)了若干實現(xiàn)這一功能的方式。(大體都是走反射的路子,直到1.1版本出現(xiàn),具體"歷史-版本"可能對應(yīng)不夠準(zhǔn)確,但這個事件確實經(jīng)歷了:))。
          但對公司內(nèi)部應(yīng)用框架來說可能比較麻煩了,不一定有源碼可改啊(更甚者,改了被人罵啊)。只能一邊反映問題、一邊找彎路了。或許還要偷偷祈求寫基礎(chǔ)框架的人不是那么的SiBan,能很快出活。


          選用框架可能面臨的風(fēng)險

          對于一個穩(wěn)定的團隊,貿(mào)然選用不熟悉的技術(shù)肯定是存在風(fēng)險的。其實這種情況在軟件開發(fā)來說很常見,畢竟新技術(shù)層出不窮,這時候除了公司給予必要培訓(xùn)(很少有公司培訓(xùn)你)以外,就只能靠“積極加自我修養(yǎng)”了。
          開源技術(shù)有個特點--版本更新快,尤其在剛推出的時候。這時就有個問題了,APIs的穩(wěn)定性,不同版本之間的兼容性。舉例來說,Hibernate大家都用過,2和3之間別的不說,包名都變了。另外開源框架的技術(shù)支持也是個問題,畢竟沒有商業(yè)支持嘛,出了問題更多的只能靠埋頭鉆研、前輩提攜和江湖救急了。
          對于有內(nèi)部基礎(chǔ)框架的公司來說,其實這個不是問題,唯一的問題就是,這個基礎(chǔ)框架夠不夠結(jié)實,可千萬別豆腐渣了,讓干活的兄弟們受罪啊。


          使用框架技術(shù)是一種流行,但是不應(yīng)該像流行感冒一樣,莫明其妙就讓它流行,否則這么多的框架技術(shù)就會弄你個百毒俱侵,必須加以甄別,。希望本文能夠?qū)γ悦5娜擞兴鶐椭辽龠@碗冷飯能讓您打個牙祭。


          btw:冷飯吃壞肚子原則上偶不承擔(dān)任何法律責(zé)任,但愿意提供無償紅十字援助。

          --- 很久之前的一篇文章了,忘了什么原因沒貼出來。今晚整理垃圾箱的時候翻出來的。

          posted on 2007-12-13 23:49 竹十一 閱讀(1525) 評論(2)  編輯  收藏 所屬分類: Circle
          Comments
          • # re: 炒冷飯:關(guān)于選擇框架
            Rosen
            Posted @ 2007-12-13 23:58
            現(xiàn)在我們不用任何框架,最多struts一下。呵呵
            一一,有空常來!  回復(fù)  更多評論   
          • # re: 炒冷飯:關(guān)于選擇框架
            隔葉黃鶯
            Posted @ 2007-12-14 11:12
            是的,我們有一個項目就是開發(fā)人員大顯身手,留給維護人員就會叫苦連連。  回復(fù)  更多評論   

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
           
          主站蜘蛛池模板: 稻城县| 南乐县| 中方县| 陆丰市| 纳雍县| 长沙市| 鸡泽县| 老河口市| 和顺县| 江门市| 绵阳市| 漳浦县| 米脂县| 灵璧县| 遵义县| 葫芦岛市| 昭通市| 玛沁县| 大悟县| 嘉黎县| 区。| 徐水县| 石林| 麦盖提县| 澎湖县| 册亨县| 天水市| 苏尼特右旗| 浏阳市| 建水县| 鹿邑县| 衡山县| 安远县| 洮南市| 汪清县| 昭苏县| 石狮市| 长宁县| 乌鲁木齐县| 迁安市| 突泉县|