<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 序言 by Erich Gamma 重構(refactoring)這個概念來自Smalltalk圈子,沒多久就進入了其他語言陣營之中。由于重構是framework(框架〉開發中不可缺少的一部分,所以當framework開發人員討論自己的工作時,這個術語就誕生了。當他們精煉自己的class hierarchies (類階層體系〉時,當他們叫喊自己可以拿掉多少多少行代碼時,重構的概念慢慢浮出水面。framework設計者知道,這東西不可能一開始就完全正確,它將隨著設計者的經驗成長而進化;他們也知道,代碼被閱讀和被修改的次數遠遠多于它被編 寫的次數。保持代碼易讀、易修改的關鍵,就是重構——對framework如此, 對一般軟件也如此。 好極了,還有什么問題嗎?很顯然:重構具有風險。它必須修改運作中的程序,這可能引入一些幽微的錯誤。如果重構方式不恰當,可能毀掉你數天甚至數星期的成果。如果重構時不做好準備,不遵守規則,風險就更大。你挖掘自己的代碼,很快發現了一些值得修改的地方,于是你挖得更深。挖得愈深,找到的重構機會就越多…于是你的修改也愈多。最后你給自己挖了個大坑,卻爬不出去了。為了避免自掘墳墓,重構必須系統化進行。我在《Design Patterns》書中和另外三位(協同)作者曾經提過: design patterns(設計模式)為refactoring (重構〉提供了目標。然而「確 定目標」只是問題的一部分而己,改造程序以達目標,是另一個難題。 Martin Fowler和本書另幾位作者清楚揭示了重構過程,他們為面向對象軟件開發所做的貢獻,難以衡量。本書解釋重構的原理(principles)和最佳實踐方式(best practices),并指出何時何地你應該開始挖掘你的代碼以求改善。本書的核心是一 份完整的重構名錄(catalog of refactoring),其中每一項都介紹一種經過實證的代碼變換手法(code transformation)動機和技術。某些項目如Extract Method和Move Field看起來可能很淺顯,但不要掉以輕心,因為理解這類技術正是有條不紊地進行重構的關鍵。本書所提的這些重構準則將幫助你一次一小步地修改你的代碼,這就減少了過程中的風險。很快你就會把這些重構準則和其名稱加入自己的開發詞典中,并且朗朗上口。 我第一次體驗有紀律的、一次一小步的重構,是在30000英呎高空和Kent Back共 同編寫程序(譯注:原文為pair-programming,應該指的是eXtreme Programming中的所謂「成對/搭檔編程」)。我們運用本書收錄的重構準則,保證每次只走一 步。最后,我對這種實踐方式的效果感到十分驚訝。我不但對最后結果更有信心,而且開發壓力也小了很多。所以,我高度推薦你試試這些重構準則,你和你的程序都將因此更美好。 —Erich Gamma Object Technology International, Inc.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看