良好的習慣,從最初做起
當然,重構再怎么樣,也是一種推翻重做,耽誤時間的做法。從我的經驗來看,其實大多數的重構都是可以避免的,這需要從以下幾個方面去提高。
良好的編碼風格,好的習慣往往很難是天然形成的,更多是在工作中不斷的老帶新中耳濡目染練出來的。很多領導希望員工全部時間都用來做項目,不斷地去壓更多的活,實際上是在用跑短跑的方式跑長跑,很容易出現后勁不足的情況。而我在微軟的經歷,也讓自己感受到了從潮手到逐漸成熟的過程,后來在搜狗時即使再忙沒法搞team review,我也會去盡量給每個組員檢查他們的代碼,幫助別人去提高。
初期的架構設計,這個也是非常重要的。架構設計能不能一次到位,這個不太好說。但是相信好的架構,一定比粗糙的設計能夠堅持更長得多的時間。并且好架構可以考慮到未來可能擴充的規模和功能,為未來的發展留好接口。同時在其中所有的模塊都非常有序,即使大的框架要修改的話,也只是搭一個架子,原有的子功能和子模塊都能夠被很好的復用,
其實很多時候,代碼并非要開發一陣就重構一次,而寫出好的架構,也并非是那么難。更重要的是,需要的是不斷的提高程序員的自我修養,不僅僅是能力上的,還有態度上的。不要只想最初開發時省事,而不考慮若干時間后的事情。好的架構,對未來的開發以及發展,可以說是真真實實的“事半功倍”。
最后,我們看一個關于扁鵲的故事:
魏文王曾求教于名醫扁鵲:“你們家兄弟三人,都精于醫術,誰是醫術最好的呢?”扁鵲:“大哥最好,二哥差些,我是三人中最差的一個。” 魏王不解地說:“請你介紹的詳細些。”
扁鵲解釋說:“大哥治病,是在病情發作之前,那時候病人自己還不覺得有病,但大哥就下藥鏟除了病根,使他的醫術難以被人認可,所以沒有名氣,只是在我們家中被推崇備至。我的二哥治病,是在病初起之時,癥狀尚不十分明顯,病人也沒有覺得痛苦,二哥就能藥到病除,使鄉里人都認為二哥只是治小病很靈。我治病,都是在病情十分嚴重之時,病人痛苦萬分,病人家屬心急如焚。此時,他們看到我在經脈上穿刺,用針放血,或在患處敷以毒藥以毒攻毒,或動大手術直指病灶,使重病人病情得到緩解或很快治愈,所以我名聞天下。”
扁鵲實際上就是一個很好的重構高手,但是扁鵲的大哥,就是因為能夠將問題看在前面,處理在前面,所以能夠永葆健康,這更是高手中的高手!
原文轉自:http://blog.sina.com.cn/s/blog_6592c40501018e9y.html