Architektura oprogramowania i Katowice

Nadrzędnym celem systemów oprogramowania (a więc i architektury oprogramowania) jest budowanie systemów spełniających standardy jakości i zapewniających najwyższy zwrot z inwestycji (ROI) w dłuższej perspektywie lub w określonym przedziale czasu. Świetny produkt wymaga połączenia technologii, …

od 67,83 Najbliżej: 26 km

Liczba ofert: 1

Oferta sklepu

Opis

Nadrzędnym celem systemów oprogramowania (a więc i architektury oprogramowania) jest budowanie systemów spełniających standardy jakości i zapewniających najwyższy zwrot z inwestycji (ROI) w dłuższej perspektywie lub w określonym przedziale czasu. Świetny produkt wymaga połączenia technologii, przywództwa i zarządzania produktem (wliczając w to UX). Przywództwo polega przede wszystkim na zarządzaniu niepewnością i dokonywaniu prawidłowej oceny sytuacji. Aby tworzyć świetne produkty, liderzy techniczni muszą łączyć technologię, przywództwo i wiedzę z zakresu zarządzania produktem, a także podejmować właściwe decyzje. Wiele błędów technicznych wynika z luki między wiedzą na temat tych trzech elementów i oceną sytuacji. W książce Architektura oprogramowania i podejmowanie decyzji Srinath Perera wyjaśnia zasady i koncepcje, które architekci oprogramowania muszą dogłębnie zrozumieć, oraz sposoby stosowania tych zasad do zarządzania niepewnością. Pytania i zasady omówione w tej książce pomagają zarządzać niepewnością podczas tworzenia architektury oprogramowania i zapewniają ramy do podejmowania decyzji. Ta książka jest przeznaczona dla wszystkich liderów technicznych w branży oprogramowania, którzy dokonują całościowej oceny budowanych przez siebie systemów, jak również dla przyszłych liderów uczących się tego rzemiosła. Zrozum znaczenie podejmowania zdecydowanych decyzji na przykładach wielkich liderów technicznych, takich jak bracia Wright i Kelly Johnson Wykorzystaj pięć kluczowych pytań i siedem ważnych zasad, aby zrozumieć niepewności podczas projektowania i podjąć strategiczne decyzje architektoniczne Podejdź do projektu systematycznie, najpierw na poziomie makro, a następnie na poziomie indywidualnej usługi Wykorzystaj wiedzę z zakresu przywództwa, aby podejmować lepsze decyzje dotyczące architektury oprogramowania. Myśl głęboko, ale implementuj powoli. Srinath Perera jest głównym architektem w WSO2. Przez ostatnich 20 lat był deweloperem rozwiązań open source Apache. Srinath odegrał znaczącą rolę w projektowaniu Apache Axis2, Apache Airavata, WSO2 CEP (Siddhi) i WSO2 Choreo. Zrecenzował architektury dla ponad 10 projektów i ponad 100 wydań. 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 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 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 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 Indeks Polecamy także O autorze: Srinath Perera is a senior software architect at WSO2 Inc., where he overlooks the overall WSO2 platform architecture with the CTO. He also serves as a research scientist at Lanka Software Foundation and teaches as a visiting faculty at Department of Computer Science and Engineering, University of Moratuwa. He is a co-founder of Apache Axis2 open source project, and he has been involved with the Apache Web Service project since 2002 and is a member of Apache Software foundation and Apache Web Service project PMC. He is also a committer of Apache open source projects Axis, Axis2, and Geronimo.He received his Ph.D. and M.Sc. in Computer Sciences from Indiana University, Bloomington, USA and received his Bachelor of Science in Computer Science and Engineering degree from the University of Moratuwa, Sri Lanka.He has authored many technical and peer reviewed research articles, and more details can be found on his website. He is also a frequent speaker at technical venues.He has worked with large-scale distributed systems for a long time. He closely works with Big Data technologies like Hadoop and Cassandra daily. He also teaches a parallel programming graduate class at University of Moratuwa, which is primarily based on Hadoop.

Specyfikacja

Podstawowe informacje

Autor
  • PRACA ZBIOROWA
Wybrani autorzy
  • Praca zbiorowa
Format
  • PDF
  • EPUB
Ilość stron
  • 248
Rok wydania
  • 2024
Wybrane wydawnictwa
  • Promise