• <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>
            隨筆 - 181  文章 - 15  trackbacks - 0
            <2007年7月>
            24252627282930
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            My Tech blog

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            重構原則
            重構的幾個定義
            重構(名詞):對軟件內部結構的一種調整,目的是在不改變"軟件之可察行為"前提下,提高可理解性,降低修改成本

            重構(動詞):使用一系列重構準則(手法),在不改變"軟件之可察行為"的前提下,調整其結構。

            重構和性能優化的相同之處:通常都不會改變組件的行為,只會改變其內部結構。
            重構和性能優化的不同之處:出發點不同。性能優化往往使代碼較難理解,但為了得到所需的性能,你不得不那么做。
            兩頂帽子
            添加新功能和重構是兩種截然不同的行為。添加新功能時,你不應該修改既有代碼,只管添加新功能。通過測試,你可以衡量你自己的工作進度;重構時你就不能再添加功能,只管改進程序結構。此時你不應該添加任何測試(除非你發現先前遺漏的任何東西),只在絕對必要(用以處理接口變化)時才修改測試。
            軟件開發過程當中,你可能會經常更換帽子,但是無論在什么時候,都必須清楚自己戴的是哪一頂帽子。

            重構的目的:
            1、重構改進軟件設計
            同樣完成一件事,設計不良的程序往往需要更多代碼,這常常是因為代碼在不同的地方使用完全相同的語句做同樣的事。因此改進設計的一個重要方向就是消除重復代碼。如果消除重復代碼,你就可以確定代碼將所有事物和行為都只表述一次,唯一一次,這正是優秀設計的根本。
            2、重構使程序更容易被理解
            要及時填補想要他做什么和告訴他做什么之間的縫隙。這種編程模式的核心就是“準確說出吾人所欲”。
            這種可理解性還有另一方面的作用。我利用重構來協助我理解不熟悉的代碼。當我看到不熟悉的代碼,我必須試著理解其用途。我先看兩行代碼,然后對自己說:“噢,是的,它做了那些......”。有了重構這個強大武器在手,我不會滿足于這么一點腦中體會。我會真正動手修改代碼,讓他更好的反應出我的理解,然后重新執行,看它是否能夠仍然正常運作,以此檢驗我的理解是否正確。
            3、重構助你找到臭蟲
            重構能夠幫助我寫出強健穩固的代碼。
            4、重構助你提高編程速度
            良好設計是維持軟件開發速的的根本。重構可以幫助你更快速的開發軟件,因為它阻止系統腐敗變質,它甚至可以提高設計質量。
            重構的時機
            重構本來就不是一件“特別撥出時間做”的事情,重構應該隨時隨地進行。不應該為重構而重構,重構是因為你想做別的事,重構可以幫助你把事情做好。
            事不過三,三則重構.
            1、添加功能時一并重構
            想要理解代碼-->重構-->理解代碼
            想要添加特性-->重構-->更容易的添加特性
            2、修補錯誤時一并重構
            如果在修改錯誤的時候,不能一眼發現錯誤,說明需要重構。
            3、復審代碼時一并重構
            復審代碼有助于在開發團隊中傳播知識。
            重構可以幫助我復審別人的代碼。
            得到一定程度的理解-->想到一些點子-->重構-->進一步的理解-->更好的點子。如果不進行重構,我永遠也無法得到這樣的認識。
            最好是一個復審者搭配一個原作者,共同處理這些代碼。復審者提出修改建議,然后兩人共同判斷這些修改能否通過重構輕松實現。果真能夠如此,就一起著手修改。

            為什么重構有用(Why Refactoring Works)
            ---Kent Beck

            程序具有兩面價值:今天可以為你做什么,明天可以為你做什么。大多數時候,我們都只關注自己今天想要程序做什么。不論是修復錯誤或是添加特性,我們都是為了讓程序能力更強,讓它在今天更有價值。
            但是系統今天(當下)的行為,只是整個故事的一部分,如果沒有認清這一點,你無法長期從事編程工作。如果你“為求完成今天任務”而采取的手法使你不可能在明天完成明天的任務,那么你還是失敗。但是,你知道自己今天需要什么,卻不一定知道自己明天需要什么。也許你可以猜到明天的需求,也許吧,但肯定還有些事情出乎你的意料。
            對于今天的工作,了解得很充分;對于明天的工作,我了解得不夠充分。但如果我純粹只是為今天工作,明天我將完全無法工作。
            重構是一條擺脫束縛的道路。如果你發現昨天的決定已經不適合今天的情況,放心改變這個決定就是,然后你就可以完成今天的工作了。明天,喔,明天回頭看今天的理解也許覺得很幼稚,那時你還可以改變你的理解。
            是什么讓程序如此難以相與?下筆此刻,我想起四個原因,它們是:
            難以閱讀的程序,難以修改;
            邏輯重復的程序,難以修改;
            添加新行為時需要修改既有代碼者,難以修改。
            帶復雜邏輯條件的程序,難以修改。
            因此我們希望程序:(1)容易閱讀;(2)所有邏輯都只在唯一地點指定;(3)新的改動不會危及現有行為;(4)盡可能簡單表達邏輯條件。
            重構是這樣一個過程:它在一個目前可以運行的程序上進行,企圖在“不改變程序行為”的情況下賦予上述美好性質,使我們能夠繼續保持高速開發,從而增加程序的價值。

            posted on 2007-06-21 22:37 littlegai 閱讀(184) 評論(0)  編輯 收藏 引用
            成人综合久久精品色婷婷| 亚洲午夜久久久久久噜噜噜| 亚洲国产精品久久电影欧美| 久久精品国产99久久无毒不卡 | 一级做a爰片久久毛片看看| 日日狠狠久久偷偷色综合免费| 久久99精品久久久大学生| 久久精品国产99国产精品澳门| 久久精品女人天堂AV麻| 久久婷婷五月综合国产尤物app| 久久精品成人国产午夜| 18禁黄久久久AAA片| 亚洲天堂久久精品| 国产成人精品三上悠亚久久| 久久国产精品无码一区二区三区| 久久国产精品免费一区二区三区| 99精品久久久久久久婷婷| 99久久精品午夜一区二区| 2019久久久高清456| 久久久久女教师免费一区| 久久久免费精品re6| 色婷婷综合久久久久中文字幕| 国内精品久久人妻互换| 久久天天躁夜夜躁狠狠躁2022| 久久久久香蕉视频| 99久久精品免费看国产一区二区三区| 色8久久人人97超碰香蕉987| 无码国内精品久久人妻麻豆按摩| 国产成人无码精品久久久免费 | 国产午夜久久影院| 亚洲AV日韩精品久久久久久| 午夜视频久久久久一区| 婷婷久久综合九色综合绿巨人| 久久久久综合中文字幕| 国产99久久久久久免费看 | 老男人久久青草av高清| 久久精品免费大片国产大片| 999久久久免费国产精品播放| 久久久久人妻一区二区三区vr| 亚洲精品无码久久千人斩| 影音先锋女人AV鲁色资源网久久|