AngularJS Klasör Yapısı [kapalı]


186

Büyük ve ölçeklenebilir bir AngularJS uygulaması için bir klasör yapısını nasıl düzenlersiniz?


Yanıtlar:


251

resim açıklamasını buraya girin

Türe Göre Sırala

Sol tarafta, türe göre düzenlenmiş bir uygulama var. Küçük uygulamalar için çok kötü değil, ancak burada bile aradığınızı bulmanın daha zor olduğunu görmeye başlayabilirsiniz. Belirli bir görünümü ve denetleyicisini bulmak istediğimde, bunlar farklı klasörlerde. Eğer kodu başka nasıl düzenleyeceğinizden emin değilseniz buradan başlamanız iyi olabilir, çünkü sağdaki tekniğe geçmek oldukça kolaydır: yapıya göre.

Özelliğe Göre Sırala (tercih edilen)

Sağda proje özelliğe göre düzenlenmiştir. Düzen görünümlerinin ve denetleyicilerinin tümü düzen klasörüne, yönetici içeriği yönetici klasörüne ve tüm alanların kullandığı hizmetler hizmetler klasörüne gider. Buradaki fikir, bir özelliğin çalışmasını sağlayan kodu ararken, tek bir yerde bulunmasıdır. Hizmetler, birçok özelliğe “hizmet verdiği” için biraz farklıdır. Uygulamam benim için yönetilmesi çok daha kolay hale geldiğinden şekil almaya başladığında bunu beğendim.

İyi yazılmış bir blog yazısı: http://www.johnpapa.net/angular-growth-sttruc/

Örnek Uygulama: https://github.com/angular-app/angular-app


22
gönderdikten hemen sonra kendi sorunuzu cevaplıyor musunuz?
Jakub

34
@ Jakub Soruyu oluştururken "wiki'ye katkıda bulunan kendi sorunuzu cevaplayın" adlı bir seçenek var.
Michael J.Calkins

3
@MichaelCalkins, fikri beğendim. Ben de youtube tuts bazı açısal da kontrol, güzel
Ronnie

5
@Ronnie Sadece AngularJS için en zor öğrenme eğrisi adımlarından biri olduğunu hatırlıyorum bu yüzden umarım insanlara yardımcı olur. Sanırım blogları okuduktan sonra 10 farklı mizanpaj gibi geçtim ve ne değil.
Michael J.Calkins

5
İşte topluluk odaklı angularJS en iyi uygulamalar sayfası. Onların dosya yapısı önerisi, iki örnekte fikirlerinizin bir birleşimidir. Özelliklere göre sıralama fikrinin arkasında olduğu için ikinci örneği daha çok seviyorum.
John

32

Bazı Symfony-PHP, bazı .NET MVC, bazı ROR, birkaç uygulama inşa ettikten sonra, benim için en iyi yolu Yeogular.io AngularJS jeneratör ile kullanmak olduğunu bulduk .

Bu en popüler ve ortak yapı ve en iyi korunur.

Ve en önemlisi, bu yapıyı koruyarak, istemci tarafı kodunuzu ayırmanıza ve sunucu tarafı teknolojisine (her türlü farklı klasör yapısı ve farklı sunucu tarafı şablonlama motorları) agnostik hale getirmenize yardımcı olur.

Bu şekilde, kendinizin ve diğerlerinin kodunu kolayca çoğaltabilir ve yeniden kullanabilirsiniz.

İşte homurdanma yapmadan önce: (ama yeoman jeneratörünü kullanın, sadece yaratmayın!)

/app
    /scripts
            /controllers
            /directives
            /services
            /filters
            app.js
    /views
    /styles
    /img
    /bower_components
    index.html
bower.json

Ve homurdanma yapıldıktan sonra (concat, uglify, rev, vb ...):

    /scripts
        scripts.min.js (all JS concatenated, minified and grunt-rev)
        vendor.min.js  (all bower components concatenated, minified and grunt-rev)
    /views
    /styles
        mergedAndMinified.css  (grunt-cssmin)
    /images
    index.html  (grunt-htmlmin)

1
kod bloğunun yolları konfigürasyonu nerede olmalı? angular.module('myApp').config(function($routeProvider) { ... });
spor

1
+1 Ayrıca, yeoman'ın eşyalarınızı nereye koyacağını da özelleştirebilirsiniz. IMHO, büyük uygulamalarda özellik / modüle göre sıralama daha iyidir, çünkü bir özelliği diğer uygulamalarda daha kolay bir şekilde yeniden kullanabilirsiniz.
Tivie

30

Sevdiğim bu angularjs yapısı hakkında girişi

Angularjs geliştiricilerinden biri tarafından yazıldı, bu yüzden size iyi bir fikir vermeli

İşte bir alıntı:

root-app-folder
├── index.html
├── scripts
   ├── controllers
      └── main.js
      └── ...
   ├── directives
      └── myDirective.js
      └── ...
   ├── filters
      └── myFilter.js
      └── ...
   ├── services
      └── myService.js
      └── ...
   ├── vendor
      ├── angular.js
      ├── angular.min.js
      ├── es5-shim.min.js
      └── json3.min.js
   └── app.js
├── styles
   └── ...
└── views
    ├── main.html
    └── ...

1
Soru klasör yapısı ile ilgilidir ve bağlantı başka şekillerde ilginç olsa da, bu soru için tabloya yeni bir şey getirmez.
JohnC

Bu Yeoman açısal jeneratör tarafından kullanılır
EdgarT

Böylece klasörü komut dosyası türüne göre düzenlediniz.
Tudor

4

Klasörleri çerçevenin yapısına göre değil, uygulamanın işlevinin yapısına göre organize etme yaklaşımı da vardır. Bu adlandırılan gösteren bir github marş Eğik / Express uygulaması yoktur açısal-app .


Bu genellikle çok büyük projeler için daha iyi bir yaklaşımdır. Ne yazık ki hala klasör yapıları ile sıkışmış durumdayız ... etiketleme daha iyi olurdu, bu yüzden çok önemli olmaz ve etiketlere bağlı olarak birden fazla görünüme sahip olabiliriz.
Christophe Roussy

3

Üçüncü angularjs uygulamamdayım ve klasör yapısı her zaman gelişti. Şimdi benimkini basit tutuyorum.

index.html (or .php)
/resources
  /css
  /fonts
  /images
  /js
    /controllers
    /directives
    /filters
    /services
  /partials (views)

Bunu tek uygulamalar için iyi buluyorum. Henüz çoklu projeye ihtiyacım olan bir projem olmadı.


Daha sonra yeni özelliklerin bakımı ve tanıtımı konusunda sorun yaşayacaksınız. Klasörü altında bu özelliğe ilişkin özelliklere ve bileşenlere sahip bir klasör yapısına sahip olmak her zaman iyi bir uygulamadır.
Jaseem Abbas

Angular JS'nin asp.net web projesi veya windows masaüstü uygulaması gibi standart proje klasörü yapısı veya proje şablonu olmadığını düşünüyor muyum?

1
Doğru olan @dotNetBlackBelt. Açısal söz konusu olduğunda standart yoktur. Bunu paylaştığımdan beri, klasörlerimi nasıl ayarladığımda değişiklikler yaptım. Son projem, bu OP'nin en iyi cevabının ne olduğunu az çok gittim
Ronnie
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.