Architektura oprogramowania i podejmowanie decyzji: Wykorzystywanie przyw - Helion

ebook
Autor: Srinath PereraISBN: 9788375415438
stron: 248, Format: ebook
Data wydania: 2024-04-29
Księgarnia: Helion
Cena książki: 71,82 zł (poprzednio: 79,80 zł)
Oszczędzasz: 10% (-7,98 zł)
Osoby które kupowały "Architektura oprogramowania i podejmowanie decyzji: Wykorzystywanie przyw", wybierały także:
- Biologika Sukcesji Pokoleniowej. Sezon 3. Konflikty na terytorium 124,17 zł, (14,90 zł -88%)
- Windows Media Center. Domowe centrum rozrywki 66,67 zł, (8,00 zł -88%)
- Podręcznik startupu. Budowa wielkiej firmy krok po kroku 93,13 zł, (14,90 zł -84%)
- Ruby on Rails. Ćwiczenia 18,75 zł, (3,00 zł -84%)
- Scrum. O zwinnym zarz 78,42 zł, (14,90 zł -81%)
Spis treści
Architektura oprogramowania i podejmowanie decyzji: Wykorzystywanie przywództwa, technologii i zarządzania produktem do budowy świetnych produktów eBook -- spis treści
- Spis treści
- Od autora
- Wprowadzenie do przywództwa w oprogramowaniu
- Rola oceny sytuacji
- Cel tej książki
- Część I: Wprowadzenie
- Część II: Podstawowe informacje
- Część III: Projekt systemu
- Część IV: Łączenie wszystkiego w całość
- Systemy, projekt i architektura
- Czym jest architektura oprogramowania?
- Jak zaprojektować system?
- Pięć pytań
- Pytanie 1: Kiedy jest najlepszy czas na wprowadzenie produktu na rynek?
- Pytanie 2: Jaki jest poziom umiejętności zespołu?
- Pytanie 3: Jaka jest wrażliwość naszego systemu na wydajność?
- Pytanie 4: Kiedy możemy przepisać system?
- Pytanie 5: Jakie są trudne problemy?
- Siedem zasad: koncepcje nadrzędne
- Zasada 1: Opieraj wszystko na doświadczeniu użytkownika
- Zasada 2: Używaj iteracyjnej strategii cienkich plastrów
- Zasada 3: W każdej iteracji dodawaj największą wartość przy jak najmniejszym wysiłku w celu wsparcia większej liczby użytkowników
- Zasada 4: Podejmuj decyzje i absorbuj ryzyko
- Zasada 5: Projektuj dogłębnie rzeczy, które trudno zmienić, ale implementuj je powoli
- Zasada 6: Wyeliminuj niewiadome i wyciągaj wnioski z dowodów, pracując nad trudnymi problemami wcześnie i równolegle
- Zasada 7: Poznaj kompromisy między spójnością i elastycznością w architekturze oprogramowania
- Projektowanie księgarni internetowej
- Projektowanie dla chmury
- Podsumowanie
- Modele mentalne pozwalające zrozumieć i wyjaśnić wydajność systemu
- System komputerowy
- Modele dla wydajności
- Model 1: Koszt przełączenia z trybu użytkownika na tryb jądra
- Model 2: Hierarchia operacji
- Model 3: Narzut związany z przełączaniem kontekstu
- Model 4: Prawo Amdahla
- Model 5: Prawo skalowalności uniwersalnej
- Model 6: Kompromisy dotyczące opóźnienia i stopnia wykorzystania
- Model 7: Projektowanie pod kątem przepustowości z użyciem modelu maksymalnego użytecznego wykorzystania
- Model 8: Dodawanie limitów opóźnień
- Techniki optymalizacji
- Techniki optymalizacji procesora
- Techniki optymalizacji operacji I/O
- Techniki optymalizacji pamięci
- Techniki optymalizacji opóźnienia
- Intuicyjne wyczucie wydajności
- Uwarunkowania przywództwa
- Podsumowanie
- Doświadczenia użytkownika (UX)
- Ogólne koncepcje UX dla architektów
- Zasada 1: Zrozum swoich użytkowników
- Zasada 2: Rób możliwie jak najmniej
- Zasada 3: Dobre produkty nie potrzebują instrukcji: ich użycie jest oczywiste
- Zasada 4: Myśl w kategoriach wymiany informacji
- Zasada 5: Niech rzeczy proste będą proste
- Zasada 6: Zaprojektuj UX przed implementacją
- Projekt UX dla konfiguracji
- Projekt UX dla API
- Projekt UX dla rozszerzeń
- Rozważania dotyczące przywództwa
- Podsumowanie
- Ogólne koncepcje UX dla architektów
- Makroarchitektura: Wprowadzenie
- Historia makroarchitektury
- Nowoczesne architektury
- Elementy składowe makroarchitektury
- Rozważania dotyczące przywództwa
- Podsumowanie
- Makroarchitektura: koordynacja
- Podejście 1: Rozpoczynaj przepływ z poziomu klienta
- Podejście 2: Użyj innej usługi
- Podejście 3: Użyj scentralizowanego oprogramowania pośredniczącego
- Podejście 4: Zaimplementuj choreografię
- Rozważania dotyczące przywództwa
- Podsumowanie
- Makroarchitektura: zachowywanie spójności stanu
- Dlaczego transakcje?
- Dlaczego musimy wykroczyć poza transakcje?
- Wykraczanie poza transakcje
- Podejście 1: Ponowne zdefiniowanie problemu w celu obniżenia wymaganych gwarancji
- Podejście 2: Stosowanie kompensacji
- Najlepsze praktyki
- Rozważania dotyczące przywództwa
- Podsumowanie
- Makroarchitektura: obsługiwanie bezpieczeństwa
- Zarządzanie użytkownikami
- Zabezpieczenia interakcji
- Techniki uwierzytelniania
- Techniki autoryzacji
- Typowe scenariusze interakcji w zakresie zabezpieczeń dla aplikacji
- Przechowywanie, RODO i inne regulacje
- Strategia i porady dotyczące bezpieczeństwa
- Wydajność i opóźnienie
- Model zerowego zaufania
- Zachowajmy ostrożność podczas uruchamiania kodu dostarczonego przez użytkownika
- Tematy związane z blockchain
- Inne tematy
- Rozważania dotyczące przywództwa
- Podsumowanie
- Makroarchitektura: obsługiwanie wysokiej dostępności i skali
- Dodawanie wysokiej dostępności
- Replikacja
- Szybkie odzyskiwanie
- Skalowalność
- Skalowanie dla nowoczesnej architektury: rozwiązanie podstawowe
- Skalowanie: narzędzia pracy
- Taktyka skalowania 1: Brak współdzielenia
- Taktyka skalowania 2: Dystrybucja
- Taktyka skalowania 3: Buforowanie
- Taktyka skalowania 4: Przetwarzanie asynchroniczne
- Budowanie skalowalnych systemów
- Podejście 1: Sukcesywna eliminacja wąskich gardeł
- Podejście 2: Projekt typu shared-nothing
- Rozważania dotyczące przywództwa
- Podsumowanie
- Dodawanie wysokiej dostępności
- Makroarchitektura: rozważania na temat mikrousług
- Decyzja 1: Obsługiwanie współdzielonych baz danych
- Rozwiązanie 1: Jedna mikrousługa aktualizująca bazę danych
- Rozwiązanie 2: Dwie mikrousługi aktualizujące bazę danych
- Decyzja 2: Zabezpieczanie mikrousług
- Decyzja 3: Koordynowanie mikrousług
- Decyzja 4: Unikanie piekła zależności
- Kompatybilność wsteczna
- Kompatybilność w przód
- Wykresy zależności
- Luźno powiązane zespoły oparte na repozytoriach jako alternatywa dla mikrousług
- Rozważania dotyczące przywództwa
- Podsumowanie
- Decyzja 1: Obsługiwanie współdzielonych baz danych
- Architektury serwerów
- Tworzenie usługi
- Najlepsze praktyki w zakresie tworzenia usługi
- Techniki zaawansowane
- Korzystanie z alternatywnych modeli I/O i wątków
- Narzut związany z koordynacją
- Wydajne zapisywanie lokalnego stanu
- Wybór systemu transportu
- Obsługa opóźnień
- Rozdzielanie odczytów i zapisów
- Używanie blokad (i sygnalizacji) w aplikacjach
- Korzystanie z kolejek i pul
- Obsługa wywołań usług
- Stosowanie powyższych technik w praktyce
- Aplikacje ograniczone procesorem (procesor >> pamięć i brak operacji I/O)
- Aplikacje ograniczone pamięcią (procesor + pamięć i brak operacji I/O)
- Aplikacje zrównoważone (procesor + pamięć + operacje I/O)
- Aplikacje ograniczone operacjami I/O (operacje I/O + pamięć > procesor)
- Inne kategoryzacje aplikacji
- Rozważania dotyczące przywództwa
- Podsumowanie
- Budowanie stabilnych systemów
- Dlaczego systemy ulegają awariom i co możemy z nimi zrobić?
- Jak obsługiwać znane błędy?
- Nieoczekiwane obciążenie
- Awarie zasobów
- Zależności
- Zmiany dokonywane przez ludzi
- Typowe błędy
- Wycieki zasobów
- Zakleszczenia i powolne operacje
- Jak obsługiwać nieznane błędy?
- Obserwowalność
- Błędy i testowanie
- Łaskawa degradacja
- Rozważania dotyczące przywództwa
- Podsumowanie
- Budowanie i ewoluowanie systemów
- Rozpoczynanie pracy
- Dbanie o podstawy
- Zrozumienie procesu projektowania
- Podejmowanie decyzji i absorbowanie ryzyka
- Wymaganie doskonałości
- Komunikowanie projektu
- Ewoluowanie systemu: jak uczyć się od użytkowników i ulepszać system
- Rozważania dotyczące przywództwa
- Podsumowanie
- Rozpoczynanie pracy
- Indeks
- Polecamy także