用心才能寫出好代碼

void foobar(x, y, z) {
    px = get_x(x);
    if (0 != check_x(px)) 
        return ERROR;

    py = get_y(y);
    if (0 != check_y(py))
        return ERROR;

    if (0 != z)
        return ERROR;
}

經常會看到類似上面的代碼,每次看到都會吐槽:寫這樣代碼的人,肯定沒有動腦、不用心。

這樣的代碼往往是編碼的人,簡單地、機械地根據業務需求說明書,把業務邏輯翻譯成代碼邏輯,整個翻譯過程中就沒有考慮過代碼的效率問題 —— 而這也是我認爲的“碼農”和“程序員”最基本的區別。

上面的代碼中,如果get_x/y或check_x/y裏面做了很複雜的計算,然後'z'不等於零,函數還是返回錯誤,前面一堆複雜的計算豈不是白做了?因此,對於這種有各種不同檢查邏輯的函數,應該儘量把簡單的邏輯往前放,複雜的邏輯往後面放,以減少不必要的計算,浪費系統的資源。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章