reklama - zainteresowany?

Nowoczesna in - Onepress

Nowoczesna in
Autor: David Farley
Tytuł oryginału: Modern Software Engineering: Doing What Works to Build Better Software Faster
Tłumaczenie: Tomasz Walczak
ISBN: 978-83-8322-594-4
stron: 226, Format: 165x235, okładka: mi
Księgarnia: Onepress

Książka będzie dostępna od marca 2023

In

Spis treści

Nowoczesna inżynieria oprogramowania. Stosowanie skutecznych technik szybszego rozwoju oprogramowania wyższej jakości -- spis treści

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

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.