練習 12:復(fù)習
譯者:飛龍
協(xié)議:CC BY-NC-SA 4.0
自豪地采用谷歌翻譯
我的瘋狂方法的第一階段對我來說是足夠的,但不是為你準備的。我們現(xiàn)在要檢查這本書這部分的策略痛悯,以便將來可以繼續(xù)使用它度陆。這個策略是:
- 你需要處理每個項目的起步慢洋。
- 為了隔離這個問題吹泡,你可以坐下來盟庞,在 45 分鐘內(nèi)完成一些小項目阶剑。這會把重點放在項目啟動的問題位置跃巡,并讓你重復(fù)該流程的一部分。
- 當你處理這些項目時牧愁,可以確定項目啟動時的問題的可能原因素邪。這可以表現(xiàn)為你的計算機設(shè)置,工作環(huán)境递宅,心理思維過程或身體健康的形式娘香。還有更多的苍狰,但是這是最可能的原因。
- 一旦確定了可能的原因烘绽,你就可以在 45 分鐘 Hack 的小間隔內(nèi)消除或改變它們淋昭。
- 最后,記錄和繪制指標安接,看看這些可能的變化是否有幫助翔忽,但也要確保它們不會干擾你的表現(xiàn)。
這不需要是正式的科學流程盏檐,它就是實用的歇式。所有你需要的是,將它當作一本日志來幫助你客觀地看待你的工作方式胡野。如果你做的正確材失,你會遇到你以前沒想過的驚人的事情。收集數(shù)據(jù)迫使你探索新的可能性硫豆,并擴展一些東西龙巨,你認為它們可能是原因。
請記住熊响,這個個人指標的日志不應(yīng)與其他人分享旨别,特別是管理人員。管理者會試圖將這些指標強加于你汗茄,這是不可行的秸弛,如果這樣做,那么你應(yīng)該拒絕洪碳。這些是你的私人筆記递览,沒有人有權(quán)閱讀 -- 非常像日記或私人電子郵件。
挑戰(zhàn)練習
最后的練習是讓你選擇最喜歡的工具偶宫,并花費一系列 45 分鐘的時間非迹,在一周或更多課程中優(yōu)化它。使用你所學到的關(guān)于自己的一切纯趋,接受這個項目憎兽,從頭開始,創(chuàng)造出更加健壯的東西吵冒。限制你自己 45 分鐘一次纯命,但不要把這個最終的項目當作一個黑魔法。相反痹栖,這是你正在開發(fā)的黑魔法的下一步亿汞。
在我完成一些快速的 Hack ,來測試一個想法之后揪阿,我將刪除它或清理它疗我。 如果這個黑魔法十分惡心咆畏,它就不能看到明天的太陽了,那么我就刪除它吴裤,并以一個干凈的開始重新實現(xiàn)它旧找。 你不會忘記你所做的一切,并且必須解決這些問題麦牺,但是關(guān)注質(zhì)量將會幫助你把它做得更干凈钮蛛。 如果黑魔法沒有那么糟糕,那么我要做的就是在擴展之前進行清理剖膳。
將黑魔法轉(zhuǎn)化為健壯的程序的一種有效技術(shù)是魏颓,使用自動化測試套件,將它的關(guān)鍵元素提取到庫中吱晒。這迫使你將代碼視為將在其他代碼中使用的代碼甸饱。我會這樣做:
- 瀏覽文件,并將我的“黑魔法意識流”轉(zhuǎn)換成一組函數(shù)枕荞。
- 然后我會使用 + DRY(不要重復(fù)你自己)重構(gòu)代碼柜候,確保刪除重復(fù)的代碼搞动,但不要太多躏精。 零重復(fù)代碼基本上是加密的隨機的東西。
- 一旦清理和運行完畢鹦肿,和之前一樣矗烛,但是帶有函數(shù),我將這些函數(shù)放進模塊箩溃,并確保原始代碼保持有效瞭吃。 記住,不要在清理過程中改變事情涣旨,只需要重新組織并修復(fù)它歪架。
- 代碼移動并再次正常工作之后,坐下來編寫測試用例霹陡,確保我開始修改東西時和蚪,它能夠在未來繼續(xù)工作。
對于這個練習烹棉,你要選取你最喜歡的項目攒霹,并對它做這個“正式化”的過程。保持 45 分鐘一次浆洗,并通過上述流程進行清理催束。當天工作時間最好超過 45 分鐘,只需確保在每次會話之間休息 15-30 分鐘伏社。這是相同的時間框架抠刺,除非你不在 Hack塔淤,你應(yīng)該認真對待。
研究性學習
- 將你的黑魔法代碼與你的正式代碼進行比較速妖。你是否通過清理找到錯誤凯沪?是否還有其他改進?
- 如果黑魔法和清理后的代碼在行為上幾乎相同买优,那么你真的需要清理黑魔法嗎妨马?為什么你需要清理黑魔法,即使它的工作正常杀赢,并且可能更簡單烘跺?
- 在你經(jīng)常運行的命令列表中,嘗試一個新的命令(參見練習 11)脂崔,并嘗試這個完整的流程滤淳。完成一個快速的 Hack,然后清理它砌左,使它變得正式脖咐。
深入學習
這里是其它命令的列表,你應(yīng)該嘗試在 45 分鐘內(nèi)做出替代品:
ls
rm
rmdir
mkdir
cal
tail
yes
false
嘗試實現(xiàn)它們中的一些吧汇歹。