• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Binormal

            The genuine programmers use C++

             

            反駁極限編程的四點理由

            接觸極限編程一段時間,找到以下四點反駁它的理由:
            [1]代碼質量
            極限編程運用測試驅動開發(TDD),其理論基礎是需求應該是可測試的,其目的在于保證軟件系統的正確性和健壯性(測試用例足夠充分的話)。可以這么認為:極限編程關心的是結果,不關心過程。因此它忽略了軟件系統的結構性和開放性。我們知道結構性有助于修改,開放性有助于擴展,而極限編程卻放棄這種追求,導致的結果就是產生一大堆丑陋的代碼,而且隨時有可能被徹底拋棄。
            極限編程解決效率,結構性和開放性問題的對策是重構,它宣稱重構無處不在,但是重構是一種補救的方式,為什么不在設計初期進行預防呢?極限編程回避不了這些問題,而只是將它們推到了后面的階段,但是付出的代價可能會更高。
            [2]工作進度
            極限編程直接將代碼作為文檔,弱化傳統文檔的作用。既然如此,那么代碼就應該有規范的格式和詳盡的注釋,以便提高它的可讀性,但是由于極限編程采用的是團隊合作方式,代碼規范很難得到統一。那么通過注釋吧,可是極限編程認為注釋是一種負擔,無法適應頻繁修改的代碼。
            極限編程解決溝通問題的對策是結對編程,它認為頻繁的溝通勝過面面俱到的文檔,但是文檔是永久的,溝通卻是短暫的,大家可以看同一份文檔,卻要進行多次兩兩溝通,所需時間也許并不比寫文檔的時間少。更糟糕的是,經常地切換搭檔將極大地破壞工作的延續性,只能拖慢進度。
            [3]工作量
            測試驅動開發具體應該怎么做呢?測試驅動決不是說代碼從測試寫起,在寫測試用例之前,肯定要對需求有完整的了解,否則測試無從寫起,其實這就是需求分析以及設計,還是與瀑布模型一樣的流程,只不過沒有文檔化而已。唯一不同的是極限編程要求需求都是可測試的,因此要把這些需求翻譯成系統測試用例,集成測試用例,和單元測試用例。由于寫程序必須同時寫它的測試,因此如果改程序則必須改測試,這將達到兩倍的工作量。
            [4]目的
            極限編程認為需求是不斷變化的,因此軟件能滿足當前需求就好,沒有必要構造框架之類可復用的東西,它認為這是一種過度設計。這種思想是極端的,因為框架就是為了解決需求變化問題而出現的。舉個例子,MFC就是一套框架(盡管我厭惡它),但是基于MFC卻可以開發網絡,多媒體,數據庫甚至游戲應用程序。面向對象的目的就是為了復用,而且好的框架能夠做到隔離變化,依賴抽象,如果認為軟件系統的一切東西都是暫時的,無疑是與面向對象思想背道而馳的。

            posted on 2007-07-07 16:08 Binormal 閱讀(787) 評論(11)  編輯 收藏 引用

            評論

            # re: 反駁極限編程的四點理由 2007-07-08 01:11 eXile

            呵呵, 自從我知道了XP以后, 立刻就喜歡上了它, 肯定也有人不喜歡它.這是正常的. 選擇你喜歡的開發方式就對了. 不過你對XP的認識存在幾個明顯的誤區, 這些在XP的書里已經說得很清楚了。說實話,你所說的有幾個理由,使我甚至懷疑你是大學里面講軟件工程的教授,夸夸其談,但是和實際脫節。  回復  更多評論   

            # re: 反駁極限編程的四點理由[未登錄] 2007-07-08 19:28 shilei230

            這些觀點是我在公司經過三個月的實踐之后得出的總結,所提及的問題問題都是存在的,閣下有何高見不妨賜教!  回復  更多評論   

            # re: 反駁極限編程的四點理由 2007-07-08 23:49 eXile

            呵呵, 相信只要隨便翻一翻XP的書, 都會說到這些問題. 不過我還是說一說,

            1)極限編程卻放棄這種追求 ....
            XP追求的正是模塊化和開放性

            2)結果就是產生一大堆丑陋的代碼...
            對于個人來說, 如果使用XP后寫出的代碼很丑陋, 那么可以肯定, 不使用XP寫出的代碼也不會好到那兒去; 對于開發小組來說,三個月XP實踐還存在這種看法, 項目管理只能說是太失敗了

            3)為什么不在設計初期進行預防呢?
            要是在設計初期就能想到所有的變化和細節, 也就不會有XP了

            4)關于代碼與文檔, 測試還是調試, 網上這種文章已經太多了

            5)沒有必要構造框架之類可復用的東西,無疑是與面向對象思想背道而馳的...
            這只能說明你太不了解XP了,

              回復  更多評論   

            # re: 反駁極限編程的四點理由 2007-07-08 23:58 eXile

            不過從你所說的來看, 主要問題是, 沒有了解XP的核心概念, 卻盲目套用XP的外在形式,  回復  更多評論   

            # re: 反駁極限編程的四點理由[未登錄] 2007-07-09 09:38 shilei230

            你說的都是點到為止,沒有具體地闡述下去,似乎沒有什么說服力.不過極限編程作為一種軟件開發思想,確實有它的優勢,我只是找到反駁它的四點理由,很樂意接受別人的反駁.我想看書要帶著懷疑的態度去看,要通過自己的思考和實踐看它好不好,挑它的毛病才能把它用好.閣下的反駁理由除了第三條,其它都是一筆帶過,但是第三條我有說預防"所有的"變化和細節嗎?呵呵,冒犯之處,多多原諒,希望能夠共同提高,謝謝  回復  更多評論   

            # re: 反駁極限編程的四點理由 2007-07-09 11:50 eXile

            呵呵,共同學習,共同提高。
            比如說第一點:追求模塊化和開放性

            模塊的高內聚,低耦合是保證這一點的基礎,怎么樣做到這一點呢?由此產生各種面向對象的設計理論,而設計模式正是在設計方法在實踐中產生的高度總結。但是做到這一點是不容易的,需要經過一定的鍛煉和積累,應用哪一種設計模式
            也不是一開始就能清晰的看出來的。而使用TDD,則強迫你做到這一點。一個模塊性不好的單元,是很難進行測試的。程序員最容易犯的毛病,是把焦點過多的集中在實現的細節上,使用TDD,你首先必須把焦點放在功能的接囗上,而良好的接口,正是良好的設計的基礎。
              回復  更多評論   

            # re: 反駁極限編程的四點理由 2007-07-09 18:41 空明流轉

            小伙子不錯,還知道有極限編程這么回事。  回復  更多評論   

            # re: 反駁極限編程的四點理由[未登錄] 2007-07-10 09:42 shilei230

            極限編程的測試驅動所說的測試指的是單元測試,在前面的迭代計劃階段,可以認為它是在做需求分析和概要設計的事情。你說的理論是對的,但是實踐的時候會很痛苦,因為很可能走彎路,你將不停地否認或修正自己最初的不成熟的設計,你也說了“強迫”,對嗎?
            對于有經驗的程序員,他在分析需求的時候就大致知道要用什么設計模式,這些都是經過實踐檢驗過的架構,絕對有助于寫測試,也是軟件復用的一個表現。如果不運用這些先驗知識加以引導,每次都要摸著石頭過河,目標能否實現是一個問題,即使實現了也可能要走不少彎路。不過如果迭代計劃所做的卡足夠小的話這個問題將不會太明顯。
            還有就是測試驅動更像是面向機器編程(先給出目標,然后根據機器的特性來實現),不像是面向對象編程(按照問題域來構造機器的實現)。
            再有設計模式之類的架構,并不是實現細節,它搭的是一個框架。
            歡迎反駁,呵呵  回復  更多評論   

            # re: 反駁極限編程的四點理由 2007-07-10 16:20 eXile

            極限編程的出現正是在現有開發模式下出現一系列問題后的一些探索。不過,適合自己的才是最好的,如果你覺得現有的的知識和經驗可以為你解決這些問題,就沒有必要為敏捷而敏捷  回復  更多評論   

            # re: 反駁極限編程的四點理由 2008-07-28 12:28 jiero

            我認為你應該好好的去看看設計模式這本書,你對極限編程恐怕也只是膚淺的理解,何談反駁?  回復  更多評論   

            # re: 反駁極限編程的四點理由 2008-07-28 15:22 LOGOS

            看到了不得的東西
            留名關注  回復  更多評論   

            導航

            統計

            常用鏈接

            留言簿(2)

            隨筆檔案

            文章檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久久久无码精品国产不卡| 久久久中文字幕| 天堂久久天堂AV色综合| 777午夜精品久久av蜜臀| 久久综合给合久久狠狠狠97色69| 久久精品国产亚洲精品2020| 色综合合久久天天综合绕视看| 久久综合精品国产一区二区三区 | 色99久久久久高潮综合影院| 久久综合亚洲鲁鲁五月天| 久久精品aⅴ无码中文字字幕重口| 亚洲乱亚洲乱淫久久| 欧美伊人久久大香线蕉综合 | 久久久久国色AV免费看图片| 欧美噜噜久久久XXX| 久久久久18| 久久久久四虎国产精品| 亚洲国产精品无码久久久秋霞2| 91精品无码久久久久久五月天| 亚洲国产精品无码久久久蜜芽 | 久久久久女人精品毛片| 久久精品成人免费观看97| 久久水蜜桃亚洲av无码精品麻豆| 久久强奷乱码老熟女| 国产精品99久久99久久久| 中文字幕乱码久久午夜| 久久久久久A亚洲欧洲AV冫| 国产精品国色综合久久| 99久久国产热无码精品免费| 99久久国产综合精品女同图片| 日韩久久无码免费毛片软件| 国产精品久久久99| 97精品国产97久久久久久免费| 精品久久久久久久久中文字幕| 久久久婷婷五月亚洲97号色 | yy6080久久| 久久人人爽人人爽人人片av麻烦| 偷窥少妇久久久久久久久| 日本国产精品久久| 思思久久99热免费精品6| 亚洲性久久久影院|