結果很愉悅,過程很痛苦。
小編有過幾次成功代碼重構經(jīng)歷,借此分享給大家希望能給大家一些啟發(fā)。
重構之前有幾個問題必須要考慮清楚。一是為什么要重構,二是重構后能達到什么效果,三是重構能否被團隊支持。
為什么重構?
大多數(shù)軟件項目初期是先實現(xiàn)功能滿足客戶需求。隨著功能的累加,系統(tǒng)的擴展性變的越來越差,直至看似很簡單的功能都無法實現(xiàn)。這個現(xiàn)象估計朋友們都遇到過類似經(jīng)歷,心里也會默默念叨“這是什么破玩意,這么簡單的功能都不具備”。上述情況是典型的缺乏設計經(jīng)典案例。
缺乏設計在程序員層面的體現(xiàn)是架構不明顯、邏輯不明了、代碼不清晰。隨著時間的推移,人員的更替,造成這些代碼無人能懂,出現(xiàn)問題不知從何處下手改動。處理過這類祖?zhèn)鞔a的小伙伴,常常感慨找出如何修改,比自己寫一遍的時間都長。
缺乏設計在用戶層面的體現(xiàn)是用戶體驗差,增加功能難。常表現(xiàn)為反人類思維的操作步驟,簡單的功能遲遲無法實現(xiàn)。進而覺得程序員業(yè)務不懂,技術也不咋滴。程序員也不是不想接受需求,而是不知道如何應對需求。老虎吃天無從下口的感覺,讓人非常煎熬。
到了這個程度,就像堆積木一樣,基礎沒打牢,任你多大能耐也很難繼續(xù)下去。怎么辦,唯有重構可以解憂。
重構后能達到什么效果?
重構是需要魄力,無論是人力還是物力的投入都涉及到白花花的銀子。重構之后能達到什么效果,也就是愿景是重重之重。
確定好項目的架構及技術路線,然后在此基礎上構建適合自己的開發(fā)框架,最后制定嚴格的開發(fā)規(guī)范。
優(yōu)秀的架構、技術路線能增加用戶體驗,提高程序的可擴展性。架構和技術的原則是選熟不選新,同時既要確保先進性也要具備前瞻性。
構建適合自己的開發(fā)框架,最大的好處可以提高開發(fā)效率。軟件項目響應客戶需求的速度,有時比功能的完備更重要。很多時候功能是有毛不算禿。寫到此處情不自禁摸了摸自己的腦門那幾根稀疏的頭發(fā)。
嚴格的開發(fā)規(guī)范,無疑是增加代碼的可讀性重要的法寶。減少項目成為祖?zhèn)鞔a的幾率,是利在當今,功在今后的好事。
構思好之后,把自己的想法寫下來,并能給大家講明白。能付諸行動才是成功的前奏。在實施過程中,不斷修正瑕疵之處逐步邁向成功。
能否被團隊支持非常重要。
前面說過重構耗費人力物力,征得老板支持是實施的準入證。
重構是不產(chǎn)生直接生產(chǎn)的,還要額外學習新的技術,會影響個人KPI。有人提反對意見,也有情可原。
與人打交道,溝通協(xié)調最重要。程序員最怵頭的事情沒有之一,這也是為什么單獨列出這一條。
結語
世上無難事,只怕有心人。做好規(guī)劃,認真執(zhí)行,勝利就在前方向你招手。