• <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++

             

            反駁極限編程的四點(diǎn)理由

            接觸極限編程一段時(shí)間,找到以下四點(diǎn)反駁它的理由:
            [1]代碼質(zhì)量
            極限編程運(yùn)用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD),其理論基礎(chǔ)是需求應(yīng)該是可測(cè)試的,其目的在于保證軟件系統(tǒng)的正確性和健壯性(測(cè)試用例足夠充分的話)。可以這么認(rèn)為:極限編程關(guān)心的是結(jié)果,不關(guān)心過(guò)程。因此它忽略了軟件系統(tǒng)的結(jié)構(gòu)性和開(kāi)放性。我們知道結(jié)構(gòu)性有助于修改,開(kāi)放性有助于擴(kuò)展,而極限編程卻放棄這種追求,導(dǎo)致的結(jié)果就是產(chǎn)生一大堆丑陋的代碼,而且隨時(shí)有可能被徹底拋棄。
            極限編程解決效率,結(jié)構(gòu)性和開(kāi)放性問(wèn)題的對(duì)策是重構(gòu),它宣稱(chēng)重構(gòu)無(wú)處不在,但是重構(gòu)是一種補(bǔ)救的方式,為什么不在設(shè)計(jì)初期進(jìn)行預(yù)防呢?極限編程回避不了這些問(wèn)題,而只是將它們推到了后面的階段,但是付出的代價(jià)可能會(huì)更高。
            [2]工作進(jìn)度
            極限編程直接將代碼作為文檔,弱化傳統(tǒng)文檔的作用。既然如此,那么代碼就應(yīng)該有規(guī)范的格式和詳盡的注釋?zhuān)员闾岣咚目勺x性,但是由于極限編程采用的是團(tuán)隊(duì)合作方式,代碼規(guī)范很難得到統(tǒng)一。那么通過(guò)注釋吧,可是極限編程認(rèn)為注釋是一種負(fù)擔(dān),無(wú)法適應(yīng)頻繁修改的代碼。
            極限編程解決溝通問(wèn)題的對(duì)策是結(jié)對(duì)編程,它認(rèn)為頻繁的溝通勝過(guò)面面俱到的文檔,但是文檔是永久的,溝通卻是短暫的,大家可以看同一份文檔,卻要進(jìn)行多次兩兩溝通,所需時(shí)間也許并不比寫(xiě)文檔的時(shí)間少。更糟糕的是,經(jīng)常地切換搭檔將極大地破壞工作的延續(xù)性,只能拖慢進(jìn)度。
            [3]工作量
            測(cè)試驅(qū)動(dòng)開(kāi)發(fā)具體應(yīng)該怎么做呢?測(cè)試驅(qū)動(dòng)決不是說(shuō)代碼從測(cè)試寫(xiě)起,在寫(xiě)測(cè)試用例之前,肯定要對(duì)需求有完整的了解,否則測(cè)試無(wú)從寫(xiě)起,其實(shí)這就是需求分析以及設(shè)計(jì),還是與瀑布模型一樣的流程,只不過(guò)沒(méi)有文檔化而已。唯一不同的是極限編程要求需求都是可測(cè)試的,因此要把這些需求翻譯成系統(tǒng)測(cè)試用例,集成測(cè)試用例,和單元測(cè)試用例。由于寫(xiě)程序必須同時(shí)寫(xiě)它的測(cè)試,因此如果改程序則必須改測(cè)試,這將達(dá)到兩倍的工作量。
            [4]目的
            極限編程認(rèn)為需求是不斷變化的,因此軟件能滿足當(dāng)前需求就好,沒(méi)有必要構(gòu)造框架之類(lèi)可復(fù)用的東西,它認(rèn)為這是一種過(guò)度設(shè)計(jì)。這種思想是極端的,因?yàn)榭蚣芫褪菫榱私鉀Q需求變化問(wèn)題而出現(xiàn)的。舉個(gè)例子,MFC就是一套框架(盡管我厭惡它),但是基于MFC卻可以開(kāi)發(fā)網(wǎng)絡(luò),多媒體,數(shù)據(jù)庫(kù)甚至游戲應(yīng)用程序。面向?qū)ο蟮哪康木褪菫榱藦?fù)用,而且好的框架能夠做到隔離變化,依賴抽象,如果認(rèn)為軟件系統(tǒng)的一切東西都是暫時(shí)的,無(wú)疑是與面向?qū)ο笏枷氡车蓝Y的。

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

            評(píng)論

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

            呵呵, 自從我知道了XP以后, 立刻就喜歡上了它, 肯定也有人不喜歡它.這是正常的. 選擇你喜歡的開(kāi)發(fā)方式就對(duì)了. 不過(guò)你對(duì)XP的認(rèn)識(shí)存在幾個(gè)明顯的誤區(qū), 這些在XP的書(shū)里已經(jīng)說(shuō)得很清楚了。說(shuō)實(shí)話,你所說(shuō)的有幾個(gè)理由,使我甚至懷疑你是大學(xué)里面講軟件工程的教授,夸夸其談,但是和實(shí)際脫節(jié)。  回復(fù)  更多評(píng)論   

            # re: 反駁極限編程的四點(diǎn)理由[未登錄](méi) 2007-07-08 19:28 shilei230

            這些觀點(diǎn)是我在公司經(jīng)過(guò)三個(gè)月的實(shí)踐之后得出的總結(jié),所提及的問(wèn)題問(wèn)題都是存在的,閣下有何高見(jiàn)不妨賜教!  回復(fù)  更多評(píng)論   

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

            呵呵, 相信只要隨便翻一翻XP的書(shū), 都會(huì)說(shuō)到這些問(wèn)題. 不過(guò)我還是說(shuō)一說(shuō),

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

            2)結(jié)果就是產(chǎn)生一大堆丑陋的代碼...
            對(duì)于個(gè)人來(lái)說(shuō), 如果使用XP后寫(xiě)出的代碼很丑陋, 那么可以肯定, 不使用XP寫(xiě)出的代碼也不會(huì)好到那兒去; 對(duì)于開(kāi)發(fā)小組來(lái)說(shuō),三個(gè)月XP實(shí)踐還存在這種看法, 項(xiàng)目管理只能說(shuō)是太失敗了

            3)為什么不在設(shè)計(jì)初期進(jìn)行預(yù)防呢?
            要是在設(shè)計(jì)初期就能想到所有的變化和細(xì)節(jié), 也就不會(huì)有XP了

            4)關(guān)于代碼與文檔, 測(cè)試還是調(diào)試, 網(wǎng)上這種文章已經(jīng)太多了

            5)沒(méi)有必要構(gòu)造框架之類(lèi)可復(fù)用的東西,無(wú)疑是與面向?qū)ο笏枷氡车蓝Y的...
            這只能說(shuō)明你太不了解XP了,

              回復(fù)  更多評(píng)論   

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

            不過(guò)從你所說(shuō)的來(lái)看, 主要問(wèn)題是, 沒(méi)有了解XP的核心概念, 卻盲目套用XP的外在形式,  回復(fù)  更多評(píng)論   

            # re: 反駁極限編程的四點(diǎn)理由[未登錄](méi) 2007-07-09 09:38 shilei230

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

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

            呵呵,共同學(xué)習(xí),共同提高。
            比如說(shuō)第一點(diǎn):追求模塊化和開(kāi)放性

            模塊的高內(nèi)聚,低耦合是保證這一點(diǎn)的基礎(chǔ),怎么樣做到這一點(diǎn)呢?由此產(chǎn)生各種面向?qū)ο蟮脑O(shè)計(jì)理論,而設(shè)計(jì)模式正是在設(shè)計(jì)方法在實(shí)踐中產(chǎn)生的高度總結(jié)。但是做到這一點(diǎn)是不容易的,需要經(jīng)過(guò)一定的鍛煉和積累,應(yīng)用哪一種設(shè)計(jì)模式
            也不是一開(kāi)始就能清晰的看出來(lái)的。而使用TDD,則強(qiáng)迫你做到這一點(diǎn)。一個(gè)模塊性不好的單元,是很難進(jìn)行測(cè)試的。程序員最容易犯的毛病,是把焦點(diǎn)過(guò)多的集中在實(shí)現(xiàn)的細(xì)節(jié)上,使用TDD,你首先必須把焦點(diǎn)放在功能的接囗上,而良好的接口,正是良好的設(shè)計(jì)的基礎(chǔ)。
              回復(fù)  更多評(píng)論   

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

            小伙子不錯(cuò),還知道有極限編程這么回事。  回復(fù)  更多評(píng)論   

            # re: 反駁極限編程的四點(diǎn)理由[未登錄](méi) 2007-07-10 09:42 shilei230

            極限編程的測(cè)試驅(qū)動(dòng)所說(shuō)的測(cè)試指的是單元測(cè)試,在前面的迭代計(jì)劃階段,可以認(rèn)為它是在做需求分析和概要設(shè)計(jì)的事情。你說(shuō)的理論是對(duì)的,但是實(shí)踐的時(shí)候會(huì)很痛苦,因?yàn)楹芸赡茏邚澛罚銓⒉煌5胤裾J(rèn)或修正自己最初的不成熟的設(shè)計(jì),你也說(shuō)了“強(qiáng)迫”,對(duì)嗎?
            對(duì)于有經(jīng)驗(yàn)的程序員,他在分析需求的時(shí)候就大致知道要用什么設(shè)計(jì)模式,這些都是經(jīng)過(guò)實(shí)踐檢驗(yàn)過(guò)的架構(gòu),絕對(duì)有助于寫(xiě)測(cè)試,也是軟件復(fù)用的一個(gè)表現(xiàn)。如果不運(yùn)用這些先驗(yàn)知識(shí)加以引導(dǎo),每次都要摸著石頭過(guò)河,目標(biāo)能否實(shí)現(xiàn)是一個(gè)問(wèn)題,即使實(shí)現(xiàn)了也可能要走不少?gòu)澛贰2贿^(guò)如果迭代計(jì)劃所做的卡足夠小的話這個(gè)問(wèn)題將不會(huì)太明顯。
            還有就是測(cè)試驅(qū)動(dòng)更像是面向機(jī)器編程(先給出目標(biāo),然后根據(jù)機(jī)器的特性來(lái)實(shí)現(xiàn)),不像是面向?qū)ο缶幊蹋ò凑諉?wèn)題域來(lái)構(gòu)造機(jī)器的實(shí)現(xiàn))。
            再有設(shè)計(jì)模式之類(lèi)的架構(gòu),并不是實(shí)現(xiàn)細(xì)節(jié),它搭的是一個(gè)框架。
            歡迎反駁,呵呵  回復(fù)  更多評(píng)論   

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

            極限編程的出現(xiàn)正是在現(xiàn)有開(kāi)發(fā)模式下出現(xiàn)一系列問(wèn)題后的一些探索。不過(guò),適合自己的才是最好的,如果你覺(jué)得現(xiàn)有的的知識(shí)和經(jīng)驗(yàn)可以為你解決這些問(wèn)題,就沒(méi)有必要為敏捷而敏捷  回復(fù)  更多評(píng)論   

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

            我認(rèn)為你應(yīng)該好好的去看看設(shè)計(jì)模式這本書(shū),你對(duì)極限編程恐怕也只是膚淺的理解,何談反駁?  回復(fù)  更多評(píng)論   

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

            看到了不得的東西
            留名關(guān)注  回復(fù)  更多評(píng)論   


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(2)

            隨筆檔案

            文章檔案

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久久精品人妻一区二区三区蜜桃 | 久久人人爽人人精品视频| 亚洲色婷婷综合久久| 一本久久a久久精品亚洲| 91性高湖久久久久| 成人久久免费网站| 亚洲天堂久久精品| 久久精品国产亚洲Aⅴ蜜臀色欲| 99久久夜色精品国产网站| 粉嫩小泬无遮挡久久久久久| 中文字幕亚洲综合久久菠萝蜜| 国产午夜福利精品久久| 国产福利电影一区二区三区,免费久久久久久久精 | 久久国产欧美日韩精品| 97久久超碰成人精品网站| 久久中文骚妇内射| 久久久久亚洲av毛片大| 国内精品伊人久久久久影院对白| 久久久久无码精品| 97久久综合精品久久久综合| 亚洲欧美日韩精品久久亚洲区| 亚洲国产天堂久久综合| 久久不见久久见免费视频7| 少妇被又大又粗又爽毛片久久黑人| 亚洲精品乱码久久久久久蜜桃图片 | 国产成人综合久久精品红| 久久久久国产一级毛片高清板| 99久久国产综合精品女同图片| 久久免费视频观看| 国产免费久久久久久无码| 波多野结衣久久| 国产成人无码精品久久久久免费| 无码任你躁久久久久久| 精品久久久久久综合日本| 日本精品久久久久影院日本| 久久久久久国产精品无码超碰| 26uuu久久五月天| 国产精品九九久久免费视频| 嫩草影院久久国产精品| 亚洲中文字幕久久精品无码APP| 人人狠狠综合久久亚洲|