2012-04-18 44 views
4

我正在爲我的組織設定一些編程實踐標準。 這樣做我遇到了問題「這個問題的標題」儘可能晚地聲明局部變量或者它們所屬的最近的花括號?

有些人發現它儘可能晚的聲明變量,有些人認爲它的好 使他們在方法開始括號的頂部。

甲骨文標準也表示要儘早申報。 所以我贊成在他們所屬的最接近的花括號上宣佈他們。

關注的是

  1. 代碼的可讀性

  2. 性能

  3. 不易出錯

任何意見都歡迎。

+1

什麼是隻有以下Oracle標準反正這個問題?如果您希望它們更接近特定的代碼,只需使用{}圍繞該代碼即可定義本地作用域。 – user387184 2012-04-18 07:34:55

回答

10

這是麥康奈爾說,在他必讀的書代碼完成2:

理想的情況下,聲明和定義每個變量接近它使用的地方。聲明建立了一個變量的類型。定義爲變量分配一個特定的值。在支持它的語言(如C++和Java)中,變量應該在首次使用的位置附近進行聲明和定義。

他還建議讓變量保持儘可能短的時間,並儘量縮小範圍。

對我來說,重要的是下面的命名約定(Sun的Java代碼規範被廣泛使用)。至於他們在哪裏首先聲明,我耽誤報關儘可能性能方面的原因(聲明你可能不會使用VAR是種浪費)。除非你事先知道它要使用肯定的,在這種情況下,你可以與其他增值經銷商,以提高可讀性組吧。我認爲這是what JCC says about it

1

對於代碼可讀性我發現在塊的開頭聲明變量是最好的選擇。
當通過代碼時,你總是知道在哪裏尋找聲明,而不必在各行代碼之間查找。查看一個方法首先查看聲明的變量,然後查看代碼也更好。我認爲它就像烹飪書中的配方,列出了與配方說明分開的必需配料。

至於性能我看不出這會有什麼區別。雖然聲明遲到可能會通過在塊末尾需要時創建變量來節省內存的增加,但如果您在塊的開頭聲明,則會使用相同數量的內存。

容易出錯我會說是和可讀性一樣的原因。

聲明所需的最小範圍並在塊的開頭聲明。

1

我認爲'代碼可讀性'是唯一重要的一點。如果將變量聲明爲更接近它們的使用位置,那麼代碼肯定更具可讀性。

但是,有時,爲了防止新程序員在語言之間轉換的「錯誤」,可以採用特定類型的編碼方法。例如,JavaScript具有功能範圍確定功能,而Java具有功能塊範圍確定功能。如果她不瞭解JavaScript的功能範圍,Java程序員可能會遇到JavaScript問題。因此,如果使用JavaScript,爲了避免潛在的錯誤,建議在函數/方法的開頭聲明所有內容。

就像我上面提到的,'表演'不應該成爲一個問題。但是,如果您選擇將變量更接近它們的使用位置,它可能有助於減少變量的聲明和初始化成本。

0

問得好Javanator,按我的分析

代碼的可讀性:

很好的做法,在方法聲明變量開始,因爲易於維護,並減少混亂。

性能:

案例1:

如果我們在聲明變量的方法,並開始有法陳述數以百計的,最後我們需要10個變量之前50個語句不必要地佔用內存的那些變量。

如果我們需要在方法20個變量,我們在年初宣佈,如果我們一開始就聲明不必要地佔用內存得到任何異常。

的情況下2:

如果我們聲明,我們需要它提供更多的性能變量。

+1

如果你需要在一個函數變量如此巨大的金額,然後它是不會輕易可讀的任何一種方式,無論他們宣佈,我會說。 – paulm 2013-05-23 11:00:21

相關問題