Używamy cookies, aby ułatwić korzystanie z Portalu. Możesz określić warunki przechowywania, dostępu do plików cookies w Twojej przeglądarce. Dowiedz się więcej.
strona główna Strona główna | Nowości | Promocje | Zapowiedzi Twoje konto | Zarejestruj | Schowek | Kontakt | Pomoc
mapa działów
Szukaj: szukanie zaawansowane
Koszyk
Książki \ Programowanie

Jakość oprogramowania. Podręcznik dla profesjonalistów Język: 1

978-83-283-6102-7

Cena Brutto: 49.00

Cena netto: 46.67

Ilość:
Wersja: Drukowana
Autor Michał Sobczak
Liczba_stron 208
Wydawnictwo Helion
Oprawa miękka
Data_Wydania 2020-04-21

Wszystko, co musisz wiedzieć o jakości oprogramowania, w jednym miejscu!

  • Poznaj rodzaje błędów
  • Zapewnij wysoką jakość kodu
  • Dowiedz się, jak należycie testować
  • Twórz niezawodne oprogramowanie

Czym jest jakość oprogramowania? Czy to wyłącznie miara technicznej doskonałości kodu? A może jakość to coś znacznie więcej? Czy niezawodne działanie i brak błędów świadczą o wysokiej jakości programu? Co charakteryzuje kod, który można uznać za dobry? Jak mierzy się jakość w projektach informatycznych? Co robić, aby zapewnić wysoką jakość tworzonego oprogramowania? Jakie techniki i rozwiązania mogą w tym pomóc?

Odpowiedzi na te i wiele innych pytań znajdziesz w książce Jakość oprogramowania. Podręcznik dla profesjonalistów. To pierwsze tego rodzaju wydawnictwo na polskim rynku szybko wprowadzi Cię w zyskującą coraz większe znaczenie tematykę jakości oprogramowania komputerowego. Dzięki lekturze dowiesz się nie tylko, jak uzyskać i utrzymać odpowiednią jakość w projekcie informatycznym oraz jakie narzędzia są w tym pomocne, lecz również co robić, aby ograniczyć szkody spowodowane przez ewentualne błędy.

  • Zapewnianie jakości kodu źródłowego
  • Sposoby testowania programów
  • Architektura, wzorce projektowe, metodyki
  • Ciągłe dostarczanie i ciągła integracja
  • Monitoring produkcji i obsługa awarii
  • Najczęściej popełniane błędy i typowe przypadki

Lektura obowiązkowa dla każdego, kto jest zaangażowany w proces wytwarzania oprogramowania!

Wprowadzenie 13

Rozdział 1. Praca u podstaw 23

  • Klasyfikacja usterek, błędów i awarii 23
    • Terminologia niezawodności 24
    • Błędy 27
    • Zapobieganie defektom 28
  • Standaryzacja i organizacja kodu 28
    • Standaryzacja 28
    • Organizacja 28
  • Jakość danych 29
  • Wzorce projektowe, dowodzenie poprawności 30
    • Kryteria wzorców projektowych 31
    • Jakość poszczególnych wzorców projektowych 31
    • Uzasadnienie dla wzorców projektowych 31
    • Korzyści ze stosowania wzorców projektowych 32
    • Trudności 33
    • Wzorce oprogramowania nie są... 33
    • Wzorce oprogramowania są... 33
    • Rodzaje wzorców projektowych 33
    • Konwencja ponad konfigurację 59
  • Niezawodność 59
    • Weryfikacja, walidacja i testowanie 59
    • Odporność na błędy 60
  • Przeglądy jakości kodu 62
    • Przegląd konwencjonalny 62
    • Przegląd jako proces 63
    • Inspekcja oprogramowania krytycznego 63
  • Poziomy pokrycia kodu testami 64
  • Właściwy wybór architektury (DDD) i projektowanie 64
    • Prostota i minimalizm 65
    • Złożoność 65
    • Architektura 66
    • Projektowanie 66
    • Programowanie 69
    • Język programowania 71
    • Maksymy programistyczne 71
  • Metodyki (TDD, BDD, TIP) 72
    • TDD 72
    • BDD 73
    • TIP 74
  • Aplikacje mikrousługowe a monolityczne 74
    • Aplikacje monolityczne 74
    • Aplikacje mikrousługowe 75
  • Zasady testowania 75
    • Pojęcia 75
    • Styl testowania 76
    • Cel 76
    • Testowanie specyfikacji 76
    • Retrospekcja 76
    • Sytuacje 76
    • Filozofie testowania 77
    • Dane testowe 77
    • Kierunki testowania 77
    • Minimum 77
    • Aksjomaty testowania 78
    • Aksjomaty programistyczne 78
  • Pragmatyczny programista 79
    • Entropia oprogramowania 79
    • DRY 79
  • Inne aspekty 79
    • Błędotwórstwo 79
    • Dowodzenie poprawności programów 79
    • Przewidywanie zmian 80
    • Dyspozycyjność systemu 80
    • Uszkodzenia i powrót ze stanu błędu 81
    • Metodologia programowania 82
    • Kolejność celów 83
    • Wykonalność 83
    • Starzenie 84
  • Defekty w grach 84
    • Room bounds, problemy systemu optymalizacji 84
    • Problemy z teksturami 87
    • Brakujące elementy otoczenia 89
    • Błędna lokalizacja elementów otoczenia 90

Rozdział 2. CI/CD 93

  • Składnia, kompilacja i budowanie artefaktów 93
    • Składnia 93
    • Kompilacja 94
    • Budowanie 94
  • Automatyczne testy programistyczne 95
    • minitest 95
    • busted 98
  • Pozostałe przykłady testów 100
    • Integracyjne 100
    • UI 103
    • Specyfikacja, konfiguracja, środowisko 104
  • CI/CD w praktyce 105
    • Git branching 106
    • .gitlab-ci.yml 106

Rozdział 3. Produkcja 109

  • Współpraca pierwszej i drugiej linii wsparcia 109
  • Monitoring 109
    • APM 110
    • Baza danych 114
    • Błędy 117
    • Logi 122
  • Obsługa awarii 124
    • Hotfixing 124
    • Monkey-patching 124

Rozdział 4. Błędy i komunikaty 125

  • Zestawienie błędów popełnianych przez programistów 125
    • Typowe błędy 125
    • Błędy początkujących 126
  • Kategoryzacja błędów 127
    • Kompozycja programu 127
    • Pętle 128
    • Dane 128
    • Zmienne 128
    • Tablice 128
    • Operacje arytmetyczne 128
    • Podprogramy 128
    • Inne 129

Rozdział 5. Przypadki 131

  • W zasięgu wzroku 131
    • Monitoring 131
    • Planowanie 131
    • Spotkanie 131
  • Potrzeba 132
    • Życie 132
    • Konsumpcja 132
    • Rozrywka 132
    • Finanse 132
    • Nauka 133
  • Siły na zamiary 133
  • Odbiorca 133
    • Zamawiający 133
    • Beneficjent 133
    • Wykonawca 134
    • Operator 134
    • Użytkownik końcowy 134
  • Niedoskonałość 134
    • Człowiek 134
    • Organizacja 135
  • Czas 135
    • Ważność 135
    • Pilność 135
    • Mikrozarządzanie 135
  • Zadania cykliczne 136
    • Zmiana częstotliwości 136
    • Racjonalizacja operacji 137
    • Uruchamianie w Dockerfile 138
  • Nieporządek w harmonogramie zadań 138
    • Przykład 138
    • Rozwiązania 139
    • Skutki i działania 140
  • Martwy kod 140
  • Współdzielenie kodu 141
    • Rozwiązanie 141
    • Rails 141
    • Java 143
  • Porządkowanie struktury aplikacji 143
  • Timeout 144
    • Przykład 144
    • Rozwiązanie 145
  • Racjonalizacja serwera bazy danych 145
    • Przykład 146
    • Replikacja czasu rzeczywistego 146
    • Aplikacje 146
    • Monitoring 147
  • Nieprawidłowe rekordy 148
  • Typy danych jako klucze 148
  • Nadmiarowe przypisania 149
  • Agregacja danych 149
  • Dzielenie zapytań SQL 150
  • Testy inwazyjne 151
  • Cargo cult 152
  • Prokrastynacja 153
  • Obustronna weryfikacja 154
  • Zewnętrzne dane 154
  • Klucze obce a projekt bazy 155
  • Korekty danych 156
  • Spójność środowisk 157
  • NULL 157
  • Zmęczenie 159
  • Brak testów 160
  • Nemawashi 160
  • "Geniusz zła" 161
  • Paradoks hazardzisty 162
  • Czytelność kodu 162
    • Rozmiar 162
    • Dobre praktyki 165
  • Standardy, czyli XYZ-way 166
  • Kosztowne błędy 166
    • NASA Mars Climate Orbiter 167
    • Ariane 5 Flight 501 167
    • EDS Child Support System 167
    • Heathrow Terminal 5 Opening 168
    • The Mariner 1 Spacecraft 168
    • Patriot Missile Error 168
    • Pentium FDIV Bug 168
  • Ciekawe przypadki 169
  • Proxy 169
  • Planowanie 170
  • Macierz pokrycia zmianami 170
  • IDE a edytor tekstowy 171
  • Architektura systemowa 172
    • Systemy wsadowe o zdalnym dostępie 172
    • Systemy zbierania danych 173
    • System prosty (Simplex) 173
    • System prosty z wysuniętą transmisją 173
    • System prosty z oddzielnymi maszynami do obsługi transmisji i do zarządzania bazą danych 175
    • System nadrzędny - podległy 175
    • System o wspólnej pamięci zbiorów 176
    • Systemy zdwojone i dualne 177
    • Systemy wieloprocesorowe 177
  • Złożoność 178
  • Predyspozycje osobowe 179
  • Auto DB reconnect 180
  • ESB non-block 180
  • DB Deadlock 181
  • Liczba zgłoszeń 183
  • Konteneryzacja 183
  • Koncentracja i pośpiech 184
  • System transakcyjny a system wsadowy 184
  • Pair programming 184
  • Integracja 185
  • Estymaty 185
  • Kompatybilność API 185
  • Retro computing 187
  • Oprogramowanie samodostosowujące się 187

Rozdział 6. Podsumowanie 189

  • Nieuchronne 189
  • Organizacja 189
  • Post factum 189
  • Spokój 190
  • Co dalej? 190
  • Refleksja 190
  • Na koniec 191

Dodatek A. Metodyka prewencji i szybkiego reagowania 193

  • Prewencja 193
    • 1. Zasada ograniczonego zaufania 193
    • 2. Statyczne typowanie 193
    • 3. Analiza składniowa 195
    • 4. Dane w relacyjnej bazie 195
    • 5. Aspekty projektowe 197
  • Reagowanie 197
    • 1. Przechwytywanie wyjątków 197
    • 2. Service Discovery 198
    • 3. Używajmy własnych produktów 198

Bibliografia 199

Skorowidz 203

powrót
 
Produkty Podobne
Wprowadzenie do uczenia maszynowego według Esposito
Kubernetes. Wzorce projektowe. Komponenty wielokrotnego użycia do projektowania natywnych aplikacji chmurowych
React 16. Framework dla profesjonalistów
Programuj z .NET. Praktyka ponad teorią
Jakość oprogramowania. Podręcznik dla profesjonalistów
Zaawansowane zarządzanie pamięcią w .NET: Lepszy kod, wydajność i skalowalność
Go. Rusz głową!
C#. Zacznij programować!
Programowanie. Teoria i praktyka z wykorzystaniem C++. Wydanie III
Code with me. Zostań game developerem
Więcej produktów