關于代碼Review

在一個項目組里面,經常會互相review同事的代碼,review的過程中相信會產生不少矛盾,這篇文章記錄一下我對代碼review的一些看法。首先是編碼規(guī)范的問題,拿PHP來說。比如命名規(guī)范,indent之類的。這些都應該在項目編碼開始之前大家立好規(guī)矩。是采用駝峰命名法還是用下劃線分割單詞,indent?是用tab還是用空格,大括號是換行:

function foo() {
}

還是不換行:

function foo() 
{
}

這些最基礎格式規(guī)范一定要在最開始寫在一個wiki文檔上,項目組所有成員都需要熟記這個規(guī)范。這種規(guī)范,兩上個技術骨干定一下就好了,定下來就按它執(zhí)行。這個東西其實只要統(tǒng)一就好,無需糾結,孰好孰壞也并不影響項目質量。

接下來我說一下我對關于一些實現(xiàn)邏輯的寫法review的個人理解,比較經典的是關于 if...else...?的用法的討論。如果一個函數(shù)中用if...else來做分支處理,代碼如下:

if($flag = 1)
{
    .....
    $result = 'A';
}else if($flag = 2) {
    .....
    .....
    $result = 'B';
}else {
    .....
    .....
    $result = 'C';
}

.....
.....
return $result;

這種情況,如果if...else語句下面的處理跟邏輯跟結果A或者B沒有什么關系的話 ,可以改寫成如下代碼,使得代碼邏輯更加清晰

if($flag = 1)
{
    .....
    return 'A';
}
if($flag = 2) {
    .....
    .....
    return 'B';
}
.....
.....

.....
.....
return 'C';

簡單一句話就是,適當?shù)娜サ鬷f...else而換成if return結構,很多時候可以提高程序的可讀性,但也不能認準這個死道理,比如下面這段(形式A)代碼

    function foo($flag) {
        if($flag) {
            $var = 'A';
        }else {
            $var = 'B';
        }

        ....
    }

我的同事review的時候建議改成如下(形式B):

    function foo($flag) {
        $var = 'B';
        if($flag) {
            $var = 'A';
        }
        ....
    }

這其實并沒有意義,首先這并沒有增加程序的可讀性,其次形式A的代碼其實更符合人類的思維,它表述出$var變量非A既B的邏輯,而下面的代碼表述的是$var變量的默認值是A,當flag為true的時候它被賦值B,給人一種它可能還會有其他情況被賦值為C、D ... 之類的值的預期。

所以在review代碼的時候不能教條(簡單的認為只要去掉else代碼就會變得更簡單易讀),review需要關注的點應該是是否有邏輯漏洞,潛在BUG,非常小可能性出現(xiàn)的異常沒有處理。而對于代碼的表述方式,不應該過多關注。所以反之若是有人寫了形式B的代碼,也沒有必要在review的時候,讓他改成形式A。如果review的這么仔細,不但不會提高代碼質量,反而會大大減慢項目的開發(fā)進度,增加溝通成本。

所以,review這件事,要有度!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,037評論 25 709
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,696評論 18 399
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,330評論 0 17
  • 中國,1978年改革開放,1992年正式實施市場經濟,2001年加入世界貿易組織,時至今日,我們的生活已經從改革開...
    喜歡思考閱讀 2,472評論 1 2
  • 孟子曰:吾善養(yǎng)吾浩然之正氣。修身者,需內養(yǎng)精氣神,以通天地之陰陽混元能量,與萬物為一也。 1 靜坐:靜以修身...
    十年一井閱讀 382評論 0 0

友情鏈接更多精彩內容