MVC

2012-05-25 19 views
6

'u kullanarak bir javascript uygulamasında özel dosyalar nasıl düzenlenmelidir MVC (örneğin omurga) kullanarak dosyaları/yönetmenleri büyük bir web uygulamasında nasıl düzenleyeceğiniz hakkında fikrinizi bilmek istiyorum.
Aşağıdakileri yaparım (*). Lütfen bana fikrini söyle.MVC


(*)

js 
js/models/myModel.js 
js/collections/myCollection.js 
js/views/myView.js 
spec/model/myModel.spec.js 
spec/collections/myCollection.spec.js 
spec/views/myView.spec.js 

cevap

3

Bu şimdiye geleneksel olarak dosyalarımı organize ettik nasıl. Bununla birlikte, daha büyük uygulamalarla, herşeyi ayrı ayrı organize etmek için gerçekten bir acıya dönüştüğünü buldum. Bu konuda gittiğim 'yeni' bir yol dosyalarımı değil, özellik olarak düzenliyor. Yani, örneğin:

js/feature1/someView.js 
js/feature1/someController.js 
js/feature1/someTemplate.html 
js/feature1/someModel.js 

Ama çoğu zaman siz "kullanıcı" ya da kullanıcı inşa etti yerlerin bir koleksiyonu gibi, gerek "şeyler" küresel vardır. Yani: o zaman özellik setleri, paketin üzerinde çalışmak ve onları daha az eforla requirejs kullanarak dağıtabilir çünkü

js/application/model/user.js 
js/application/collection/location.js 

Bu desen bana önerildi. Ayrıca, özellik kümeleri arasında meydana gelen bağımlılık olasılığını da azaltır, böylece bir özelliği kaldırmak veya yeni bir kodla güncelleştirmek isterseniz, her dosya için avlanmak yerine bir 'şeyler' klasörünü değiştirebilirsiniz. Ayrıca, IDE'lerde, üzerinde çalıştığınız dosyaları bulmak daha kolay hale getirir.

İki sent'im.

Düzenleme: Özellik dosyaları nedir?

Bazı düşünceler - sadece size en doğal görünen birini seçmeniz gerektiğini düşünüyorum.

  1. Özellik dosyalarıyla aynı 'özellik klasörü' desenini takip edebilirsiniz. Tüm özelliklerin tek bir yerde olması, yukarı doğrudur. Olumsuz olan şu ki, şu anda yaptığınız gibi, bir özelliğin dosyaları için yer var.
  2. Özelliklere, özellik klasörünün 'spec' klasörüne yerleştirebilirsiniz. Bunun tersi, artık tek bir zip dosyasında başka işlere rastlanma şansı olmayan gerçek paketlere sahip olmanızdır. Testleri yazmak için doğrudan ilgili dosyaları bulmak da daha kolay - hepsi aynı üst klasörde. Dezavantajı şu ki, üretim kodunuz ve test kodunuz aynı klasörde (muhtemelen) dünyaya yayınlanıyor. Muhtemelen üretim javascript bir noktada bir dosya aşağı derleme sonunda verilecektir .. bu yüzden bu kadar bir sorun değil emin değilim.
  3. Öneri - bu büyük bir uygulamasa ve dosyalara dokunan birkaç eliniz olacaksa, klasörde bir 'package.json/yml/xml' dosyası gibi bir şey bırakın. Orada, test için ihtiyaç duyduğunuz üretimi, spesifikasyonu ve veri dosyalarını listeleyebilirsiniz (büyük ihtimalle sizin için bunu yapmak için hızlı bir kabuk komut dosyası yazabilirsiniz). Sonra 'package.whateverYouChose' dosyaları için kaynak klasörünüze göz atmak, test dosyalarını almak ve ardından birim test sayfanızı oluşturmak için hızlı bir komut dosyası yazın. Yani, başka bir paket eklediğinizi varsayalım .. 'updateSpecRunner' komutunu çalıştırın ya da betiği adlandırdığınız her şey varsa, size başka bir SpecRunner.html dosyası (ya da dosyaya hangi özellikleri eklediğinizi isimlendirirseniz) oluşturur. Ardından, bir tarayıcıda manuel olarak test edebilir veya phantomjs/rhino kullanarak otomatikleştirebilirsiniz.

Bu mantıklı mı?

+0

Özellik dosyaları nedir? – js999

+0

Cevabımı sadece bir dakika içinde güncelleyeceğim. – Stephen

+0

teşekkürler, kabul etmeden önce asnwer çalışacağım ... +1 zamanın için teşekkürler – js999