2011-10-28 61 views
1

在ExtJS中命名自定義屬性的最佳做法是什麼? 在名稱前加下劃線是一個好主意嗎?ExtJS中的自定義類屬性

Ext.create("Ext.Window,{ 
    height:50, 
    _custom:"xxx", 
    _action:"yyyy" 
}); 

另一個想法是使用data_中前綴模仿HTML5自定義屬性約定。

回答

0

我決定使用_作爲自定義變量的前綴。這是因爲:

  • 它防止任何衝突
  • 自我記錄
  • 它是一個用戶友好的

這將是更好,如果煎茶使用的一種機制,以防止混淆。

4

我個人不喜歡攜帶額外的句法信息(Bob大叔致力於全斷面這一原則在http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882)變量名什麼,更不用說醜陋的代碼它產生(例如mywindow._custom)。

我只是給你的變量描述性的名稱,然後你的代碼會更好地閱讀,你不應該擔心與Ext屬性的碰撞(如果你擔心)。

我喜歡這個好多了:

Ext.create("Ext.Window,{ 
    height:50, 
    customNameOfSomething:"xxx", 
    actionToPerform:"yyyy" 
}); 
+0

你的意思是說W3C在引入數據pripe和在其他編程語言中的命名空間技術是沒用的嗎? – PHPst

+0

我會說他們的錯誤是不支持自定義屬性開始。 –

0

你要記住,你的設計可能會被其他人使用的自定義屬性。這意味着它必須描述其行爲。這是最重要的。使用_非常罕見,對於使用代碼的開發人員來說並不是很自然,所以它必須是用戶友好的。

+0

那麼我們如何才能防止碰撞? – PHPst

+0

我猜布萊恩回答你的問題。 :) –

1

與其他人一致,並補充說下劃線在大多數語法中或多或少都是私有變量的可接受標準(雖然Ext JS本身並未使用它,並通過註釋或私有變量標記爲私有變量按照慣例)。如果你堅持選擇一些約定,我肯定會選擇其他方式來命名公共配置,儘管我同意其他人可能沒有必要。我猜想,在大多數實際情況下,你的自定義屬性不會像通用性那樣衝突(如果是的話,你可能會選擇不好的名稱作爲你添加的內容)。