E-book details

Czysta architektura w .NET

Czysta architektura w .NET

Dino Esposito

Ebook

Co robić w każdej fazie projektowania czystej architektury aplikacji .NET

Opanuj zaawansowane techniki .NET, skupiając się na rzeczywistej wartości zapewnianej przez pracę w modularnej, czystej architekturze. Autor, posiadacz tytułu MVP dla Microsoft Data Platform, wyjaśnia kluczowe koncepcje czystej architektury, które z domieszką pragmatyzmu i dyscypliny projektowej pomagają zastosować tę wiedzę w rzeczywistym projekcie. Zaczynając od poszukiwań architektury modularnej i przedstawienia metodologii projektowania dziedzinowego (DDD), Esposito podkreśla rolę, jaką modularyzacja odgrywa w zarządzaniu złożonością w wytwarzaniu oprogramowania. Kolejne warstwy architektury, która jest modularna i łatwa w utrzymaniu, prezentuje poprzez przykładowy projekt, który nie jest jedynie kolejną zabawką, ale rzeczywistym narzędziem przydatnym dla czytelnika. Na koniec przechodzi do typowych dylematów, przed którymi stoją programiści i operatorzy, łącząc historyczne osiągnięcia z praktycznymi rozwiązaniami na dziś.

Ta książka pomoże Ci:

  • Zrozumieć znaczenie architektury modularnej w historii oprogramowania
  • Poznać koncepcje projektowania dziedzinowego - zarówno strategiczne, jak i praktyczne
  • Stosować techniki analizy modularnej w swoich projektach
  • Uzyskać najwięcej korzyści z architektury warstwowej
  • Szczegółowo poznać indywidualne warstwy - prezentacji, aplikacji, domenowej i infrastruktury
  • Zrozumieć celowość używania usług domenowych do oddzielenia surowych zadań przechowywania danych od zadań biznesowych
  • Poznać szereg najlepszych praktyk C# dla modelowania klas na podstawie bytów ze świata rzeczywistego
  • Zrozumieć zalety mikrousług w porównaniu do monolitów modularnych
  • Poznać typowe problemy wdrożeniowe po stronie klienta i serwera
  • Skonfigurować swoją architekturę, przetestować założenia i uzyskać jeszcze więcej pomocy

Dla profesjonalistów IT

Dla profesjonalistów oprogramowania, architektów, czołowych programistów, wykładowców, konsultantów i analityków

Dla każdego, kto chce zostać architektem oprogramowania i poznać zalety czystej, warstwowej i modularnej architektury

O autorze

Dino Esposito napisał do tej pory ponad 20 książek i przeszło tysiąc artykułów. Jego kariera programisty obejmuje ponad trzy dekady. Powszechnie uznaje się, że jego książki i artykuły pomogły w rozwoju profesjonalnym tysięcy programistów .NET. Zaczynał w roku 1992 jako programista C i był świadkiem debiutu .NET, powstania i upadku Silverlight, dziewięciu wcieleń JavaScript oraz pojawiania się i znikania rozmaitych wzorców architektonicznych dla przetwarzania rozproszonego. Po dwóch latach pracy jako konsultant w branży energetycznej, obecnie kieruje zespołem IT, który zbudował i utrzymuje (w ASP.NET) działającą non-stop platformę do obsługi rozgrywek zawodowego tenisa. Jego inny zespół buduje oprogramowanie wspierające terapie na potrzeby szpitala watykańskiego. Można się z nim skontaktować poprzez stronę https://youbiquitous.net albo LinkedIn.

  • Spis treści
  • Podziękowania
  • Wprowadzenie
  • Święty Graal modularności
    • W poszukiwaniu modułowej architektury oprogramowania
      • Na początku były trzy poziomy
        • Podstawowe cechy systemu trzypoziomowego
        • Warstwy, poziomy i modularność
      • Kanoniczna architektura DDD
        • Proponowana architektura wspierająca
        • Dodatkowe składniki przepisu
      • Różne odmiany warstw
        • Architektura heksagonalna
        • Czysta architektura
        • Architektura funkcjonalna
      • Podsumowanie
    • Prawdziwa istota DDD
      • Projektowanie dziedzinowe
        • Analiza strategiczna
        • Projektowanie taktyczne
        • Nieporozumienia w DDD
        • Narzędzia projektowania strategicznego
      • Wszechobecny język
        • Słownik specyficzny dla dziedziny
        • Budowanie słownika
        • Synchronizowanie biznesu i kodu
      • Ograniczony kontekst
        • Zrozumieć niejednoznaczność
        • Wyprowadzanie ograniczonych kontekstów
      • Mapa kontekstów
        • Upstream i downstream
        • Przykładowa mapa kontekstów
        • Przykładowa mapa wdrożenia
      • Podsumowanie
    • Przygotowywanie podłoża pod modularność
      • Aspekty i zasady modularyzacji
        • Separacja zagadnień
        • Słabe sprzężenia
        • Ponowne użycie
        • Zarządzanie zależnościami
        • Dokumentacja
        • Testowalność
      • Wprowadzanie modularności
        • Warstwa prezentacji: interakcje ze światem zewnętrznym
        • Warstwa aplikacji: przetwarzanie otrzymanych poleceń
        • Warstwa domenowa: reprezentowanie jednostek dziedziny
        • Warstwa danych/infrastruktury: utrwalanie danych
      • Osiąganie modularności
        • Więcej modularności w monolitach
        • Przedstawiamy mikrousługi
      • Najprostsze możliwe rozwiązanie
        • Łatwość utrzymywania
        • Projektowanie dla testowalności
      • Podsumowanie
  • Czyszczenie architektury
    • Warstwa prezentacji
      • Project Renoir: cel ostateczny
        • Przedstawiamy aplikację
        • Abstrakcyjna mapa kontekstów
        • Tworzenie fizycznej mapy kontekstów
      • Inżynieria wymagań biznesowych
        • Podział projektów programistycznych
        • Storyboardy oparte na zdarzeniach
        • Fundamentalne zadania w Project Renoir
      • Granice i wdrażanie warstwy prezentacji
        • Pukanie do bram serwera web
        • Punkty końcowe aplikacji ASP.NET
      • Tworzenie warstwy prezentacji
        • Łączenie się z biznesowymi przepływami pracy
        • Front-end i powiązane technologie
        • Prezentacja z tylko API
      • Podsumowanie
    • Warstwa aplikacji
      • Architektoniczny widok Project Renoir
        • Podsystem kontroli dostępu
        • Podsystem zarządzania dokumentami
        • Project Renoir w Visual Studio
      • Orkiestracja zadań
        • Czym jest zadanie?
        • Przykładowe zadanie rozproszone
        • Przykładowe zadanie w Project Renoir
      • Przesyłanie danych
        • Od warstwy prezentacji do warstwy aplikacji
        • Od warstwy aplikacji do warstwy utrwalania
      • Fakty dotyczące implementacji
        • Konspekt warstwy aplikacji
        • Propagowanie ustawień aplikacji
        • Zapisywanie zdarzeń
        • Obsługa i zgłaszanie wyjątków
        • Buforowanie i wzorce buforowania
        • Wstrzykiwanie hubów połączeń SignalR
      • Granice i wdrożenie warstwy aplikacji
        • Lista zależności
        • Opcje wdrażania
      • Podsumowanie
    • Warstwa domenowa
      • Dekompozycja warstwy domenowej
        • Model domeny biznesowej
        • Pomocnicze usługi domeny
      • Wyprowadzanie modelu domeny
        • Przenoszenie uwagi z danych na zachowanie
        • Formy życia w modelu domeny
        • Model domeny w Project Renoir
      • Autostopem po domenie
        • Leczenie anemii oprogramowania
        • Wspólne cechy klas encji
        • Reguły etykiety
        • Konwencje stylistyczne
        • Pisanie prawdziwie czytelnego kodu
      • Podsumowanie
    • Usługi domeny
      • Czym w ogóle jest usługa domeny?
        • Bezstanowa natura usług domeny
        • Oznaczanie klas usług domeny
        • Usługi domeny i UL
        • Dostęp do danych w usługach domeny
        • Wstrzykiwanie danych do usług domeny
      • Typowe scenariusze usług domeny
        • Ustalanie statusu lojalności klienta
        • Reagowanie na zdarzenia domenowe
        • Wysyłanie emaili biznesowych
        • Usługa haszowania haseł
      • Fakty dotyczące implementacji
        • Budowanie przykładowej usługi domeny
        • Użyteczne i powiązane wzorce
        • Dostosowany wzorzec REPR
      • Zagadnienia otwarte
        • Czy usługi domeny są naprawdę konieczne?
        • Dodatkowe scenariusze dla usług domeny
      • Podsumowanie
    • Warstwa infrastruktury
      • Odpowiedzialności warstwy infrastruktury
        • Utrwalanie i przechowywanie danych
        • Komunikacja z usługami zewnętrznymi
        • Komunikacja z usługami wewnętrznymi
      • Implementowanie warstwy utrwalania
        • Klasy repozytoriów
        • Używanie Entity Framework Core
        • Używanie Dappera
        • Hostowanie logiki biznesowej w bazie danych
      • Architektura magazynu danych
        • Wprowadzenie rozdziału poleceń i zapytań
        • Skrótowe przedstawienie event sourcing
      • Podsumowanie
  • Typowe dylematy
    • Mikrousługi kontra modularne monolity
      • Odejście od tradycyjnych monolitów
        • Nie wszystkie monolity są takie same
        • Potencjalne wady monolitów
      • Fakty dotyczące mikrousług
        • Pierwsi użytkownicy
        • Założenia architektury mikrousług i SOA
        • Jak duże lub małe jest mikro?
        • Zalety mikrousług
        • Szara strefa
      • Czy mikrousługi pasują do wszystkich zastosowań?
        • Wielkie nieporozumienia dotyczące wielkich firm
        • SOA i mikrousługi
        • Czy mikrousługi pasują dobrze do naszego scenariusza?
        • Planowanie i wdrażanie
      • Modularne monolity
        • Delikatny przypadek projektów greenfield
        • Szkic strategii modularnego monolitu dla nowych projektów
        • Od modułów do mikrousług
      • Podsumowanie
    • Strona kliencka kontra serwerowa
      • Krótka historia aplikacji webowych
        • Era prehistoryczna
        • Era skryptów po stronie serwera
        • Era skryptów po stronie klienta
      • Renderowanie po stronie klienta
        • Warstwa HTML
        • Warstwa API
        • W stronę ery nowoczesnej
      • Renderowanie po stronie serwera
        • Separacja front-endu i back-endu
        • Opcje dla front-endu w ASP.NET
        • ASP.NET Core kontra Node.js
        • Saga blokowania/nie blokowania
      • Podsumowanie
    • Dług i kredyt techniczny
      • Ukryty koszt długu technicznego
        • Radzenie sobie z długiem technicznym
        • Sposoby radzenia sobie z długiem
        • Wzmacniacze długu
      • Ukryte zyski kredytu technicznego
        • Teoria rozbitych okien
        • Potęga refaktoryzacji
        • To co robisz, rób dobrze i rób to od razu
      • Podsumowanie
  • Akronimy
  • Indeks
  • Title: Czysta architektura w .NET
  • Author: Dino Esposito
  • ISBN: 9788375415414, 9788375415414
  • Date of issue: 2024-06-03
  • Format: Ebook
  • Item ID: e_3xzh
  • Publisher: Promise