Description
Wszystko, co musisz wiedzieć o jakości oprogramowania, w jednym miejscu!Poznaj rodzaje błędówZapewnij wysoką jakość koduDowiedz się, jak należycie testowaćTwórz niezawodne oprogramowanieCzym 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łowegoSposoby testowania programówArchitektura, wzorce projektowe, metodykiCiągłe dostarczanie i ciągła integracjaMonitoring produkcji i obsługa awariiNajczęściej popełniane błędy i typowe przypadkiLektura obowiązkowa dla każdego, kto jest zaangażowany w proces wytwarzania oprogramowania!Spis treści:Wprowadzenie 13Rozdział 1. Praca u podstaw 23Klasyfikacja usterek, błędów i awarii 23Terminologia niezawodności 24Błędy 27Zapobieganie defektom 28Standaryzacja i organizacja kodu 28Standaryzacja 28Organizacja 28Jakość danych 29Wzorce projektowe, dowodzenie poprawności 30Kryteria wzorców projektowych 31Jakość poszczególnych wzorców projektowych 31Uzasadnienie dla wzorców projektowych 31Korzyści ze stosowania wzorców projektowych 32Trudności 33Wzorce oprogramowania nie są… 33Wzorce oprogramowania są… 33Rodzaje wzorców projektowych 33Konwencja ponad konfigurację 59Niezawodność 59Weryfikacja, walidacja i testowanie 59Odporność na błędy 60Przeglądy jakości kodu 62Przegląd konwencjonalny 62Przegląd jako proces 63Inspekcja oprogramowania krytycznego 63Poziomy pokrycia kodu testami 64Właściwy wybór architektury (DDD) i projektowanie 64Prostota i minimalizm 65Złożoność 65Architektura 66Projektowanie 66Programowanie 69Język programowania 71Maksymy programistyczne 71Metodyki (TDD, BDD, TIP) 72TDD 72BDD 73TIP 74Aplikacje mikrousługowe a monolityczne 74Aplikacje monolityczne 74Aplikacje mikrousługowe 75Zasady testowania 75Pojęcia 75Styl testowania 76Cel 76Testowanie specyfikacji 76Retrospekcja 76Sytuacje 76Filozofie testowania 77Dane testowe 77Kierunki testowania 77Minimum 77Aksjomaty testowania 78Aksjomaty programistyczne 78Pragmatyczny programista 79Entropia oprogramowania 79DRY 79Inne aspekty 79Błędotwórstwo 79Dowodzenie poprawności programów 79Przewidywanie zmian 80Dyspozycyjność systemu 80Uszkodzenia i powrót ze stanu błędu 81Metodologia programowania 82Kolejność celów 83Wykonalność 83Starzenie 84Defekty w grach 84Room bounds, problemy systemu optymalizacji 84Problemy z teksturami 87Brakujące elementy otoczenia 89Błędna lokalizacja elementów otoczenia 90Rozdział 2. CI/CD 93Składnia, kompilacja i budowanie artefaktów 93Składnia 93Kompilacja 94Budowanie 94Automatyczne testy programistyczne 95minitest 95busted 98Pozostałe przykłady testów 100Integracyjne 100UI 103Specyfikacja, konfiguracja, środowisko 104CI/CD w praktyce 105Git branching 106.gitlab-ci.yml 106Rozdział 3. Produkcja 109Współpraca pierwszej i drugiej linii wsparcia 109Monitoring 109APM 110Baza danych 114Błędy 117Logi 122Obsługa awarii 124Hotfixing 124Monkey-patching 124Rozdział 4. Błędy i komunikaty 125Zestawienie błędów popełnianych przez programistów 125Typowe błędy 125Błędy początkujących 126Kategoryzacja błędów 127Kompozycja programu 127Pętle 128Dane 128Zmienne 128Tablice 128Operacje arytmetyczne 128Podprogramy 128Inne 129Rozdział 5. Przypadki 131W zasięgu wzroku 131Monitoring 131Planowanie 131Spotkanie 131Potrzeba 132Życie 132Konsumpcja 132Rozrywka 132Finanse 132Nauka 133Siły na zamiary 133Odbiorca 133Zamawiający 133Beneficjent 133Wykonawca 134Operator 134Użytkownik końcowy 134Niedoskonałość 134Człowiek 134Organizacja 135Czas 135Ważność 135Pilność 135Mikrozarządzanie 135Zadania cykliczne 136Zmiana częstotliwości 136Racjonalizacja operacji 137Uruchamianie w Dockerfile 138Nieporządek w harmonogramie zadań 138Przykład 138Rozwiązania 139Skutki i działania 140Martwy kod 140Współdzielenie kodu 141Rozwiązanie 141Rails 141Java 143Porządkowanie struktury aplikacji 143Timeout 144Przykład 144Rozwiązanie 145Racjonalizacja serwera bazy danych 145Przykład 146Replikacja czasu rzeczywistego 146Aplikacje 146Monitoring 147Nieprawidłowe rekordy 148Typy danych jako klucze 148Nadmiarowe przypisania 149Agregacja danych 149Dzielenie zapytań SQL 150Testy inwazyjne 151Cargo cult 152Prokrastynacja 153Obustronna weryfikacja 154Zewnętrzne dane 154Klucze obce a projekt bazy 155Korekty danych 156Spójność środowisk 157NULL 157Zmęczenie 159Brak testów 160Nemawashi 160″Geniusz zła” 161Paradoks hazardzisty 162Czytelność kodu 162Rozmiar 162Dobre praktyki 165Standardy, czyli XYZ-way 166Kosztowne błędy 166NASA Mars Climate Orbiter 167Ariane 5 Flight 501 167EDS Child Support System 167Heathrow Terminal 5 Opening 168The Mariner 1 Spacecraft 168Patriot Missile Error 168Pentium FDIV Bug 168Ciekawe przypadki 169Proxy 169Planowanie 170Macierz pokrycia zmianami 170IDE a edytor tekstowy 171Architektura systemowa 172Systemy wsadowe o zdalnym dostępie 172Systemy zbierania danych 173System prosty (Simplex) 173System prosty z wysuniętą transmisją 173System prosty z oddzielnymi maszynami do obsługi transmisji i do zarządzania bazą danych 175System nadrzędny – podległy 175System o wspólnej pamięci zbiorów 176Systemy zdwojone i dualne 177Systemy wieloprocesorowe 177Złożoność 178Predyspozycje osobowe 179Auto DB reconnect 180ESB non-block 180DB Deadlock 181Liczba zgłoszeń 183Konteneryzacja 183Koncentracja i pośpiech 184System transakcyjny a system wsadowy 184Pair programming 184Integracja 185Estymaty 185Kompatybilność API 185Retro computing 187Oprogramowanie samodostosowujące się 187Rozdział 6. Podsumowanie 189Nieuchronne 189Organizacja 189Post factum 189Spokój 190Co dalej? 190Refleksja 190Na koniec 191Dodatek A. Metodyka prewencji i szybkiego reagowania 193Prewencja 1931. Zasada ograniczonego zaufania 1932. Statyczne typowanie 1933. Analiza składniowa 1954. Dane w relacyjnej bazie 1955. Aspekty projektowe 197Reagowanie 1971. Przechwytywanie wyjątków 1972. Service Discovery 1983. Używajmy własnych produktów 198Bibliografia 199Skorowidz 203
Informatyka
ukraina wyjazd, turcja sierpień 2021, deu, intercity piast, san miguel piwo, bank chiński, kalendarz 2021 niedziele handlowe, polozenie polski, zmiany stawki vat 2022, szwecja ostatnie mecze, zelene pleso, flaga algierii, деньги в долг польша, zus świadczenie postojowe dla samozatrudnionych, formularz inwentaryzacji, l4 na okresie próbnym
yyyyy