Patrząc na popularne projekty open source, które przychodzą na myśl, nie widzę wzmianki o żadnym folderze „contrib”:
- jQuery ,
- Ekspresowe ,
- Sass ,
- mNIEJ ,
- MongoDB ,
- Redis ,
- Marionetka ,
- Szef kuchni
- NUnit ,
- Ruby on Rails ,
- Laravel ,
- Jenkins ,
- Clojure ,
- Ruby .
Jedynym, który ma folder „contrib” jest Django. W przypadku Django rola tego folderu została już wyjaśniona w dokumentacji :
Django dąży do przestrzegania filozofii Pythona „dołączone baterie”. Dostarczany jest z szeregiem dodatkowych, opcjonalnych narzędzi, które rozwiązują typowe problemy z tworzeniem stron internetowych.
Ten kod znajduje się w django/contrib
dystrybucji Django. Ten dokument zawiera podsumowanie pakietów w contrib, wraz z wszelkimi zależnościami, jakie mają te pakiety.
Rozdział 16 Księgi Django zawiera bardziej szczegółowy opis roli tego katalogu i spis treści.
Innym przykładem jest Solr . Dzięki gitstats
możemy uzyskać statystyki dotyczące autorów.
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%
Następnie możemy wybrać tylko contrib
katalog, uruchamiając:
git filter-branch --subdirectory-filter solr/contrib --prune-empty
i uzyskaj statystyki jeszcze raz:
Robert Muir 19.62%
Steven Rowe 8.87%
Mark Robert Miller 8.33%
Uwe Schindler 8.06%
James Dyer 7.80%
Zatem najlepsi autorzy są praktycznie tacy sami, co oznacza, że nie są to wypowiedzi osób postronnych. Patrząc na katalogi w contrib
folderze, wydaje się, że po raz kolejny są to „różnorodne dodatkowe, opcjonalne narzędzia”, dokładnie tak jak w Django. Na przykład nie potrzebujesz modułu obsługi żądania importu danych, aby Solr działał, ale jeśli chcesz importować dane z bazy danych lub XML, dobrze jest mieć je w contrib
folderze. To samo dotyczy zmniejszania mapy, niekoniecznie będziesz jej potrzebować, ale są przypadki, w których to robisz.
Czy to są wtyczki lub dodatki? Nie użyłbym tego terminu. Wtyczki i dodatki mają specyficzną integrację z główną aplikacją. Na przykład wtyczka nie powinna działać autonomicznie, ale będzie hostowana w głównej aplikacji. Z drugiej strony contrib
zawiera narzędzia, które prawdopodobnie mogą działać samodzielnie.