Tavsiyem, çeşitli çerçeveler veya motorlar indirmek ve dev geliştirme ekiplerinin klasör düzenini nasıl ele aldığını görmek.
Dosyaları organize etmenin daha iyi bir yolu vardır, birini seçmek daha iyi olur ve herhangi bir projede buna bağlı kalmaya çalışır. Hataları önlemek ve gereksiz zaman kaybetmemek için tamamlanana veya yenilenene kadar belirli bir konvansiyona sadık kalın.
Web projeleri için, çalışan bir klasör düzenine sahip olması için Laravel, Symphony veya Codeigniter çerçevelerini indirebilirsiniz.
Bu yüzden, herhangi bir geliştirme için ortak olan bir klasör düzenini aktarmaya çalışacağım:
MVC (Model View Controller) iyi bir organizasyon paradigması verir.
Kök kaynak kodu src (C ++) veya uygulama (web geliştirme) olabilir
Gruplandırdığı sınıflar için net bir amacı olmayan bir dosya yapısı kesinlikle karışıklığa neden olacaktır. Sadece kod organize etmekle kalmaz, aynı zamanda otomatik yükleyicileri, sınıf fabrikasını koruyabilir, yerel depolamayı, uzak depolamayı ve ad alanını kaldırabilir.
Bu klasör yapısı Laravel Framework'ten türetilmiş ve sadeleştirilmiştir . Bu yazıdaki tercihim çoğul adlandırma ama projelerimde tekil kelimeler kullanıyorum.
src / storage (modeller / dosya depolama / api / mysql / sql-lite / memcached / redis uygulamaları)
src / repositories (Bazı depolama mantığına sahip bir 'depolama uygulamaları' paketi, ortak bir arayüz ve iade sonucu sözleşmesi.)
src / hizmetler | mantık | varlıklar (Uygulama iş mantığı)
src / controllers (Web geliştirmesinde, sunucu isteklerini hizmetlerinize yönlendirmek için kullanılır)
src / modüller | sistemler (çerçeve genel işlevselliğinizi genişleten modüler sistemler. Hizmetler modülleri kullanabilir ancak viceversa'yı kullanamaz)
src / helpers (Örneğin. string manipülasyon gibi yardımcı veya sarmalayıcı sınıflar. Çoğu zaman bu üçüncü şahıslarda libs | vendor'da olabilir)
src / types (Adlı numaralar)
kamu | inşa etmek | çıktı (web veya c ++)
config (Kurulum dosyaları. YAML platformlar arası config dosyaları için popüler hale geliyor)
önbellek
kütükler
lang (en / es / ru / ...)
bootstrap (Çerçeveyi ve uygulamayı başlatır)
docs (Belge işaretleme biçiminde yazılmış belgeler.
testler (Birim testi)
veritabanı / geçişler (Sıfırdan veritabanı yapısı oluşturun)
veritabanı / tohumlar (Veritabanınızı test etmek için sahte verilerle doldurur)
lib'ler | satıcı (tüm üçüncü parti yazılımlar. C ++ 'libs' ve genellikle php'de 'satıcı')
varlıklar | kaynaklar (görüntüler / sesler / scriptler / json / herhangi bir medya)