zhrb的空間

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            20 隨筆 :: 0 文章 :: 29 評(píng)論 :: 0 Trackbacks
          發(fā)信人: gentboy (老流氓,老水車,老男人就是快樂的一家), 信區(qū): Java
          標(biāo)  題: 填坑:oo的前世今生及后世
          發(fā)信站: 水木社區(qū) (Fri Apr 18 13:27:06 2008), 站內(nèi)

          摘要:需求一直在擴(kuò)展,邏輯復(fù)雜度以更高的速度增加,而人的邏輯處理能力沒有任何變?
          。oo解決了一個(gè)stage的問題,但是類似于軟件危機(jī)的問題肯定還會(huì)出現(xiàn),期待新的邏輯或
          者工具來解決這個(gè)問題。


          N多年前,軟件危機(jī)的出現(xiàn)基于三個(gè)事實(shí),一個(gè)是需求迅速增長,功能要求越來越多;再者軟件的復(fù)雜度并不是與軟件的體積成正比的,復(fù)雜度的增長速度要遠(yuǎn)大于代碼的行數(shù)的增長速度。

          還有一個(gè)沒有被強(qiáng)調(diào)的原因就是,人的能力是有限的,對(duì)于復(fù)雜的軟件,沒有任何一個(gè)人能掌握所有的邏輯,即使他了解所有的邏輯,也不可能同時(shí)考慮到這些邏輯。因此,人們?cè)诰帉戃浖r(shí),只能在有限的視野內(nèi)工作,這種情況本身就決定了軟件中的缺陷難以避免。

          oo被認(rèn)為是解決軟件危機(jī)一個(gè)比較好的方法,主要原因就是oo將整個(gè)軟件中的大量邏輯和數(shù)據(jù)封裝起來,從而使得程序員不必關(guān)注所有的細(xì)節(jié),而只關(guān)注與自己負(fù)責(zé)的部分有關(guān)的細(xì)節(jié)。這大大減輕了程序員的負(fù)擔(dān),從而也使軟件規(guī)模得到了較大的擴(kuò)大。

          但是,需求仍在繼續(xù)增長,而且邏輯的復(fù)雜度又以更快的速度增長。用oo編程的程序員們漸漸感覺到即使大量的邏輯被封裝了,剩下的要處理的邏輯仍然足夠復(fù)雜。

          而且,oo也是一把雙刃劍,如果封裝的方法不當(dāng),同樣會(huì)給別人的開發(fā)造成麻煩。而且不同的程序員往往對(duì)同一個(gè)應(yīng)用有著不同的理解。這使得協(xié)作中的沖突很常見。

          因此大量的針對(duì)具體應(yīng)用的framework出現(xiàn)了,比如orm, ejb, struts等等,這些framework從某種程度上定義了某種具體應(yīng)用的范式,把應(yīng)用中有共性的部分拿出來,而讓程序員做那些有特性的東西。這又讓程序員少考慮了不少東西。

          到目前為止,framework的確起了不小的作用,也出現(xiàn)了很多超大型的framework,能讓程序員寫很少的代碼就能完成原來可能要18個(gè)人干半年才能完成的任務(wù)。

          但是,framework也有其本身的缺陷,一個(gè)是framework往往本身就足夠復(fù)雜,難以學(xué)習(xí)已經(jīng)是一些大型的framework的通病。另外framework本身也有質(zhì)量問題,過分依賴或者不正確的使用framework的后果同樣是致命的。

          framework替你做的事情越多,程序員往往就越難以使用它,但是如果他做的東西少,程序員就會(huì)喊自己做了很多重復(fù)勞動(dòng)。因此這兩者之間要有一個(gè)平衡。從這個(gè)角度來講,spring做的比jboss要好。

          展望將來,需求的規(guī)模還會(huì)繼續(xù)增長,而邏輯的復(fù)雜度仍然會(huì)以相對(duì)于需求的復(fù)雜度的指數(shù)形式增長。但是人的腦子跟幾十年前沒什么區(qū)別,還是同時(shí)能處理那么多邏輯。尖銳問題肯定會(huì)出現(xiàn)。

          但是解決問題的方法呢?單單靠語言特性恐怕已經(jīng)難以再做什么。人們應(yīng)當(dāng)再次反思程序這個(gè)概念本身,提出新的解決方案。或許人們會(huì)開發(fā)出更為實(shí)用的framework以定義業(yè)務(wù)邏輯,更為智能化的集成開發(fā)/協(xié)作環(huán)境工具來擴(kuò)展我們的大腦,或者其它...


          --


             晶晶姑娘是個(gè)好姑娘


          ※ 修改:·gentboy 于 Apr 18 13:28:32 2008 修改本文·[FROM: 210.13.85.*]
          ※ 來源:·水木社區(qū) newsmth.net·[FROM: 210.13.85.*]

          posted on 2008-04-19 10:34 zhrb 閱讀(259) 評(píng)論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 淮阳县| 延安市| 仲巴县| 四子王旗| 南涧| 内江市| 东阳市| 河间市| 庐江县| 潜江市| 灌阳县| 泸溪县| 姚安县| 湘阴县| 四会市| 射阳县| 正定县| 井陉县| 岑巩县| 广安市| 瑞昌市| 巴林左旗| 宝坻区| 宁阳县| 西青区| 扶沟县| 龙胜| 阳信县| 南开区| 宣恩县| 鄯善县| 方正县| 菏泽市| 肇庆市| 博罗县| 洪湖市| 怀集县| 济源市| 无为县| 合肥市| 固镇县|