2011-08-25 27 views
20

Kullanacağım birden çok "uygulama" ile büyük bir web projesine omurga uygulamanıza çalışıyorum ve dosyalarımı düzenlemenin iyi bir yolunu bulmaya çalışıyorum. Ben şimdiye kadar ile geldim iki şunlardır: o web sitesinin bölümleri arasında daha net çizgileri vardır ve birlikte uygulamaların saklandığı ama ben ikincisi doğru eğilimOmurga dosyalarınızı nasıl düzenlersiniz?

js 
+- models 
| +- search 
| | +- result.js 
| | +- ... 
| +- cart 
| | +- item.js 
| | +- ... 
| ... 
+- collections 
| +- search 
| | +- results.js 
| | +- ... 
| +- cart 
| | +- items.js 
| | +- ... 
| ... 
+- views 
| +- search 
| | +- resultRow.js 
| | +- ... 
| +- cart 
| | +- itemRow.js 
| | +- ... 
| ... 
+- routers 
| +- search 
| +- cart 
| ... 

Ve

js 
+- search 
| +- models 
| | +- result.js 
| | +- ... 
| ... 
| +- collections 
| | +- results.js 
| | +- ... 
| ... 
| +- views 
| | +- resultRow.js 
| | +- ... 
+- cart 
| +- models 
| | +- item.js 
| | +- ... 
| ... 
| +- collections 
| | +- items.js 
| | +- ... 
| ... 
| +- views 
| | +- itemRow.js 
| | +- ... 
+- routers 
| +- search 
| +- cart 
| ... 

arka uç çerçevenin şu anki yapımız, eskiden olduğu gibi.

+0

Modelleri ve koleksiyonları bir klasöre koyun, sonuç.js ve result_collection.js adını verin. – Vojto

cevap

21

İkinci olarak değiştirilmiş bir sürümüyle giderim ... temel olarak, site bölümlerinizin her birinde m, v ve c için klasörleri bırakın. Dosya isimleri ve sınıf isimleri halihazırda ne olduklarını yansıtacağı zaman bunları alt klasörlere ayırmaya gerçekten gerek yoktur. Bu düzen bakarak

js 
+- search 
| +- result.js 
| +- results.js 
| +- resultRow.js 
| +- ... 
+- cart 
| +- item.js 
| +- items.js 
| +- itemRow.js 
| +- ... 
+- routers 
| +- search 
| +- cart 
| ... 

, ben hala "öğe" bir model olduğunu biliyoruz, "öğeler" bir koleksiyon ve sizin kurdunuz kongre çünkü "itemRow" bir görünümdür. Ekstra katman klasör katmanı eklemek, sadece karmaşıklığı arttırır ve hiçbir değer katmaz.

ayrıca - (muhtemelen bunu biliyorsunuzdur, ancak bu yazıyı okuyan başkaları bunu yapmıyorsa ...) tüm js'lerinizi dağıtmadan önce tek bir dosyada birleştirmek/küçültmek için require.js gibi bir şey kullandığınızdan emin olun. üretim ortamlarınız. Kodun bu şekilde düzenlenmesi, geliştirme ve hata ayıklama amaçları için harikadır. Ancak, bir üretim sisteminin kodu kullanması zamanı geldiğinde, birden fazla dosyaya bölünmesi, son kullanıcı için önemli gecikmelere neden olur. require.js, dev iş sırasında hem organize edilmiş dosyalara hem de üretim için tek bir küçültülmüş dosyaya sahip olmanın kolay bir yolunu sağlayarak bu sorunu çözmektedir.

+1

Yea, tüm js dosya isteklerini iletmek için .htaccess kurallarını kullanan özel bir sunucu tarafı paketleyicisi kullanıyoruz. Ardından, dosyaları birlikte paketliyor ve bağımlılıkları daha sonra çevreye bağlı olarak küçültülüp küçültülmeyeceğine karar veriyor. Yeni bir itme yeni bir önbellek anahtarı üretene kadar önbelleğe alınmış sunucu tarafı ve istemci tarafıdır (bu önbellek anahtarı geçerli saat olarak geçersiz kılınır). – JaredMcAteer

+0

Js'yi başka hangi alternatiflere göre önerirsiniz? sadece tüm dosyaları tek bir dosyaya paketlemek için (isteğe bağlı olarak minified) – Samson

+0

Bunun için Grunt.js'yi kullanıyorum. Bu harika. :) http://gruntjs.com –