測試自己 - 透過重構提升自己

banq發表於2018-12-11

實踐重構不僅僅是改進我們的程式碼,它還有助於我們更好地推理我們的程式碼。
讓我們的程式碼變得更好似乎不會讓我們變得更好,但這裡面還是有因果關係,雖然不是很明顯。
我遇到的最有趣的想法之一是共享空間城市設計。在共享空間環境中,規劃者可以移除交通訊號,路和街道,使道路和步行區更安全。但是問題關鍵是不確定性,因為去除了交通訊號,當你開車或步行時,你必須減速並小心。只有小心才能帶來安全。
當我學會如何程式設計時,我注意到了這個變異。我自學了C作為第一門程式語言。今天我們對C進行了相當多的醜化,但當時我注意到學習C首先給了我一個優勢。當我後來參加Pascal的入門程式設計課程時,我感到震驚的是 - 在學期的後期 - 我看到其他學生出現陣列索引越界的執行錯誤。我用相同的語言做了幾個月相同的練習,但我從未見過這個錯誤。在C中,當您使用指標索引越界時,您可能會遇到系統崩潰,或者更糟糕的是:只是默默發生故障。在追逐問題解決幾次之後,你就學會了在遍歷陣列期間不會發生索引指標越界的問題。
讓我們回到重構。每當您對程式碼進行一些小改動並且即將執行測試時,首先要問自己是否會失敗?
我們應該知道我們的測試會在執行之前透過。我們大多數時候應該是正確的,但是萬一發生錯誤?
好訊息是,你做得越多,就越能快速瞭解改變結構所採取的步驟。你可以安全地自由建立所有東西  ,這些東西對你來說都是自動的。透過測試自己,我們在技能上增長。
這些是重構的好時機。如果你有機會,可以看看Arlo Belshee的可證明重構,Llewelyn Falco使用字首提交訊息的做法,以及Kent Beck對縮放環境Limbo的看法,其中所有變化都很小且可知。這些都是增長我們和我們的程式碼的相關想法。

相關文章