2013-05-27 45 views
0

有兩種格式化代碼塊的主要方法。塊格式化的代碼標準

我習慣做的東西像這樣:

function do_something() { 
    if(cond) { 
     if (cond 2) { 
      if (cond 3) { 
       whatever_good(); 
      } else 
       whatever_bad3(); 
     } else 
      whatever_bad2(); 
    } else 
     whatever_bad1(); 
} 

但最近我被介紹給這種類型的組織代碼:

function do_something() { 
    if(!cond) { 
     whatever_bad1(); 
     return; 
    } 
    if (!cond 2) { 
     whatever_bad2(); 
     return; 
    } 
    if (!cond 3) { 
     whatever_bad3(); 
     return; 
    } 

    whatever_good(); 
} 

第二種方式更具有可讀性,我得管理員。但它只是讓我畏縮,寫這樣的代碼...即使我意識到第二個如果可能更好。我想我必須改變我的習慣。

所以。我的問題是:是否有一些關於如何更好地構造代碼的指導原則?這可能過於寬泛,但這是在Google中無法輕鬆找到的內容。尤其是針對這兩種編寫代碼的方式。我試圖找到這兩種方式的比較,但甚至找不到一篇關於它的文章。也可能是一些關於提高可讀性的指南。

所以,我真的很感激一些鏈接。

聚苯乙烯 - 現在我問這個PHP,但我認爲這也適用於大多數其他語言。所以,對於php來說,這並不是必須的。

回答

1

這個怎麼樣?

if(cond1 && cond2 && cond 3) { 
    something_good(); 
} 
else { 
    something_bad(); 
} 
+0

謝謝您的回答。但是,這不完全是一個真實的代碼,你應該理解:)可能可以包含許多不同的條件,否則具有不同返回的語句(例如錯誤代碼),也許單個「好」返回,所以你不能格式化它,因爲你只是沒有。但我並沒有真正要求在我的問題中如何格式化代碼。我正在尋求一些關於組織代碼的指導性文章,以提高可讀性和可能的​​性能。 – NewProger

+0

在這種情況下,您應該將您的代碼更改爲'something_bad1()'something_bad2()'something_bad3()'以指示不同的代碼。另外,這對於程序員來說可能更合適,因爲Stackoverflow明確地用於決定性的答案,而不是針對有爭議的問題。 – Aquillo

+0

好的,我會這樣做的。至於「更適合程序員」我認爲你是對的......我應該可能在那裏問過它...... – NewProger