2012-01-01 99 views
2

我知道這並不重要,但我只是很好奇人們如何命名他們的模型/集合/視圖/路由器功能。什麼是backbone.js命名約定?

+0

骨幹命名約定一個很好的資源可以在這裏找到:http://ricostacruz.com/backbone-patterns/#conventions – Andrew 2014-10-03 18:50:03

回答

3

這一切都取決於模型,集合等代表什麼以及它們如何在結構上使用。

我通常給我的模型的通用名稱,然後後綴所有其他人與他們的構造類型

例:

// model 
var Animal = Backbone.Model.extend({});.... 
// collection 
var AnimalCollection = Backbone.Collection...... 
// view 
AnimalView = Backbone.View.extend(){}).... 

現在,你可以簡單地傳遞它的模型和其他創建一個新的動物圖閱讀你的代碼的人可以很容易地理解模型代表什麼。

var view = new AnimalView({ model: new Animal({name: 'Tiger'}); 

當然,你可以隨時後綴的機型字模式爲好,但我認爲它說不夠好,沒有它,因爲一個模型代表了性能不是某種觀點或簡單的平面物體對象的集合。

+1

我同意這是可讀的,但我不喜歡所有打字集合那mutch :)爲什麼不使用動物,動物和AnimalView?我保持查看主要是因爲模型/集合可以有多個視圖,AnimalListView AnimalDetailView等,但集合往往是1大池,如果我有超過1集合的同一對象(這是相當經常),他們是通常包含在父模型中,然後他們獲得專有名稱,例如Animals和myPets。 – Sander 2012-01-02 09:40:06

+0

我不喜歡使用複數版本,因爲它很容易在模型中添加額外** s **或在集合中留下一個,從而導致令人討厭的錯誤。您也可以將Collection縮寫爲Col。 :P – Trevor 2012-01-02 13:40:32

3
  • 所有集合名稱複數莫名其妙地像人/門/門欄。
  • 類以大寫開頭,實例使用駱駝/下劃線。
  • 不要在名稱中包含單詞模型,集合等。
  • 將所有內容放入一個名爲c,m,r,v的哈希函數中,該函數有益於迭代。
var c.People = Backbone.Collection.extend(); 
var c.people = new c.People(); 

var m.Person = Backbone.Model.extend(); 
var m.person = new m.Person(); 
相關問題