<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 評論 :: 0 Trackbacks
    假如你是一個Leader,那么你敢對你的自己的項目Refactor嗎?當然我這兒所說的Refactor不是僅僅修改幾個Class而已,而是將舊有的框架完全拋棄,而建立一個全新的框架。你能面對Release的壓力,還有項目成敗的挑戰(zhàn)嗎?

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

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

    看過《重構》這本書的人,都會知道重構須從小處做起,不斷堅持,但這樣的重構也只僅僅局限于某些功能點的重用性而已。真正的重構,是需要大刀闊斧的。一個項目,你很難知道后期的行為,因此代碼框架也很難一直適應新的需求。當需求不斷變更的同時,如果固步自封,渾身打上狗皮膏藥,補丁越多,維護越累。當量變達到質變的時候,也就是項目崩潰的時候。只有堅持對框架進行調整,才能夠不斷的滿足新的需求。

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

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

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

    評論

    # re: 你敢對自己的項目Refactor嗎? 2007-05-02 19:12 dennis
    Refactor是建立在完備的單元測試的基礎上,沒有完備的單元測試,Refactor是一種冒險。  回復  更多評論
      

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

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

    Refactor的另外一個因素應當和人有關吧,框架的重新設計、代碼的實現(xiàn)都是對開發(fā)人員的一種考驗。

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

    # re: 你敢對自己的項目Refactor嗎? 2007-06-07 19:00 qililhjcn
    無語,目前貌似還沒有進到這一步  回復  更多評論
      

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


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


    網(wǎng)站導航:
     
    GitHub |  開源中國社區(qū) |  maven倉庫 |  文件格式轉換 
    主站蜘蛛池模板: 亚洲人成网站色在线入口| 亚洲福利精品电影在线观看| 亚洲欧洲日产国产最新| 中国xxxxx高清免费看视频| 亚洲欧洲日本精品| 最近最新中文字幕完整版免费高清| 中文字幕亚洲综合小综合在线| 日韩黄色免费观看| 一区二区免费在线观看| 国产亚洲精品看片在线观看 | 一本无码人妻在中文字幕免费| 亚洲一级毛片免费看| 天天摸天天操免费播放小视频 | 99精品视频免费在线观看| 亚洲人成高清在线播放| 免费va在线观看| 成人网站免费看黄A站视频| 亚洲色图古典武侠| 超pen个人视频国产免费观看| 人人公开免费超级碰碰碰视频 | kk4kk免费视频毛片| 亚洲一本综合久久| 猫咪社区免费资源在线观看 | 韩国免费a级作爱片无码| 亚洲a级在线观看| 亚洲开心婷婷中文字幕| 毛片免费在线观看网站| 免费黄网站在线看| 精品视频免费在线| 亚洲av永久无码精品三区在线4| 亚洲日韩精品一区二区三区 | 久久亚洲熟女cc98cm| 久久亚洲2019中文字幕| 成人免费看吃奶视频网站| 久久精品国产这里是免费| 黄色网页免费观看| 亚洲综合av一区二区三区| 97se亚洲综合在线| 亚洲人成人无码网www电影首页| 国产成人免费福利网站| 国产精品视频免费一区二区|