Ostatnio starszy programista, z którym współpracuję, uzasadnił wymóg, aby programiści otrzymali najnowszą wersję i skompilowali w ramach swojego projektu dużą bibliotekę wewnętrzną. Stoi to w sprzeczności z argumentem licznika, że zespoły projektowe powinny pracować nad stabilną wersją, którą otrzymują z wewnętrznego repozytorium Maven, do którego programista argumentował, że udostępnienie kodu źródłowego na komputerach programistów pozwala zaoszczędzić czas, ponieważ mogą czytać źródła bibliotek kod określający, czy wymagana funkcjonalność jest dostępna.
Czy starszy programista ma ważny argument? Czy też wymaganie od programistów czytania kodu źródłowego bibliotek jest sprzeczne z podstawową filozofią enkapsulacji, a nawet posiadania biblioteki na pierwszym miejscu?
źródło
Sugestia brzmi:
Możesz zrobić alternatywną sugestię
źródło
Nie kupiłbym argumentu, że możliwość lokalnego przeglądania źródła jest zaletą, ale jeśli biblioteka jest w fazie aktywnego rozwoju (być może w celu dodania wsparcia dla potrzeb twojego projektu), to nie sądzę, aby wymaganie od programistów często pobieraj aktualizacje (prawdopodobnie kilka razy dziennie). Wydaje mi się, że lepiej jest udostępnić skompilowany (i przetestowany jednostkowo) plik binarny zamiast wymagać od programistów kompilacji ze źródła.
Czy masz możliwość skonfigurowania w swoim projekcie pewnego rodzaju wspólnego repozytorium, w którym dostępna byłaby najnowsza skompilowana wersja? Idealnie byłoby, gdybyś potrzebował serwera CI, który pobierał i budował zgodnie z harmonogramem, ale nawet jeśli jest to tylko zasób sieciowy, który jeden z kierowników zespołu jest odpowiedzialny za okresową aktualizację, może to pomóc. Oczywiście powinno to znajdować się na tabliczce zespołu bibliotecznego, ale oczywiście nie są zainteresowani, więc musisz podnieść luz.
źródło
Pracowałem dla dużej firmy programistycznej, która stale „karmiła” swoim własnym oprogramowaniem wewnętrznymi systemami biznesowymi.
Postrzegali to jako kolejny poziom testowania.
Z czym się zgadzam, dla firmy, to dobra rzecz.
Myślę, że zmuszanie cię do pobrania i skompilowania najnowszej wersji jest krokiem za daleko, chyba że krok kompilacji jest ważną częścią Twojej firmy oferującej sprzedaż lub nawet outsourcing biblioteki.
źródło
Chociaż dostępność kodu źródłowego może być korzystna, jeśli masz agenta kompilacji CI monitorującego repozytorium, rozsądniej jest, aby agent ten skompilował tę bibliotekę i skopiował ją do zależnych projektów jako zewnętrzną, niż wymagać od programistów uruchom dwa różne kroki kompilacji podczas budowania ich kopii.
Obecnie pracuję nad projektem, który nie jest podłączony do agenta kompilacji, który wymaga zbudowania podaplikacji przed zbudowaniem głównej aplikacji. To poważny ból w moim odcinku tylnym; aby dokonać zmiany w pod-aplikacji, muszę najpierw skompilować cały projekt, a następnie przejść do folderu pod-kompilacji, pobrać z niego skompilowany produkt i skopiować go do innego podfolderu przed zbudowaniem całego projektu PONOWNIE aby upewnić się, że najnowsza wersja podaplikacji jest uwzględniona w kompilacji głównej aplikacji. To NIE jest tak, jak należy to zrobić; przynajmniej powinien istnieć skrypt MSBuild, który zautomatyzuje ten proces, i wolałbym, aby agent kompilacji aktualizował zewnętrzne, ilekroć nowy kod jest przypisany do pnia.
źródło
Ponieważ tak wiele osób odpowiedziało, że nie ma sensu, aby wszyscy budowali bibliotekę wewnętrzną, przedstawię przeciwny punkt widzenia, który mógłby uzasadnić powody:
Często korzystasz z biblioteki i nie ma dokumentacji. Więc każdy powinien mieć źródło w celach informacyjnych. Jeśli jest to biblioteka, która jest bardzo często używana, przydatne może być posiadanie podręcznego podręcznika
Kiedy ludzie zaczynają pisać własny kod, który zależy od biblioteki i coś w bibliotece nie działa, zamiast wyrzucać ręce w powietrze, jeśli biblioteka jest budowana lokalnie, bardzo łatwo jest wejść bezpośrednio do kodu biblioteki
Nie twierdzę, że jego decyzja jest uzasadniona, po prostu wskazuję, że a) pytanie zadało jedną stronę historii ib) mogły istnieć prawdopodobne motywy.
źródło
Tego rodzaju testy byłyby rzeczywiście lepsze. Rzecz w tym, że powinni to robić testerzy, a nie programiści . W tym sensie nie jest to ani praca twoich, ani twórców bibliotek.
Z tego, co opisujesz, wygląda na to, że w projekcie nie ma testerów - jeśli tak jest, to jest to problem zarządzania i dość poważny.
Dość kiepskie rozumowanie. Kiedy najnowsza wersja biblioteki nie może się skompilować z najnowszym projektem wersji, może to być wiele różnych przyczyn - po prostu wczytywanie kodu źródłowego lib może być stratą czasu.
Niezależnie od przyczyny, wstępna analiza awarii oznaczałaby marnowanie czasu programisty na pracę, która powinna zostać wykonana przez testerów.
Kolejną rzeczą nad brakami w rozumowaniu są nieuniknione (i dość bolesne z mojego doświadczenia) straty produktywności, które następują, gdy trzeba przerwać przepływ , przełączając się między działaniami rozwojowymi a kontrolą jakości.
Gdy w zespole są testerzy, takie rzeczy są naprawdę proste i można z nimi łatwiej sobie poradzić. To, co rzucił na ciebie „starszy” programista, jest w zasadzie wymogiem testowania.
Kroki, które należy wykonać, to typowe działania związane z kontrolą jakości: wyjaśnienie szczegółów wymagań, zaprojektowanie sformalizowanego scenariusza testowego, negocjowanie sposobu postępowania w przypadku niepowodzenia testów.
źródło
To, co sugeruje Sr Dev, nie ma dla mnie żadnego sensu. Miło jest móc przeglądać źródła, ale są na to lepsze sposoby.
Z jakiego repozytorium artefaktów korzystasz? Powinieneś być w stanie wdrożyć jar jar dla każdej wersji, aby żyć obok skompilowanej biblioteki. Większość IDE pozwoli ci wtedy dołączyć to do skompilowanej biblioteki do przeglądania źródeł. Eclipse z wtyczką Maven zrobi to automatycznie.
Jeśli potrzebujesz najnowszego kodu, możesz po prostu wdrożyć migawki wersji.
źródło
Powinno to po prostu nastąpić w skrypcie kompilacji:
Nie rozumiem, dlaczego i jak to jest problem. Również gdy czegoś brakuje w referencji, możesz dodać to do źródeł i wcisnąć zmiany. Oczywiście może wydawać się trochę przerażające, że biblioteka może zmienić się tuż pod twoimi stopami, ale jeśli opiekunowie biblioteki wykonują swoją pracę właściwie, to dobrze.
źródło