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

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

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

    Feeling

        三人行,必有我?guī)熝?/p>

       ::  :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
      185 隨筆 :: 0 文章 :: 392 評(píng)論 :: 0 Trackbacks
    假如你是一個(gè)Leader,那么你敢對(duì)你的自己的項(xiàng)目Refactor嗎?當(dāng)然我這兒所說的Refactor不是僅僅修改幾個(gè)Class而已,而是將舊有的框架完全拋棄,而建立一個(gè)全新的框架。你能面對(duì)Release的壓力,還有項(xiàng)目成敗的挑戰(zhàn)嗎?

    當(dāng)一個(gè)Project越來越大,Logic越來越復(fù)雜的時(shí)候,就有的框架體系往往不能滿足新Feature的要求,于是程序員們有兩種選擇,要么重構(gòu),要么打補(bǔ)丁。對(duì)于后者,如果開發(fā)人員水平高一點(diǎn),補(bǔ)丁的痕跡還不會(huì)很明顯,如果水平一般的話,這段代碼往往就會(huì)形成一個(gè)惡夢(mèng)。久而久之,整個(gè)項(xiàng)目都會(huì)積重難返,直至崩潰。

    很幸運(yùn)的是,我所在的Team從一開始就定位于堅(jiān)持Refactor。基本上每個(gè)MileStone,都會(huì)有1-2個(gè)人手上的活不是new feature,而是refactor。也許剛剛開始refactor的時(shí)候會(huì)無從下手,畢竟很大的一塊,不是說動(dòng)就動(dòng)的。但是不管怎么樣,refactor之后的效果是顯而易見的,新的擴(kuò)展很容易實(shí)現(xiàn),往往只要覆寫某個(gè)方法就可以實(shí)現(xiàn)一個(gè)新的feature。磨刀不誤砍柴工,refactor很好的詮釋了這一點(diǎn)。

    看過《重構(gòu)》這本書的人,都會(huì)知道重構(gòu)須從小處做起,不斷堅(jiān)持,但這樣的重構(gòu)也只僅僅局限于某些功能點(diǎn)的重用性而已。真正的重構(gòu),是需要大刀闊斧的。一個(gè)項(xiàng)目,你很難知道后期的行為,因此代碼框架也很難一直適應(yīng)新的需求。當(dāng)需求不斷變更的同時(shí),如果固步自封,渾身打上狗皮膏藥,補(bǔ)丁越多,維護(hù)越累。當(dāng)量變達(dá)到質(zhì)變的時(shí)候,也就是項(xiàng)目崩潰的時(shí)候。只有堅(jiān)持對(duì)框架進(jìn)行調(diào)整,才能夠不斷的滿足新的需求。

    說到這兒就不得不說到團(tuán)隊(duì)間的合作問題,一個(gè)產(chǎn)品,往往是由幾個(gè)Team共同協(xié)作完成的。基本上每個(gè)Team都只需要負(fù)責(zé)自己的模塊,并且根據(jù)工作量的大小有相應(yīng)的人手。那么你認(rèn)為在這兒Team之間,大家工作的感覺會(huì)想差不多嗎?實(shí)際上,每個(gè)Team內(nèi)部的情況完全不一樣,有的Team,一個(gè)人平均每天只能該1個(gè)Bug,有的Team能夠該3-5個(gè)。歸根結(jié)底,還是由于框架的問題。如果框架結(jié)構(gòu)清晰明了,改起來自然簡(jiǎn)單,往往一行代碼的修改就能解決問題。框架結(jié)構(gòu)復(fù)雜的話,那就不好收拾了。框架的作用就是增加重用性,降低耦合度。我們這兒有一個(gè)Team,框架3年都沒有什么改變了,而且由于人員的更迭,很多代碼都和黑盒一樣,沒有人能夠看明白。我敢說,我一天改10個(gè)Bug都不在話下,他們能說嗎?

    一個(gè)Leader要維護(hù)Team之間的平衡真得很累,結(jié)構(gòu)好了,自然就做的快了,可那又不是自己的錯(cuò),做得慢的Team不但拖累自己,到頭來還硬要說你出風(fēng)頭。開發(fā)人員第一個(gè)需要擁有的素質(zhì)就是能夠不斷自省,要學(xué)會(huì)先懷疑自己。把所有的責(zé)任都推卸出去了,到最后問題沒解決那還是自己的。一個(gè)項(xiàng)目的成敗也往往是由Leader的管理水平來決定的。如果Leader都怕失敗,不敢去承擔(dān)責(zé)任,那么手下的人自然也沒有這個(gè)義務(wù)了。

    我只想說一句,不敢對(duì)自己現(xiàn)有的框架體系做出挑戰(zhàn)的,不能夠自省的Leader,都是對(duì)自己的項(xiàng)目,自己的手下不負(fù)責(zé)任。一個(gè)項(xiàng)目最終的成敗,也可能就毀在這些人手上。

    評(píng)論

    # re: 你敢對(duì)自己的項(xiàng)目Refactor嗎? 2007-05-02 19:12 dennis
    Refactor是建立在完備的單元測(cè)試的基礎(chǔ)上,沒有完備的單元測(cè)試,Refactor是一種冒險(xiǎn)。  回復(fù)  更多評(píng)論
      

    # re: 你敢對(duì)自己的項(xiàng)目Refactor嗎? 2007-05-02 19:30 三人行,必有我?guī)熝?/a>
    不幸的是,我們組是GUI組,是不具備單元測(cè)試的。而那個(gè)3年沒有重構(gòu)的Team是Model組,有完備的單元測(cè)試,可惜從來沒有利用過。難道在沒有單元測(cè)試這個(gè)概念之前,人們是不會(huì)去重構(gòu)的嗎?還有QA是用來干什么的?QA也有完備的測(cè)試方案,在GUI部分應(yīng)當(dāng)是可以替代單元測(cè)試的。我很難想象現(xiàn)在還有很多公司居然只有可憐的幾個(gè)QA,根本無法維護(hù)一個(gè)產(chǎn)品的開發(fā)進(jìn)度,隨之而來的后果就是每次進(jìn)行客戶演示的時(shí)候,Bug層出不窮的展現(xiàn)出來(所謂的演示綜合癥)。

    也許WEB應(yīng)用對(duì)重構(gòu)并沒有什么太多的體驗(yàn)機(jī)會(huì)。但是如果開發(fā)的是像Eclipse這樣完全靠擴(kuò)展機(jī)制來吃飯的體系,那么要求一切都是可擴(kuò)展的,重構(gòu)的重要性才能最大化的體現(xiàn)出來。

    Refactor的另外一個(gè)因素應(yīng)當(dāng)和人有關(guān)吧,框架的重新設(shè)計(jì)、代碼的實(shí)現(xiàn)都是對(duì)開發(fā)人員的一種考驗(yàn)。

    除了小步前進(jìn)的敏捷開發(fā)模式,當(dāng)然還有模塊完全替代的case。一切都由人來決定,不需要那么教條主義。關(guān)鍵是能否做出精確的判斷,這需要一個(gè)Leader的魄力了。  
    回復(fù)  更多評(píng)論
      

    # re: 你敢對(duì)自己的項(xiàng)目Refactor嗎? 2007-06-07 19:00 qililhjcn
    無語,目前貌似還沒有進(jìn)到這一步  回復(fù)  更多評(píng)論
      

    # re: 你敢對(duì)自己的項(xiàng)目Refactor嗎? 2007-09-10 16:56 蘿卜頭
    個(gè)人觀點(diǎn):小步的重構(gòu)是基礎(chǔ),如果把原來的代碼一下子全部推翻重來的話,那不如不叫重構(gòu),直接稱之為重寫得了。
    盡管沒有unit testing 也可以進(jìn)行重構(gòu), 但是重構(gòu)的過程會(huì)比較危險(xiǎn).
    領(lǐng)導(dǎo)人的魄力固然很重要,但更多的時(shí)候我們需要的是制度保證,而不是依靠人治.  回復(fù)  更多評(píng)論
      


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


    網(wǎng)站導(dǎo)航:
     
    GitHub |  開源中國社區(qū) |  maven倉庫 |  文件格式轉(zhuǎn)換 
    主站蜘蛛池模板: 日本牲交大片免费观看| 国产亚洲精品免费视频播放| 国产午夜亚洲精品不卡电影| 亚洲中文无韩国r级电影| 免费播放在线日本感人片| 亚洲精品国产手机| 国产精品免费视频播放器| 最近免费中文字幕中文高清| 亚洲福利电影在线观看| 国产成人在线观看免费网站| 国产中文字幕在线免费观看| 亚洲国产精品免费观看| 亚洲AV中文无码乱人伦在线视色 | 日韩精品无码免费一区二区三区| 亚洲av成人一区二区三区| 亚洲天堂中文字幕在线| 无码一区二区三区AV免费| 国产精品偷伦视频免费观看了| 亚洲电影唐人社一区二区| 亚洲视频在线一区二区| 毛片免费观看网址| 免费在线看黄的网站| 色屁屁在线观看视频免费| 久久久无码精品亚洲日韩京东传媒 | 亚洲18在线天美| 亚洲精品tv久久久久久久久久| 亚洲毛片在线免费观看| 国产免费久久精品丫丫| 亚洲国产成人精品无码区花野真一| 亚洲αv久久久噜噜噜噜噜| 国产一区二区三区无码免费| 亚洲视频在线观看免费| 国产精品99爱免费视频| 亚洲国产成人精品无码区花野真一 | 亚洲激情视频在线观看| 亚洲性日韩精品国产一区二区| 成人免费午夜在线观看| 久久久免费精品re6| 成人免费乱码大片A毛片| 国产91成人精品亚洲精品| 亚洲乱码在线观看|