<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 練習 27:`tr` > 原文:[Exercise 27: tr](https://learncodethehardway.org/more-python-book/ex27.html) > 譯者:[飛龍](https://github.com/wizardforcel) > 協議:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/) > 自豪地采用[谷歌翻譯](https://translate.google.cn/) 這個練習是繼續學習 TDD(又稱“測試優先”)風格的開發。知道如何這樣編程很重要,因為它在許多地方使用,但如前所述,它有其局限性。在實現`tr`命令時,您將再次使用 TDD 進行練習。要十分確定,你是先嚴格編寫測試,然后是代碼,然后再審計兩個東西。 在上一個練習中,我讓你逐步構建測試用例和代碼。這通常是最不容易出錯的開發方法,但它不能幫助您更好地分析自己的代碼。在這個練習中,你會做一些略微不同的事情,因為我將會寫一個完整的測試用例,進行審計,然后編寫整個代碼,進行審計,并通過運行測試來確認審計。 這意味著,在這個練習中你的流程是這樣的: + 嘗試編寫大部分 TDD 測試用例。 + 審計測試用例并確認它是否編寫正確。 + 運行測試以確保它們失敗,但是查找任何語法錯誤。此時您不應該有語法錯誤。 + 為測試用例編寫代碼,但不要運行測試。 + 審計您的代碼,并嘗試在運行測試之前查看有多少缺陷。 您將在下一個練習中,使用此過程來跟蹤您的審計技能、測試技能的指標,并更好地控制您編寫代碼的方式。 ## 挑戰練習 `tr`工具是翻譯字符流的有效方式。盡管非常簡單,它可以對字符做一些非常復雜的事情。例如,您可以使用`tr`,以一行代碼,獲取`history`中使用的單詞的頻率: ``` history | tr -cs A-Za-z '\n' | tr A-Z a-z | sort | uniq -c | sort -rn ``` 似乎很炫酷,但是 Doug McIlroy 曾經使用這一行來辯稱,高德納(Donald Knuth)編寫的一個類似的程序太長。Knuth 的實現是“10頁”,從頭開始構建一切。Doug 的一行只是使用標準的 Unix 工具來做同樣的事情。這展示了 Unix 的管道工具的力量和`tr`的翻譯文本的能力。 使用手冊頁和任何其他東西,弄清`tr`命令的作用。還有一個同名的 Python 項目,但是我會告訴你要避開它,直到你完成實現,所以你可以稍后再比較這個項目。同時不要忘記,為此你需要一個整體的項目,它應該是測試完成的 TDD 風格,就像我開始的描述的那樣。 ## 45 分鐘的批判 我希望你繼續使用45分鐘的時間,但是有一個對這種工作方式的很大批評:你不能進入擴展的專注流程。在短時間內工作,像這樣,在你需要處理大量工作的,以及必須加快步伐時有所幫助。這種情況發生在工作真的很無聊,沒有樂趣的時候。我正在讓你使用45分鐘的時間塊來加快自己的速度,但是我們也會在稍后使用它們,來收集一些指標,有關如何在時間中工作,來進行后續分析。 但我會提醒你,最好的編程是在專注的狀態中完成的。這就是,你的注意力在幾個小時之內高度集中,失去所有的時間感,直到凌晨 5 點,意識到你度過了一整夜。這種強烈的專注使編程對我來說非常愉快,但是當您對您正在做的事情很感興趣時,它真的是可持續的。當您需要處理別人的糟糕的代碼庫時,這個現象往往不會發生。在這些情況下,您需要一個不同的策略,加快你的工作并讓你擺脫困境,而不會損耗你的興致。這就是 45 分鐘的時間塊的作用。 最后,建立你進入狀態并集中精力幾個小時的能力,一個方法是從短暫的時間開始,然后慢慢增加它們,直到你可以忍受更長的時間。繼續使用 45 分鐘的時間快,但是如果你只是忘乎所以,最后在最后幾個小時內完成黑魔法,那么就玩的開心。沒有人會說你做錯了,這實際上是正常的。 ## 研究性學習 + 這種工作方式怎么樣?你喜歡嗎?嘗試闡明為什么,然后閱讀一些當前的 TDD 的文章,或它的近親行為驅動開發(BDD)。 + 你認為通過首先審計你的代碼而不是逐步構建它,你發現了更多還是更少的缺陷?猜測它,然后寫下來。
                  <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>

                              哎呀哎呀视频在线观看