發表文章

目前顯示的是有「轉載」標籤的文章

[轉] 怎麼提高代碼質量?-來自Google的研發經驗總結

圖片
你的團隊有沒有過這樣的經歷:開發效率低,招了很多人,天天加班,出活卻不多,線上bug頻發,領導發飆,中層束手無策,工程師抱怨不斷,查找bug困難。其實這些都是程式碼質量差惹的禍。程式碼質量是研髮質量管理的根本,它決定了整個開發團隊的開發效率,項目質量,其他監控,告警,日誌等手段都只能是事後補償。本文就如何保證程式碼質量總結了一些經驗和方法,供大家參考。 程式碼質量本身並沒有一個特別明確的量化指標,而且根據公司發展的不同階段,團隊規模的大小不同,項目性質的不同等,對程式碼質量的要求也不盡相同。不過如果項目中出現以下情況時候,就說明程式碼質量要值得重視了。 添加或修改一個簡單功能時,涉及要修改的地方特別多,而且很分散; 程式碼不可復用:相似的功能無法復用程式碼,要重新開發; 線上bug頻發,排錯困難,修復難度大,時間長; 有很多奇怪的程式碼,程式碼讀不懂,新人無法很快瞭解程式碼; 程式碼中坑特別多,不敢大動,一不小心就踩坑; 以上這些問題,基本上都是程式碼質量不高導致的,包括程式碼無註釋,無文檔,命名差,項目層次結構差,調用關係混亂,到處hardcode,臨時解決方案等等。怎麼才能時刻保證程式碼的高質量,避免以上問題發生?當然團隊的技術素質很重要,除此之外,還有一些方法可循的。 1. 吹毛求疵般地執行編碼規範 嚴格執行程式碼編寫規範,可以使一個項目乃至一個公司的程式碼具有完全統一的風格,就像同一個人編寫的一樣,而且命名良好的變量,函數,類和註釋,也無疑可以提高程式碼的可讀性。具體落實到執行層面,可以參照Google的編碼規範或者java官方的編碼規範,網上可以找到,關鍵是要嚴格遵守,並且在code review時,嚴格要求,沒有按照規範的一定要指出並且要求修改。 實際情況往往是雖然大家都知道優秀的程式碼規範是怎樣的,但在具體寫程式碼的過程中,卻執行的差強人意,很多情況是認識上不夠重視,覺得一個變量或者函數的命名成哪樣關係不大,所以不夠推敲,註釋很多也都不寫,code review的時候大家也都事不關己心態,或者覺得沒必要太摳細節,導致慢慢的整個code base變得越來越差。所以這裡還是要強調一下,細節決定成敗,提高團隊對程式碼規範的認同及其嚴格的執行是關鍵。 2. 編寫高質量的單元測試 單元測試是最容易執行,且對提高程式碼質量見效最快的方法之一還。但還是有很多