<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之旅 廣告
                # 章節三 代碼的壞味道 > If it stinks, change it.(如果尿布臭了,就換掉它。) ―語出Beck奶奶’討論小孩撫養哲學 現在,對于「重構如何運作」,你已經有了相當好的理解。但是知道How不代表 知道When。決定何時重構、何時停止和知道重構機制如何運轉是一樣重要的。 難題來了!解釋「如何刪除一個instance變量」或「如何產生一個class hierarchy(階層體系)」很容易,因為這些都是很簡單的事情。但要解釋「該在什么時候做這些動作」就沒那么順理成章了。除了露幾手含混的編程美學(說實話,這就是咱 這些顧問常做的事),我還希望讓某些東西更具說服力一些。 去蘇黎士拜訪Kent Beck的時候,我正在為這個微妙的問題大傷腦筋。也許是因為受到剛出生的女兒的氣味影響吧,他提出「用味道來形容重構時機」。『味道』,他說,『聽起來是不是比含混的美學理論要好多了?』啊,是的。我們看過很多很 多代碼,它們所屬的項目從大獲成功到奄奄一息都有。觀察這些代碼時,我們學會了從中找尋某些特定結構,這些結構指出(有時甚至就像尖叫呼喊)重構的可能性。(本章主詞換成「我們」,是為了反映一個事實:Kent和我共同撰寫本章。你應該可以看出我倆的文筆差異——插科打諢的部分是我寫的,其余都是他的。〕 我們并不試圖給你一個「重構為時晚矣」的精確衡量標準。從我們的經驗看來,沒有任何量度規矩比得上一個見識廣博者的直覺。我們只會告訴你一些跡象,它會指出「這里有一個可使用重構解決的問題」。你必須培養出自己的判斷力,學會判斷一個class內有多少instance變量算是太大、一個函數內有多少行代碼才算太長。 如果你無法確定該進行哪一種重構手法,請閱讀本章內容和封底內頁表格來尋找靈感。你可以閱讀本章(或快速瀏覽封底內頁表格〕來判斷自己聞到的是什么味道, 然后再看看我們所建議的重構手法能否幫助你。也許這里所列的「臭味條款」和你所檢測的不盡相符,但愿它們能夠為你指引正確方向。
                  <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>

                              哎呀哎呀视频在线观看