天天看點

笨辦法學 Python · 續 練習 12:複習練習 12:複習

練習 12:複習

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

我的瘋狂方法的第一階段對我來說是足夠的,但不是為你準備的。我們現在要檢查這本書這部分的政策,以便将來可以繼續使用它。這個政策是:

  • 你需要處理每個項目的起步。
  • 為了隔離這個問題,你可以坐下來,在 45 分鐘内完成一些小項目。這會把重點放在項目啟動的問題位置,并讓你重複該流程的一部分。
  • 當你處理這些項目時,可以确定項目啟動時的問題的可能原因。這可以表現為你的計算機設定,工作環境,心理思維過程或身體健康的形式。還有更多的,但是這是最可能的原因。
  • 一旦确定了可能的原因,你就可以在 45 分鐘 Hack 的小間隔内消除或改變它們。
  • 最後,記錄和繪制名額,看看這些可能的變化是否有幫助,但也要確定它們不會幹擾你的表現。

這不需要是正式的科學流程,它就是實用的。所有你需要的是,将它當作一本日志來幫助你客觀地看待你的工作方式。如果你做的正确,你會遇到你以前沒想過的驚人的事情。收集資料迫使你探索新的可能性,并擴充一些東西,你認為它們可能是原因。

請記住,這個個人名額的日志不應與其他人分享,特别是管理人員。管理者會試圖将這些名額強加于你,這是不可行的,如果這樣做,那麼你應該拒絕。這些是你的私人筆記,沒有人有權閱讀 – 非常像日記或私人電子郵件。

挑戰練習

最後的練習是讓你選擇最喜歡的工具,并花費一系列 45 分鐘的時間,在一周或更多課程中優化它。使用你所學到的關于自己的一切,接受這個項目,從頭開始,創造出更加健壯的東西。限制你自己 45 分鐘一次,但不要把這個最終的項目當作一個黑魔法。相反,這是你正在開發的黑魔法的下一步。

在我完成一些快速的 Hack ,來測試一個想法之後,我将删除它或清理它。 如果這個黑魔法十分惡心,它就不能看到明天的太陽了,那麼我就删除它,并以一個幹淨的開始重新實作它。 你不會忘記你所做的一切,并且必須解決這些問題,但是關注品質将會幫助你把它做得更幹淨。 如果黑魔法沒有那麼糟糕,那麼我要做的就是在擴充之前進行清理。

将黑魔法轉化為健壯的程式的一種有效技術是,使用自動化測試套件,将它的關鍵元素提取到庫中。這迫使你将代碼視為将在其他代碼中使用的代碼。我會這樣做:

  • 浏覽檔案,并将我的“黑魔法意識流”轉換成一組函數。
  • 然後我會使用 + DRY(不要重複你自己)重構代碼,確定删除重複的代碼,但不要太多。 零重複代碼基本上是加密的随機的東西。
  • 一旦清理和運作完畢,和之前一樣,但是帶有函數,我将這些函數放進子產品,并確定原始代碼保持有效。 記住,不要在清理過程中改變事情,隻需要重新組織并修複它。
  • 代碼移動并再次正常工作之後,坐下來編寫測試用例,確定我開始修改東西時,它能夠在未來繼續工作。

對于這個練習,你要選取你最喜歡的項目,并對它做這個“正式化”的過程。保持 45 分鐘一次,并通過上述流程進行清理。當天工作時間最好超過 45 分鐘,隻需確定在每次會話之間休息 15-30 分鐘。這是相同的時間架構,除非你不在 Hack,你應該認真對待。

研究性學習

  • 将你的黑魔法代碼與你的正式代碼進行比較。你是否通過清理找到錯誤?是否還有其他改進?
  • 如果黑魔法和清理後的代碼在行為上幾乎相同,那麼你真的需要清理黑魔法嗎?為什麼你需要清理黑魔法,即使它的工作正常,并且可能更簡單?
  • 在你經常運作的指令清單中,嘗試一個新的指令(參見練習 11),并嘗試這個完整的流程。完成一個快速的 Hack,然後清理它,使它變得正式。

深入學習

這裡是其它指令的清單,你應該嘗試在 45 分鐘内做出替代品:

  • ls

  • rm

  • rmdir

  • mkdir

  • cal

  • tail

  • yes

  • false

嘗試實作它們中的一些吧。