158664
Książka
W koszyku
1Wprowadzenie do przywództwa w oprogramowaniu 2Systemy, 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 3 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 l/O Techniki optymalizacji pamięci Techniki optymalizacji opóźnienia Intuicyjne wyczucie wydajności 4 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 5 Makroarchitektura Historia makroarchitektury Nowoczesne architektury Elementy składowe makroarchitektury Rozważania dotyczące przywództwa 6Makroarchitektura: 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 7Makroarchitektura: 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 8Makroarchitektura: 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 9Makroarchitektura: 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" 10Makroarchitektura: 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 11Architektury serwerów Tworzenie usługi Najlepsze praktyki w zakresie tworzenia usługi Techniki zaawansowane Korzystanie z alternatywnych modeli l/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 l/O) Aplikacje ograniczone pamięcią (procesor + pamięć i brak operacji l/O) Aplikacje zrównoważone (procesor + pamięć + operacje l/O) Aplikacje ograniczone operacjami l/O (operacje l/O + pamięć > procesor) Inne kategoryzacje aplikacji 12Budowanie 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 13Budowanie 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
Pliki multimedialne:
Status dostępności:
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 155563 N (1 egz.)
Strefa uwag:
Tytuł oryginału: Software Architecture and Decision-Making. Leveraging Leadership, Technology, and Product Management to Build Great Products
Uwaga dotycząca bibliografii
Indeks.
Pozycja została dodana do koszyka. Jeśli nie wiesz, do czego służy koszyk, kliknij tutaj, aby poznać szczegóły.
Nie pokazuj tego więcej

Deklaracja dostępności