Promocja!

NOWOCZESNA INŻYNIERIA OPROGRAMOWANIA

Original price was: 69.00zł.Current price is: 62.10zł.

Na stanie

Spis treści

Przedmowa

Wstęp

Podziękowania

O autorze

Część I. Czym jest inżynieria oprogramowania?

Rozdział 1. Wprowadzenie
Inżynieria – praktyczne zastosowanie nauki
Czym jest inżynieria oprogramowania?
Przywracanie „inżynierii” w „inżynierii oprogramowania”
Jak robić postępy?
Narodziny inżynierii oprogramowania
Zmiana paradygmatu
Podsumowanie
Rozdział 2. Czym jest inżynieria?
To nie produkcja jest naszym problemem
Inżynieria projektowa zamiast inżynierii produkcyjnej
Robocza definicja inżynierii
Inżynieria != kod
Dlaczego inżynieria jest ważna?
Ograniczenia rzemiosła
Precyzja i skalowalność
Radzenie sobie ze złożonością
Powtarzalność i precyzja pomiarów
Inżynieria, kreatywność i rzemiosło
Dlaczego to, co robimy, nie jest inżynierią oprogramowania
Kompromisy
Iluzja postępu
Droga od rzemiosła do inżynierii
Rzemiosło to za mało
Czas na zmianę perspektywy?
Podsumowanie
Rozdział 3. Podstawy podejścia inżynieryjnego
Branża zmian?
Znaczenie pomiarów
Wprowadzanie stabilności i wydajności
Podstawy inżynierii oprogramowania
Eksperci od uczenia się
Eksperci od radzenia sobie ze złożonością
Podsumowanie

Część II. Optymalizacja z myślą o uczeniu się

Rozdział 4. Praca w modelu iteracyjnym
Praktyczne zalety podejścia iteracyjnego
Podejście iteracyjne jako strategia projektowania defensywnego
Pokusa tworzenia planu
Praktyczne aspekty podejścia iteracyjnego
Podsumowanie
Rozdział 5. Informacje zwrotne
Praktyczny przykład ilustrujący znaczenie informacji zwrotnych
Informacje zwrotne w czasie pisania kodu
Informacje zwrotne na etapie integracji
Informacje zwrotne na etapie projektowania
Informacje zwrotne w architekturze
Preferuj szybkie informacje zwrotne
Informacje zwrotne w kontekście projektu produktu
Informacje zwrotne w organizacji i kulturze
Podsumowanie
Rozdział 6. Podejście przyrostowe
Znaczenie modułowości
Podejście przyrostowe w organizacjach
Narzędzia ułatwiające przyrostową pracę
Ograniczanie zakresu wpływu zmian
Projektowanie przyrostowe
Podsumowanie
Rozdział 7. Podejście empiryczne
Zakorzenienie w rzeczywistości
Oddzielenie podejścia empirycznego od eksperymentów
„Znam ten błąd!”
Unikanie oszukiwania samego siebie
Wymyślanie rzeczywistości pasującej do argumentów
Kierowanie się rzeczywistością
Podsumowanie
Rozdział 8. Nastawienie na eksperymentowanie
Czym jest „nastawienie na eksperymentowanie”?
Informacje zwrotne
Hipotezy
Pomiary
Kontrolowanie zmiennych
Zautomatyzowane testy jako eksperymenty
Zapewnianie kontekstu dla wyników testów przeprowadzanych w ramach eksperymentów
Zakres eksperymentów
Podsumowanie

Część III. Optymalizowanie z myślą o radzeniu sobie ze złożonością

Rozdział 9. Modułowość
Cechy charakterystyczne modułowości
Niedocenianie znaczenia dobrego projektu
Znaczenie testowalności
Projektowanie z myślą o łatwości testowania poprawia modułowość
Usługi i modułowość
Łatwość wdrażania a modułowość
Modułowość w różnych skalach
Modułowość w systemach ludzkich
Podsumowanie
Rozdział 10. Spójność
Modułowość i spójność – podstawy projektowania
Prosty przykład niskiej spójności
Kontekst ma znaczenie
Wysoce wydajne oprogramowanie
Związki z powiązaniami
Zapewnianie wysokiej spójności za pomocą programowania sterowanego testami
Jak uzyskać spójne oprogramowanie?
Koszty niskiej spójności
Spójność w systemach ludzkich
Podsumowanie
Rozdział 11. Podział zadań
Wstrzykiwanie zależności
Oddzielanie złożoności zasadniczej od złożoności przypadkowej
Znaczenie podejścia DDD
Testowalność
Porty i adaptery
Kiedy stosować wzorzec porty i adaptery?
Czym jest API?
Stosowanie programowania sterowanego testami do wprowadzania podziału zadań
Podsumowanie
Rozdział 12. Ukrywanie informacji i abstrakcja
Abstrakcja lub ukrywanie informacji
Co jest powodem powstawania „wielkiej błotnej bryły”?
Problemy organizacyjne i kulturowe
Problemy techniczne i problemy projektowe
Obawy przed „nadinżynierią”
Tworzenie bardziej abstrakcyjnego kodu za pomocą testów
Wartość abstrakcji
„Dziurawe” abstrakcje
Wybór odpowiednich abstrakcji
Abstrakcje z dziedziny problemu
Wyodrębnianie złożoności przypadkowej za pomocą abstrakcji
Izolowanie zewnętrznych systemów i zewnętrznego kodu
Zawsze preferuj ukrywanie informacji
Podsumowanie
Rozdział 13. Radzenie sobie z powiązaniami
Koszty powiązań
Skalowanie
Mikrousługi
Wyeliminowanie powiązań może prowadzić do większej ilości kodu
Luźne powiązanie nie jest jedynym, które ma znaczenie
Preferuj luźne powiązania
W czym powiązania różnią się od podziału zadań?
Zasada DRY jest zbyt uproszczona
Asynchroniczność jako narzędzie do uzyskiwania luźnych powiązań
Projektowanie z myślą o luźnych powiązaniach
Luźne powiązania w systemach ludzkich
Podsumowanie

Część IV. Narzędzia ułatwiające inżynierię w branży oprogramowania

Rozdział 14. Narzędzia w dziedzinie inżynierii
Czym jest rozwój oprogramowania?
Testowalność jako narzędzie
Punkty pomiaru
Problemy z osiąganiem testowalności
Jak zwiększyć testowalność?
Łatwość wdrażania
Szybkość
Kontrolowanie zmiennych
Ciągłe dostarczanie
Ogólne narzędzia wspomagające inżynierię
Podsumowanie
Rozdział 15. Współczesny inżynier oprogramowania
Inżynieria jako proces ludzki
Organizacje dokonujące przełomu w świecie cyfrowym
Skutki a mechanizmy
Trwałe i uniwersalne
Podstawy inżynierii
Podsumowanie

 

Autor

ISBN

978-83-8322-594-4

Liczba stron

Rok wydania

Wydawca

Opinie

Na razie nie ma opinii o produkcie.

Napisz pierwszą opinię o „NOWOCZESNA INŻYNIERIA OPROGRAMOWANIA”

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *