有的人會說,因為沒時間,所以無法重構。我認為並不是的。事實是你因為放著小問題不管,任憑系統不斷依現有的亂亂的樣子一直長大,等到你發現加東西很困難了,這時才想要重構,問題已經很大了,重構起來當然很辛苦,當然也就沒時間重構了。
所以跟測試一樣,你不是沒時間重構,你就是都不重構才會沒時間。
「5 Lines of Code」是筆者認為判斷是否要重構的一個重要指標。任何 method、function…等,只要超過五行,那你就可以開始考慮重構了。
當然,這不代表你一定不能超過五行,也不是不超過五行就代表設計很好。這只是一個重要觀察指標,不是一個一定要死守的規定。
感謝分享!雖然作者大大已經強調 5 LoC 不是一個絕對的標準,但畢竟抓了一個數字出來。好奇作者對於這篇網誌「Abstraction is not Indirection」的看法......
嗨!感謝回覆。
5 Lines of code 這個概念非我原創,這是這本書裡提出來的:https://www.tenlong.com.tw/products/9781617298318
但其實也就是一個概念,輔助我們判斷何時差不多該考慮重構了,僅此而已。
至於誰跟誰抽一起,抽去哪裡,情況有變時要不要 inline 回來,還是得回到各語言特性與各 domain 的變化趨勢。
您這篇我還沒細看,不過標題本身就很吸引人。抽象很重要,但很多人沒弄好,反而變得不直覺。詳細的話…待我抽空細看再來討論吧!