Nie jestem w 100% pewien co do pozytywów. Oto kilka negatywów
Często kończy się dodawanie zależności do serwerów / punktów końcowych innych firm, które mogą nie być stabilne.
Zdarzyło mi się z altaną, że repozytorium niektórych zależności zostało usunięte lub przeniesione. Tak więc pojawia się nowy programista, klonuje moje repozytorium, pisze bower install
i wyświetla błędy dla niedostępnych repozytoriów
. Jeśli zamiast tego zarejestrowałem w repozytorium kod innej firmy, problem zniknie.
Zostało to rozwiązane, jak sugeruje OP, jeśli wyciągasz depresje z kopii przechowywanych na uruchomionym serwerze.
Trudniej dla noobów.
Pracuję ze studentami sztuki z bardzo małym doświadczeniem z linii poleceń. Tworzą sztukę dzięki Processing, arduino, Unity3D i radzą sobie z bardzo małą wiedzą techniczną. Chcieli użyć napisanego przeze mnie HTML5 / JavaScript. Kroki z powodu altany
- Pobierz Zip repo z github (uwaga znajduje się po prawej stronie każdego repo w github. Ponieważ nie znają git)
- Pobierz i zainstaluj węzeł (abyśmy mogli uruchomić npm, aby zainstalować altanę)
- Zainstaluj git lub msysgit (ponieważ bower tego wymaga i nie jest zainstalowany na komputerach wielu uczniów)
- Zainstaluj altanę (
npm install -g bower
)
bower install
(wreszcie, aby uzyskać nasze zależności)
Kroki 2–5 można usunąć, jeśli tylko zarejestrujemy pliki w naszym repozytorium github. Te kroki prawdopodobnie brzmią bardzo łatwo dla ciebie i dla mnie. Uczniowie byli bardzo zagubieni i chcieli wiedzieć, jakie są wszystkie kroki i po co są, co może być dobrą nauką, ale jest całkowicie ortogonalne w stosunku do tematu zajęć i dlatego prawdopodobnie szybko zapomniane.
Dodaje kolejny krok podczas ciągnięcia.
Zdarzyło się to wiele razy, git pull origin master
a następnie testowałem swój kod, a zapamiętanie go wymagało pisania bower install
od 5 do 10 minut, aby uzyskać najnowsze informacje. Jestem pewien, że łatwo to rozwiązać za pomocą haka do ściągania skryptów.
Utrudnia to rozgałęzianie gita
Jeśli 2 gałęzie mają różne obciążenia, to jesteś zepsuty. Podejrzewam, że możesz pisać bower install
po każdym git checkout
. Tyle o szybkości.
Co do twoich pozytywów, myślę, że są przeciwne przykłady dla każdego z nich
Ułatwia proces dystrybucji i importowania współdzielonych modułów, zwłaszcza aktualizacji wersji.
vs co? Z pewnością nie jest łatwiej go rozpowszechniać. Wykonanie jednego repo zamiast 20 nie jest łatwiejsze i bardziej prawdopodobne jest, że się nie powiedzie. Zobacz # 1 powyżej
Usuwa współdzielone moduły z kontroli źródła, przyspieszania i upraszczania operacji pobierania / rejestrowania (w przypadku aplikacji z ponad 20 bibliotekami jest to prawdziwy czynnik).
I odwrotnie, oznacza to, że jesteś zależny od innych poprawek. Oznacza to, że jeśli twoi deps pobierają ze źródła zewnętrznego i potrzebujesz naprawionego błędu, musisz poczekać, aż zastosują łatkę. Co gorsza, prawdopodobnie nie możesz po prostu wziąć żądanej wersji plus łatki, musisz wziąć najnowszą wersję, która może nie być wstecznie kompatybilna z twoim projektem.
Możesz rozwiązać ten problem poprzez oddzielne klonowanie repozytoriów, a następnie wskazywanie zależności projektu od kopii. Następnie zastosujesz poprawki do swoich kopii. Oczywiście możesz to zrobić, jeśli po prostu skopiujesz źródło do repozytorium
Umożliwia większą kontrolę lub świadomość, jakie biblioteki stron trzecich są wykorzystywane w Twojej organizacji.
To wydaje się dyskusyjne. Wystarczy, że deweloperzy umieszczą biblioteki stron trzecich we własnym folderze <ProjectRoot>/3rdparty/<nameOfDep>
. Równie łatwo jest zobaczyć, jakie biblioteki lib osób trzecich są używane.
Nie twierdzę, że nie ma pozytywów. Ostatni zespół, w którym byłem, miał> 100 oddziałów 3rd party. Po prostu wskazuję, że to nie wszystkie róże. Na przykład oceniam, czy powinienem pozbyć się altany na własne potrzeby.