Akla gelen popüler açık kaynaklı projelere baktığımda, herhangi bir “katkı” klasöründen bahsetmiyorum:
- jQuery ,
- Express ,
- Sass ,
- AZ ,
- MongoDB ,
- Redis ,
- kukla ,
- Şef
- Birim ,
- Ruby on Rails ,
- Laravel ,
- Jenkins ,
- Clojure ,
- Ruby .
"Katkı" klasörü olan tek kişi Django. Django için bu klasörün rolü belgelerde zaten açıklanmıştır :
Django, Python'un “pilleri dahil” felsefesini takip etmeyi amaçlar. Sık karşılaşılan Web geliştirme sorunlarını çözen çeşitli isteğe bağlı araçlarla birlikte gelir.
Bu kod django/contrib
Django dağıtımında bulunur. Bu belge, bu paketlerin sahip olduğu bağımlılıklar ile birlikte, katkıda bulunan paketlerin bir özetini vermektedir.
Django Kitabının 16. Bölümü , bu dizinin rolünün ve içindekiler listesinin daha ayrıntılı bir açıklamasını içerir.
Başka bir örnek Solr . İle gitstats
, yazarlar hakkında istatistikleri alabilirsiniz.
Robert Muir 22.09%
Michael McCandless 13.60%
Mark Robert Miller 9.73%
Uwe Schindler 8.17%
Yonik Seeley 5.56%
Steven Rowe 5.55%
Sonra contrib
çalıştırarak sadece dizini seçebiliriz :
git filter-branch --subdirectory-filter solr/contrib --prune-empty
ve istatistikleri bir kez daha elde et:
Robert Muir 19.62%
Steven Rowe 8.87%
Mark Robert Miller 8.33%
Uwe Schindler 8.06%
James Dyer 7.80%
Bu yüzden en iyi yazarlar pratik olarak aynıdır, yani bunlar yabancıların katkıları değildir. contrib
Klasör içindeki dizinlere baktığımızda, bir kez daha, bunların Django'da olduğu gibi “çeşitli ekstra, isteğe bağlı araçlar” olduğu anlaşılıyor. Örneğin, Solr'ın çalışması için Veri İçe Aktarma İsteği İşleyicisine ihtiyacınız yoktur, ancak veritabanından veya XML'den veri almak istiyorsanız, contrib
klasörde olması çok güzel . Harita azaltma için aynı, mutlaka gerekmeyebilir, ancak yaptığınız durumlar vardır.
Bu eklentiler veya eklentiler mi? Bu terimi kullanmam. Eklentiler ve eklentiler, ana uygulama ile belirli bir entegrasyona sahiptir. Örneğin, bir eklentinin bağımsız çalışması beklenmez, ancak ana uygulamada barındırılır. Öte yandan, contrib
muhtemelen bağımsız çalışabilen araçlar içerir.