天天看點

笨辦法學 Python · 續 練習 25:`xargs`練習 25:xargs

練習 25:

xargs

原文: Exercise 25: xargs 譯者: 飛龍 協定: CC BY-NC-SA 4.0 自豪地采用 谷歌翻譯

我們回到挑戰模式的練習,并為你熱身,你将會實作

xargs

。這應該是一個簡單的實作,但是

xargs

可能很複雜,因為你需要啟動其他程式才能使其運作。你要研究的 Python 子產品是

subprocess

,可以從 Python 運作其他程式并收集其輸出。你将需要了解該子產品,稍後完成

xargs

和本書的許多其他項目,是以要好好研究。

挑戰練習

實作

xargs

隻需 45 分鐘,是以你可以做出一些東西,之後你可以審計它。記住第一個 Hack 就是讓項目能運作,而不是使其完美。你将在此項目中的後續步驟中優化它并使其更好。記住你可以鍵入:

man xargs           

擷取

xargs

的手冊頁并研究如何工作。這是一個友善的 Unix 工具,但你也可以使用

find

做幾乎相同的事情。當你實作

xargs

時,嘗試找出,它比起

find --exec

有什麼優勢。

經過 45 分鐘的 Hack,你應該休息一下,然後使用第三部分的代碼審計檢查清單,對代碼進行客觀的審計。不要修複代碼,隻需編寫注釋,指出需要改變什麼,有什麼缺陷。在嘗試修複時,很難保持客觀,是以隻需要注意審計中的問題,然後在下一輪中修複它們。

然後,你将進行一系列代碼/審計的計時會話,來習慣于進行審計。花費你所需的盡可能長的時間,盡可能多地實作

xargs

,然後繼續下一個項目。

記住要在日志中跟蹤你的缺陷,是以你可以繪制它們的運作圖,并尋找趨勢。

研究性學習

  • 在代碼/審計的流程中,你是否發現任何你不斷犯下的錯誤?把這些當成潛在的事情寫下來并處理。
  • 你的代碼/審計流程中,是否有一個特定的時間點,有或多或少的缺陷?比起最開始更多,還是三到四個流程之後更多?為什麼會這樣?
  • 嘗試為你的

    xargs

    的實作編寫自動測試,并檢視是否降低你的缺陷率。在下一個練習中,你将會進行一個更加受控的測試研究,就像這樣,但是現在嘗試一下,看看你發現了什麼。