Современная программная инженерия. Использовать
- Артикул:
- 15950016644
- Страна: Польша
- Доставка: от 990 ₽
- Срок доставки: 12-20 дней
- В наличии: 2
- Оценка: 4.8
- Отзывов: 5
Характеристики
- Identyfikator produktu
- 15950016644
- Stan
- Nowy
- Język publikacji
- polski
- Tytuł
- Nowoczesna inżynieria oprogramowania. Stosowanie skutecznych technik szybszego rozwoju oprogramowania wyższej jakości
- Autor
- David Farley
- Nośnik
- książka papierowa
- Okładka
- miękka
- Rok wydania
- 2023
- Wydawnictwo
- Helion
- Liczba stron
- 224
- Numer wydania
- 1
- Szerokość produktu
- 16 cm
- Wysokość produktu
- 23 cm
Описание
Nowoczesna inżynieria oprogramowania. Stosowanie skutecznych technik szybszego rozwoju oprogramowania wyższej jakości
David Farley
Inżynieria oprogramowania polega na stosowaniu empirycznego podejścia do szukania wydajnych i ekonomicznie uzasadnionych rozwiązań podczas tworzenia oprogramowania. Dziedzina ta ma na celu organizowanie optymalnego procesu tworzenia aplikacji ? od koncepcji, poprzez kodowanie, wdrażanie, utrzymywanie, po wycofywanie. Uzyskanie biegłości w tym obszarze nie jest łatwe: rozwój oprogramowania wymaga zrozumienia filozofii inżynierii i stosowania określonych zasad.
Tę książkę docenią programiści, menedżerowie, inżynierowie i liderzy techniczni. Znajdziesz w niej cenne informacje o filozofii inżynierii oprogramowania, jak również o postępach w sposobie myślenia na jej temat. Na tej bazie oparto zestaw zasad ułatwiających skuteczne radzenie sobie z dwoma podstawowymi procesami inżynierii oprogramowania: uczenia się i eksploracji oraz radzenia sobie ze złożonością. W ten sposób dowiesz się, jak usprawnić wszystkie aspekty swojej pracy, a także jak stosować sprawdzone podejścia prowadzące do sukcesu z uwzględnieniem uwarunkowań ekonomicznych. Dzięki tej przełomowej publikacji nauczysz się technik rozwiązywania problemów z wykorzystaniem zarówno obecnych, jak i przyszłych technologii. W efekcie będziesz szybciej tworzyć lepsze oprogramowanie, i to w bardziej przyjemny i satysfakcjonujący sposób.
Poznaj i stosuj zasady nowoczesnej inżynierii oprogramowania:
- określaj jasne cele i sensownie wybieraj narzędzia
- organizuj pracę i systemy tak, aby móc oceniać ciągłe postępy
- zachowuj kontrolę nawet po zwiększeniu złożoności systemu
- utrzymuj dyscyplinę z zachowaniem właściwej elastyczności
- ucz się z historii i doświadczenia
- naucz się oceniać nowe idee rozwoju oprogramowania
Przekonaj się, jak dzisiaj najlepsi praktycy projektują oprogramowanie!
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
Стоимость доставки приблизительная. Точная стоимость доставки указывается после обработки заказа менеджером.