山东省群英会开奖直播

億元級IT行業生態鏈
一站式解決方案提供商

24小時免費咨詢電話
010-52725243

新聞資訊

AJIA NEWS

閑談團隊的代碼質量:沒有code review的團隊沒有未來

來源:juejin.im 發布日期:2017-09-18

阿甲科技代碼質量

定義代碼質量

首先當你開始意識到項目里代碼質量差的時候,恭喜你已經有了代碼審美。這是推進編程水平的重要的一步。很顯然,如果你不知道什么是差的代碼,你就寫不出好的代碼。寫不出好的代碼,更高的架構也就無從談起。

先來定義團隊代碼質量的黃金標準:易維護。

代碼最基本的要求,易讀。現代的軟件項目都不是一朝一夕,有團隊合作,有新需求,要修 bug,代碼不只是只給機器讀的,是給人讀的。一份清晰、易懂的代碼就包括了:良好的代碼風格,清晰的邏輯,合理的結構。也許做到 90 分和天賦有關,做到 70 分其實沒難度,單純看你花了多少努力在這件事。

很多人用中文寫幾百個字描述一件事都說不清,一個邏輯有兩千行代碼又怎么可能寫的清楚呢。鍛煉過程也和提高表達能力相似,只是之前是某種文字,現在是用代碼。文學里有修辭手法,有總分總,代碼里有語法糖,有 MVC。

代碼質量從何開始

如果重視代碼質量,如何達成代碼質量的基本共識呢?

解決這個問題的核心并不是一本萬能手冊。不存在一本黃金寶典,包含了各式各樣的代碼,任何時候都可以按圖索驥得到一個檢驗標準。你能得到的是一個評判的方式,可以從哪些角度去認知代碼,最后發現這樣的代碼在這個條件會引起一些問題,所以這代碼不夠好。

我認為的起點是這幾本書:《編寫可讀代碼的藝術》《代碼整潔之道》《重構》《代碼大全》。就如前面說過的,這些書的重點并不是具體某個代碼、某種條件下好的代碼長什么樣,而是他們怎么得出了這樣的結果。當你理解了這幾本書的核心思想后可以開始正確審視自己的代碼質量了,可以開始 code review 了。

追求代碼質量是一個成長的過程

代碼質量就像作者寫出好的文章一樣,是一個不斷進步、不斷推進的過程。

一開始你可能寫十幾行就要停下來思考,這個命名合不合適,這樣的邏輯是不是有點亂。后面可能到一個類的封裝是不是合適。再后面可能幾個月回頭看自己的代碼才意識到,當時這樣寫會有歧義,擴展性不好等等。

這也是自己不斷提高編程能力的過程,寫出易維護的代碼只是第一步。

沒有 code review 的團隊沒有未來

如何提高團隊的代碼質量?

代碼是有程序員寫出來的,如果每個人都是老江湖,團隊的代碼質量就高了啊。可是能有幾個團隊每個人都能寫出高質量的代碼?

其實真的非常簡單,嚴格的執行 code review 就可以了。讓那些知道好代碼長什么樣的人控制代碼質量。就像工廠里的質檢,不合格的代碼不會被合進代碼庫。

沒有 code review 的團隊沒有未來。

要不就是這個團隊技術能力差,沒有能力進行 review。

要不就是項目簡單,不需要 review,什么垃圾代碼都可以完美支撐。

要不就是項目復雜,團隊技術實力也可以。核心代碼由救火隊員控制,他們根本不關心其他人代碼寫成怎么樣。出問題了他們救火,他們會保證項目運行,其他成員技術能力的提高不在意。

最后一種情況可能是最常見的情況,但是也是最可悲的情況。他意味技術團隊的負責人本質上并不關心成員的技術成長。提高項目代碼質量的最終實現還是靠每個成員的能力可以寫出高質量的代碼。每個人都成長了,最后項目代碼質量自然就提高了。然而管理技術團隊的人沒有意識去促成這件事情的發生,那么一個新手在這樣的團隊成長還是靠自我摸索,這會是一個緩慢的過程。

Code review 就像快進的結對編程,一個老手點評一個新手代碼的時候,就會產生交流,要闡明為什么不能這樣寫。在保證項目質量的同時,對新手也進行了指引。兩個水平相當的人 review 則得到了其他視角的審視結果,最后交流的結果就是兩個人都得到了更全面的見解。

所以沒有 code review 的團隊沒有未來。每個團隊都有自己的基因,如果你在團隊沒有話語權,只能祝你早日找到一個有 review 的團隊,不要期望通過自己的努力改變他們。以我的經驗來看,無法叫醒一個裝睡的人,一個真正好的團隊,推進 code review 不會有任何阻力,如果有,開掉那個人。

轉自:閑談團隊的代碼質量 作者:沒故事的卓同學

阿甲科技

歡迎訪問阿甲科技集團官方網站!
山东省群英会开奖直播 体彩广西11选5开奖结果 福建大星体彩31和36混合图 北京赛車走势app下载 打渔平台 体彩19086期开奖号码 福建体彩36选7模拟选号 五大联赛什么时候开始 辽宁十一选五走势图基本走势图 现场报码即时开奖结果查询 福彩大星走势图