Jez Humble, ebooki
[ Pobierz całość w formacie PDF ]
//-->Spis treściPrzedmowa Martina Fowlera ......................................................................................................17Wprowadzenie .............................................................................................................................19Podziękowania .............................................................................................................................27O autorach ....................................................................................................................................28Część I. Podstawy ........................................................................................29Rozdział 1. Problem dostarczania oprogramowania .................................................................31Wstęp ..................................................................................................................................................... 31Niektóre powszechnie występujące błędne wzorce wydawania oprogramowania .................... 32Antywzorzec: ręczne wdrażanie oprogramowania ................................................................... 33Antywzorzec: wdrożenie w środowisku zbliżonym do środowiska produkcyjnegodopiero po zakończeniu programowania ............................................................................... 35Antywzorzec: ręczne zarządzanie konfiguracją środowiska produkcyjnego .......................... 37Czy możemy to poprawić? .......................................................................................................... 38Jak mamy osiągnąć nasz cel? .............................................................................................................. 39Każda zmiana powinna uruchamiać proces pozyskiwania informacji zwrotnej ................... 40Informacja zwrotna musi być uzyskiwana możliwie szybko ................................................... 41Zespół odpowiedzialny za wdrożenie musi wyciągnąć praktyczne wnioskiz otrzymanej informacji zwrotnej .......................................................................................... 43Czy ten proces się skaluje? .......................................................................................................... 43Jakie płyną z tego korzyści? ................................................................................................................ 44Przyznanie zespołom większej władzy ...................................................................................... 44Ograniczenie liczby błędów ........................................................................................................ 45Obniżenie poziomu stresu .......................................................................................................... 47Elastyczność wdrożenia .............................................................................................................. 47Ćwiczenie czyni mistrza ............................................................................................................. 48Kandydat do wydania .......................................................................................................................... 49Każde zaewidencjonowanie prowadzi do potencjalnego wydania .......................................... 50Kup książkęPoleć książkę8SPIS TREŚCIZasady dostarczania oprogramowania ............................................................................................. 50Stwórz powtarzalny, niezawodny proces dostarczania oprogramowania .............................. 50Automatyzuj, co tylko się da ...................................................................................................... 51Przechowuj wszystko w systemie kontroli wersji ...................................................................... 51Jeśli to boli, rób to częściej i szybciej zmierz się z bólem ........................................................... 52Wbuduj jakość w proces wytwarzania ...................................................................................... 52Gotowe oznacza wydane ............................................................................................................ 53Wszyscy są odpowiedzialni za udostępnianie oprogramowania ............................................. 53Ciągłe doskonalenie .................................................................................................................... 54Podsumowanie ..................................................................................................................................... 54Rozdział 2. Zarządzanie konfiguracją .........................................................................................57Wstęp ..................................................................................................................................................... 57Stosowanie systemów kontroli wersji ............................................................................................... 58W systemie kontroli wersji przechowuj absolutnie wszystko ................................................... 59Wprowadzaj zmiany regularnie do głównej gałęzi projektu ................................................... 61Posługuj się czytelnymi opisami zakresu zmian ....................................................................... 62Zarządzanie zależnościami ................................................................................................................. 63Zarządzanie bibliotekami zewnętrznymi .................................................................................. 63Zarządzanie modułami .............................................................................................................. 64Zarządzanie konfiguracją oprogramowania .................................................................................... 64Konfiguracja i elastyczność ........................................................................................................ 65Typy konfiguracji ........................................................................................................................ 66Zarządzanie konfiguracją aplikacji ........................................................................................... 67Zarządzanie konfiguracją szeregu aplikacji .............................................................................. 70Zasady zarządzania konfiguracją aplikacji .............................................................................. 71Zarządzanie środowiskami ................................................................................................................. 72Narzędzia do zarządzania środowiskami ................................................................................. 75Zarządzanie procesem zmiany .................................................................................................. 75Podsumowanie ..................................................................................................................................... 76Rozdział 3. Ciągła integracja .......................................................................................................77Wstęp ..................................................................................................................................................... 77Wdrażanie ciągłej integracji ............................................................................................................... 78Czego potrzebujesz na początek? ............................................................................................... 78Podstawowy system ciągłej integracji ........................................................................................ 79Warunki wstępne ciągłej integracji ................................................................................................... 81Ewidencjonuj regularnie ............................................................................................................ 81Stwórz obszerny i kompleksowy zestaw zautomatyzowanych testów ..................................... 81Niech proces kompilacji i testowania będzie możliwie krótki .................................................. 82Zarządzanie środowiskiem programistycznym ........................................................................ 83Stosowanie systemów ciągłej integracji ............................................................................................ 84Podstawowa funkcjonalność ...................................................................................................... 84Wodotryski .................................................................................................................................. 85Kup książkęPoleć książkęSPIS TREŚCI9Kluczowe praktyki ............................................................................................................................... 87Nie ewidencjonuj niczego w popsutej kompilacji ...................................................................... 87Zawsze testuj lokalnie wszystkie zmiany przed ich zatwierdzeniemalbo zleć to serwerowi CI ......................................................................................................... 87Zanim podejmiesz pracę, poczekaj na powodzenie testówtowarzyszących przekazywaniu zmian .................................................................................. 88Nigdy nie idź do domu, dopóki kompilacja nie działa poprawnie .......................................... 89Zawsze bądź przygotowany na powrót do poprzednich wersji ................................................ 90Ustaw sobie limit czasu na poprawki przed cofnięciem zmian ............................................... 90Nie wyłączaj testów, które zakończyły się niepowodzeniem .................................................... 91Weź odpowiedzialność za wszystkie szkody powstałe w wyniku zmian ................................. 91Programowanie sterowane testami ............................................................................................ 91Zalecane praktyki ................................................................................................................................. 92Praktyki programowania ekstremalnego (XP) ......................................................................... 92Odrzucanie kompilacji ze względu na naruszenie architektury .............................................. 92Odrzucanie kompilacji ze względu na powolność testów ......................................................... 93Odrzucanie kompilacji ze względu na ostrzeżenia i niewłaściwe formatowania kodu ......... 94Zespoły rozproszone ............................................................................................................................ 95Wpływ na proces ......................................................................................................................... 95Scentralizowana ciągła integracja ............................................................................................. 96Problemy techniczne ................................................................................................................... 97Podejścia alternatywne ............................................................................................................... 97Rozproszone systemy kontroli wersji ............................................................................................... 99Podsumowanie ................................................................................................................................... 101Rozdział 4. Wdrożenie strategii testów .....................................................................................103Wstęp ................................................................................................................................................... 103Typy testów ......................................................................................................................................... 104Testy biznesowe wspierające proces wytwarzania oprogramowania .................................... 105Testy technologiczne wspierające programowanie ................................................................. 108Testy biznesowe umożliwiające krytyczną analizę projektu .................................................. 108Testy technologiczne umożliwiające krytyczną analizę projektu .......................................... 110Obiekty zastępcze ...................................................................................................................... 110Sytuacje i strategie z prawdziwego życia ......................................................................................... 111Na początku projektu ............................................................................................................... 111W środku projektu .................................................................................................................... 112Kod zastany ............................................................................................................................... 113Testy integracyjne ..................................................................................................................... 115Proces ................................................................................................................................................... 117Zarządzanie zaległymi błędami ............................................................................................... 118Podsumowanie ................................................................................................................................... 119Kup książkęPoleć książkę10SPIS TREŚCICzęść II. Potok wdrożeń ...........................................................................121Rozdział 5. Anatomia potoku wdrożeń .....................................................................................123Wstęp ................................................................................................................................................... 123Czym jest potok wdrożeń? ................................................................................................................ 124Podstawowy potok wdrożeń ..................................................................................................... 128Praktyki związane z potokiem wdrożeń ......................................................................................... 130Kompiluj binaria tylko raz ....................................................................................................... 130W każdym środowisku wdrażaj w taki sam sposób ............................................................... 132Testuj wdrożenia testami dymnymi ........................................................................................ 134Wdrażaj na kopii środowiska produkcyjnego ......................................................................... 134Każda zmiana powinna być natychmiast przekazywana do kolejnej fazy potoku .............. 135Jeśli jakakolwiek część potoku nie działa, zatrzymaj potok ................................................... 136Faza przekazywania zmian ............................................................................................................... 136Najlepsze praktyki fazy przekazywania zmian ....................................................................... 138Bramka automatycznych testów akceptacyjnych .......................................................................... 139Najlepsze praktyki fazy zautomatyzowanych testów akceptacyjnych ................................... 141Kolejne fazy testowania ..................................................................................................................... 142Testy ręczne ............................................................................................................................... 143Testy niefunkcjonalne ............................................................................................................... 144Przygotowanie do wydania ............................................................................................................... 144Automatyzacja wdrożenia i wydania ...................................................................................... 145Wycofywanie się ze zmian ........................................................................................................ 147Budowanie na sukcesie ............................................................................................................. 148Implementacja potoku wdrożeń ...................................................................................................... 148Tworzenie modelu strumienia wartości i szkieletu systemu .................................................. 148Automatyzacja procesu kompilacji i wdrażania .................................................................... 149Automatyzacja testów jednostkowych i analiza kodu ........................................................... 150Automatyzacja testów akceptacyjnych .................................................................................... 151Rozwijanie potoku .................................................................................................................... 151Miary .................................................................................................................................................... 152Podsumowanie ................................................................................................................................... 155Rozdział 6. Skrypty kompilacji i wdrożenia ..............................................................................157Wstęp ................................................................................................................................................... 157Przegląd narzędzi kompilacji ........................................................................................................... 158Make .......................................................................................................................................... 160Ant ............................................................................................................................................. 161NAnt i MSBuild ........................................................................................................................ 162Maven ........................................................................................................................................ 162Rake ........................................................................................................................................... 163Buildr ......................................................................................................................................... 164Psake .......................................................................................................................................... 164Kup książkęPoleć książkę
[ Pobierz całość w formacie PDF ]