Wiemy, że dobrze jest mieć, ale uważam, że usprawiedliwiam to dla mojego pracodawcy. Zastanów się, dlaczego zespół programistów potrzebuje serwera kompilacji.Dlaczego mój zespół programistów powinien mieć serwer kompilacji?
Odpowiedz
Istnieje wiele powodów, aby używać budowanych serwerów. W szczególnej kolejności i bez mojej wiedzy:
Upraszczasz obieg pracy programistów i zmniejszasz ryzyko pomyłek. Twój serwer kompilacji może zająć się wieloma krokami, takimi jak sprawdzenie najnowszego kodu, zainstalowanie wymaganego oprogramowania itd. Nie ma szans, aby programista miał jakieś zabłąkane pliki DLL na swoim komputerze, które mogą sprawiać, że kompilacja przechodzi lub wydaje się być przypadkowa.
Twój serwer kompilacji może replikować swoje docelowe środowisko (system operacyjny itp.) I nie ma większych szans na pracę na desktopach programistów i przerywanie produkcji.
Mimo że dobrą praktyką dla programistów jest testowanie wszystkiego, co sprawdzają, czasami po prostu nie. Wtedy dobrze jest mieć serwer kompilacji, aby złapać błędy testowe i powiadomić zespół, że produkt jest uszkodzony.
Scentralizowane buduje zapewniają łatwy dostęp do metryk Code - Jakie badania minęło, który nie, jak często, jak dobrze jest kod objęte swoimi testów itp mający solidne zrozumienie stanu jakości kodzie zmniejsza konserwacji oraz testowanie kosztów poprzez dostarczanie w odpowiednim czasie informacji zwrotnej, która pozwala na szybkie i łatwe naprawianie błędów.
Wdrożenie produktu jest uproszczone - programista lub kontrola jakości nie musi pamiętać wielu ręcznych czynności. Może być łatwo zautomatyzowany.
Związek między programistami a kontrolą jakości jest uproszczony. Personel QA może udać się do znanej lokalizacji, aby pobrać najnowsze, dobrze zbudowane wersje.
Łatwo ustawić kompilacje dla gałęzi wydań, zapewniając dodatkową ochronę dla produktów na etapie ich uwalniania, przy dokonywaniu zmian kodu należy zachować szczególną ostrożność.
Aby uniknąć problemu "ale działa w moim pudełku".
Mieć spójne, znane środowisko, w którym zbudowane jest oprogramowanie, aby uniknąć zależności od lokalnych skrzynek dev.
Możesz użyć serwera wirtualnego, aby uniknąć (znacznie) dodatkowych kosztów, jeśli zajdzie taka potrzeba.
JAK NAJSZYBCIEJ wiedzę na temat testów jednostkowych, które obecnie działają, a które nie; Ponadto dowiesz się również, czy jednorazowe testy jednostkowe zaczynają zawodzić.
Powinno to podsumować, dlaczego ważne jest, aby mieć serwer produkcji:
http://www.codinghorror.com/blog/2006/10/the-build-server-your-projects-heart-monitor.html
+1 - Dobry link. Myślę, że dobrze to rozwiązuje. –
Jest to ciągły deska rozdzielcza badanie jakości; pokazuje statystyki dotyczące jakości twojego oprogramowania i pokazuje je teraz. (JUnit, Cobertura)
Daje to pewność, że deweloperzy nie są hamowani przez innych deweloperów przerywających kompilację i zachęca programistów do pisania lepszego kodu. (FindBugs, PMD)
Pozwala to zaoszczędzić czas i pieniądze przez cały rok dzięki lepszemu kodowi od programistów za pierwszym razem - mniej pieniędzy na testowanie i ponowne testowanie - oraz dzięki uzyskaniu większej ilości kodu od tych samych programistów, ponieważ są one mniej prawdopodobnie wzajemnie się potkną.
dwa główne powody, dla których ludzie spoza techniczne mogą odnosić się do:
poprawia produktywność zespołu dev ponieważ problemy zostały zidentyfikowane wcześniej.
To sprawia, że stan projektu jest bardzo oczywisty. Pokazałem mojemu menadżerowi pulpit stanu kompilacji i teraz cały czas go oglądają.
Jeszcze jedno. Coś takiego jak Hudson jest bardzo proste do skonfigurowania - możesz chcieć po prostu uruchomić go gdzieś w kącie, a potem pokazać później.
To jest mój główny argumentem:
- wszystko oficjalnych wydaniach należy budować w kontrolowanym środowisku. Bez wyjątku.
po prostu dlatego, że nigdy nie wiesz, jak programiści tworzą swoje osobiste wydania.
Nie musisz też mówić o serwerze jak "ostrze, które kosztuje rękę i nogę". Pierwszym skonfigurowanym przeze mnie serwerem konfiguracji był komputer stacjonarny, który znajdował się w rogu. Służyło nam to bardzo dobrze przez ponad 3 lata.
Jeden masz swoją maszynę do kompilacji, możesz zacząć dodawać funkcje (Hudson jest świetny) i wdrażać wszystko, o czym wspomniały inne plakaty.
Gdy maszyna kompilacji staje się niezbędna do organizacji (i każdy widzi swoje zalety), będzie można poprosić o nowe błyszczące ostrze jeśli chcesz :-)
Najprostszą rzeczą, jaką możesz zrobić, aby przekonać Twój pracodawca, aby mieć serwer kompilacji, ma mu powiedzieć, że będzie w stanie szybciej zwolnić i uzyskać lepszą jakość .
Szybsze wersje pochodzą z natychmiastowej informacji zwrotnej na temat jakości kompilacji. Jeśli ktoś złamie kompilację, może natychmiast naprawić uszkodzoną kompilację, unikając opóźnień w harmonogramie kompilacji i wydania. Bez serwera kompilacji zespół będzie musiał spędzić czas, próbując znaleźć co i kiedy i jak to naprawić.
Lepsza jakość jest uzyskiwana przez serwer budowania z uruchomionymi narzędziami do wykrywania błędów automatycznie za każdym razem, gdy ktoś przechodzi do systemu kontroli wersji. Nie wspominasz, jaki jest główny język programowania w twojej organizacji, ale takie narzędzia, zaawansowane, ale komercyjne i proste, ale darmowe, istnieją praktycznie dla wszystkich języków. Lint, FxCop, FindBugs i PMD przychodzą na myśl.
Możesz również sprawdzić tę presentation on benefits of continuous integration, aby uzyskać szerszą dyskusję.
- 1. Czy mój ViewModel powinien mieć ObservableCollection widoków lub ViewModels?
- 2. Zespół programistów nie wyświetla się w Xcode
- 3. Dlaczego mój serwer hgweb jest tak wolny?
- 4. Nie powinien dekompresować kompilacji argumentu?
- 5. ASP MVC ChildActionOnly powinien mieć routing
- 6. Jaką rozdzielczość powinien mieć ikona mojego iPhone'a?
- 7. Dlaczego mój serwer Hello World go zostaje zmiażdżony przez ApacheBench?
- 8. Dlaczego mój serwer internetowy w golang nie obsługuje jednoczesnych żądań?
- 9. Dlaczego mój projekt zaćmienia nie ma ścieżki kompilacji?
- 10. Zwijanie nie wysyła na mój serwer lokalny
- 11. Czy chmura jest miejscem, w którym można znaleźć zespół programistów obsługujących 1 osobę?
- 12. Dlaczego zespół Roslyn oznaczył DocumentationComment jako wewnętrzny
- 13. Dlaczego mój UIButton.tintColor nie działa? Mój cel
- 14. Jak mieć różne środowiska kompilacji dla Androida?
- 15. Centrum gier i mój własny serwer
- 16. dlaczego mój vfl nie działa?
- 17. Dlaczego Entity Framework ignoruje mój ciąg połączenia?
- 18. Dlaczego mój Rails.root zero?
- 19. Porządek według kolumny powinien mieć indeks, czy nie?
- 20. Jaki rodzaj procesu tworzenia oprogramowania powinien mieć samotny programista?
- 21. Jaki rozmiar powinien mieć obraz tła w MSI?
- 22. Jakie rozmiary powinien mieć obraz w szufladzie nawigacji?
- 23. ASP.NET MVC Ile poziomów głębokości powinien mieć widok lub URL?
- 24. Ostrzeżenie: React.createElement: typ nie powinien mieć wartości null ani undefined.
- 25. Dlaczego mój ScrollViewer niszczy mój układ siatki? WPF
- 26. Dlaczego narzędzia programistów IE są tak wolne?
- 27. iOS Provisioning, zespół ID zamieszanie
- 28. Gdzie mój program win32 powinien przechowywać swoje pliki?
- 29. Dlaczego mój przełożony kończy pracę?
- 30. Dlaczego nie mój projekt Konfiguracja Wykonaj mój niestandardowy proces rejestracji
Dziękuję za świetne odpowiedzi, oto zwrot na oryginalne pytanie. Mój pracodawca jest w porządku, jeśli ma maszynę wykonującą zadania CI. Moim wyzwaniem jest teraz uzasadnienie, dlaczego ta maszyna powinna być niezależna. Używałem serwera, którego cała firma używa do testowania, co oznacza, że wszyscy się z tym pogodzili. Moim argumentem jest to, że potrzebujemy kontrolowanego środowiska (tak, jak wskazał Vladimir). Jakie są Twoje myśli? i Wolisz maszynę wirtualną lub dedykowaną maszynę? –
@H. Abraham Chavez: To jest inne pytanie. Powinieneś zadać to jako nowe pytanie, a nie tutaj w komentarzu. –