<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 48,comments - 156,trackbacks - 0
    首先聲明,本人業(yè)余編程愛好者,把編程當作玩,不在IT界謀生,工作和生活圈子中也無人懂編程,好在有互聯(lián)網(wǎng),學了點皮毛,胡言幾句,請大家拍磚。

    版權(quán)聲明:本博客文章如非特別注明,均為原創(chuàng),作者保留所有權(quán)利!歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者左洸和出處http://www.blogjava.net/myqiao

    軟件工程本質(zhì)的三句話總結(jié):

    第一句:軟件工程的終極目標是復用
    第二句:復用永遠要面對的問題是變化
    第三句:依賴是導致變化難以控制的主要原因。


    關于第一句話,不想多做解釋,當然,軟件工程中還有成本控制、開發(fā)周期控制、文檔管理等等,這些工作最終都要通過復用來解決。


    關于第二句話,學過哲學的都知道絕對運動和相對靜止,所以變化是絕對的、是永恒的、是無法避免的、是不可預測的。對于變化,只能想辦法控制它,利用它,不要讓它造成破壞,但是不要想著能消滅它。


    關于第三句,造成變化的原因很多,但是依賴導致的變化是最難以控制的,也是最具破壞性的。這里舉個簡單的例子來說明:

    某個項目的某個源文件中有如下一行代碼:

    String PATH="D:\AppServ\www\test";

    這行代碼中,我們用一個字符串把 Test 項目的路徑寫死在源代碼中,以后我們只要用到項目路徑,就引用這個字符串。這樣,所有引用到這個字符串的地方都對它發(fā)生了依賴關系。這里:用一個字符串是為了簡化說明問題,實際中,他有可能是個類,有可能是數(shù)據(jù)庫連接配置,有可能是模塊等等。

    這時候,變化來了,項目被上傳到 Linux 服務器上,Windows 的路徑格式無法識別了;數(shù)據(jù)庫也從SqlServer 變成了 MySQL,怎么辦?因為一切都寫死了,唯一的辦法就是打開源文件,一處一處查找,一處一處修改。

    于是,一些廠家提供了功能強大的應用程序服務器,大家都按照統(tǒng)一約定的協(xié)議,像JNDI之類的東西,把所有有可能變化的因素都配置到服務器里,哪怕他是一個簡單的數(shù)據(jù)庫連接字符串,或者是一個復雜的對象實例。等需要使用的時候再通過協(xié)議中約定好的接口來訪問。如果發(fā)生了變化,只需要修改配置,而不需要更改源代碼,這樣就最大限度的削弱了依賴,控制了變化。

    這種重型的解決方案對于大型的、穩(wěn)定的企業(yè)級應用是安全可靠的,但是應用服務器配置的修改維護很麻煩,權(quán)限也是個問題,如果你是一個虛擬主機上的個人站長,由于需求變動比較頻繁,三天兩頭要更改J2EE容器配置,估計你的主機服務商不會給你這個權(quán)限吧。用核武器對付游擊隊,似乎太過火了。

    大牛們對這種情況看不過眼,于是Spring等輕量級解決方案出現(xiàn)了,所有配置都寫道XML文件里面,給了你最大的靈活性和權(quán)限。當然,依賴并沒有消除,但是反過來了,原來我想要什么需要自己去找,如果發(fā)生了變化,可能就找不到,或者找回來錯誤的結(jié)果;現(xiàn)在我想要什么,工廠會自動給我送過來,發(fā)生什么變化我不管。當然,工廠是按照配置文件的描述來生產(chǎn)產(chǎn)品的,發(fā)生變化只需要修改配置文件,最大限度的減少了破壞性和侵入性。而且,權(quán)限都在你自己手里,配置起來很方便。

    版權(quán)聲明:本博客文章如非特別注明,均為原創(chuàng),作者保留所有權(quán)利!歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者左洸和出處http://www.blogjava.net/myqiao

    寫這篇文章是因為為了更好的理解思想,昨天用 PHP 寫了個簡單的實現(xiàn)發(fā)到博客里(文章在這里),卻被拍磚說是“為了實現(xiàn)而實現(xiàn)”,可能因為我用的是PHP語言,沒有Java高貴吧,所以被人瞧不上眼。但是個人覺得,控制反轉(zhuǎn)、依賴注入是一種思想,并沒有和那種語言綁定。

    Spring 框架對我這樣的業(yè)余玩家來說依然太重型了,只是大概了解了一下,對于一個玩票性質(zhì)的 PHP 個人站點來說,自己做一個簡單的實現(xiàn)有何不可呢?
    posted on 2009-05-01 13:10 左洸 閱讀(1553) 評論(3)  編輯  收藏

    FeedBack:
    # re: 業(yè)余玩家:三句話說清楚軟件工程的本質(zhì)
    2009-05-01 23:46 | promise
    支持~思想是不分語言實現(xiàn)的:)

    軟件工程沒有最終目標,它總是隨著人類社會的需求而變化,所以需求是最關鍵的。軟件工程應該不僅僅是信息技術(shù),更應該是用信息技術(shù)來實現(xiàn)其他領域的信息化,比如制造業(yè)、管理、決策……歸根結(jié)底,它不是一個憑空產(chǎn)生的概念,而是因為有人發(fā)現(xiàn)用它可以創(chuàng)造價值,或者減少成本。

    個人覺得軟件工程中比較重要的除了需求、復用,還有自動化,當然,自動化也可以理解成某種方式的復用,把技術(shù)人員的勞動固化在某個自動化流程中,降低重復勞動,也降低了風險~

    以上純粹看了樓主的文章YY而已;)  回復  更多評論
      
    # re: 業(yè)余玩家:三句話說清楚軟件工程的本質(zhì)[未登錄]
    2009-05-04 11:20 | lazy
    3句話太啰嗦,而且也沒說到位,真正一句話就夠:
    軟件工程就是:在一定條件下盡可能完善的滿足用戶信息化處理的需求  回復  更多評論
      
    # re: 業(yè)余玩家:三句話說清楚軟件工程的本質(zhì)
    2009-05-05 23:16 | 大羅卜
    樓長厲害,但太籠統(tǒng),看不出本質(zhì),適應面太廣了!!  回復  更多評論
      

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


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 亚洲欧洲一区二区| 亚洲情综合五月天| 亚洲 日韩经典 中文字幕| 性xxxx视频免费播放直播| 亚洲精品亚洲人成人网| 在线观看免费视频网站色| 国产成人综合亚洲亚洲国产第一页| 未满十八私人高清免费影院| 国产免费av一区二区三区| 国产午夜亚洲精品不卡免下载| 国产成人精品高清免费| 国产亚洲精品91| 亚洲一区二区三区免费| 色www永久免费网站| 亚洲国产天堂在线观看| 4虎永免费最新永久免费地址| 亚洲国产成人久久99精品| 三年片在线观看免费大全| 亚洲av永久无码天堂网| 亚洲日韩精品无码专区网站| a级毛片在线免费看| 亚洲经典在线观看| 午夜一级毛片免费视频| a级毛片免费观看在线| 亚洲va中文字幕无码久久 | 一本久久免费视频| 丁香五月亚洲综合深深爱| 久久综合九色综合97免费下载| 亚洲第一精品电影网| 国产美女a做受大片免费| 91免费在线视频| 亚洲小视频在线播放| 国产午夜鲁丝片AV无码免费| sss在线观看免费高清| 亚洲精品无码久久毛片波多野吉衣| 成人毛片视频免费网站观看| eeuss影院www天堂免费| 97se亚洲国产综合自在线| 国产一级特黄高清免费大片| 久操免费在线观看| 久久亚洲欧美国产精品|