Návrh Školení
Od jazykových dovedností k návrhu řešení
- Pokročilé funkce jazyka C# a jejich dopad na návrh.
- Získání záměru návrhu z existujícího kódu.
Analýza požadavků a modelování domény
- Použití případů, uživatelských příběhů a kritérií přijetí.
- Návrh doménových modelů a univerzální jazyk (ubiquitous language).
Principy softwarového návrhu
- Aplikace principů SOLID v řešeních .NET.
- Spojení (coupling), soudržnost (cohesion) a směr závislostí.
Navrhové vzory pro aplikace .NET
- Výběr tvorbých, strukturálních a chovacích vzorů.
- Vzory a anti-vzory v existujícím kódu.
Architektonické styly a technická rozhodování
- Srovnání vrstvené, hexagonální a čistší architektury (clean architecture).
- Záznamy architektonických rozhodnutí a analýza kompromisů (trade-offů).
Plánování struktury řešení
- Organizace řešení a projektů pro velké kódbasy.
- Modulární monolit versus hranice služeb (service-oriented boundaries).
Moderní C# pro udržovatelný kód
- Vzorové porovnávání (pattern matching), záznamy (records) a typy s referencemi, které mohou být prázdné (nullable reference types).
- Generika, LINQ a funkcionální kompozice.
Práce s výjimkami, logování a pozorovatelnost
- Strategie výjimek a kontrakt chybových stavů.
- Strukturované logování, korelace a kontroly zdraví (health checks).
Reflexe, atributy a meta-programování
- Návrh řízený atributy a využití reflexe.
- Generátory zdrojového kódu a generování kódu v době kompilace.
Základy ASP.NET Core
- Model hostování, injekce závislostí a konfigurace.
- Žádostní pipeline, middleware a filtry.
Návrh REST API
- Modelování zdrojů a sémantika HTTP.
- Verziování, validace a chybové odpovědi.
- Kontrakty API pomocí OpenAPI.
Zabezpečení aplikací .NET
- Autentizace a autorizace pomocí OpenID Connect.
- Autorizace na základě politik a správa tajných hodnot (secrets management).
Modelování hrozeb a bezpečný návrh
- Modelování STRIDE a hranice důvěry (trust boundaries).
- Revize bezpečného návrhu před implementací.
Přístup k datům pomocí Entity Framework Core
- Modelování entit a vztahů.
- Životní cyklus DbContext a strategie migrací.
Výkon dotazů a datová architektura
- Strategie načítání a pasti předčasného načítání (eager loading).
- Transakce, tokeny konkurence a obcházení EF.
Konkurence a asynchronní programování
- Úlohy (Tasks), TPL a pasti konstrukce async/await.
- Synchronizace, zrušení a bezpečnost vláken (thread safety).
Optimalizace výkonu
- Profílování a benchmarkování pomocí BenchmarkDotNet.
- Paměť, alokace a sbírka nepoužité paměti (garbage collection).
- Strategie ukládání do mezipaměti (caching) a testování zatížení.
Strategie testování napříč vrstvami
- Hranice mezi unit, integračním a end-to-end testováním.
- Testovatelná architektura a testovací dvojnici (test doubles).
Nasazení a provozní připravenost
- Kontejnery, konfigurace a pipeline CI/CD.
- Diagnostika produkčního prostředí a bezpečnost vydávání.
Závěrečný projekt: Revize návrhu a implementace
- Architektonická revize ukázkové aplikace.
- Implementace a refaktorizace funkčního úseku (feature slice).
Požadavky
- Zkušenosti s programováním v jazyce C#
- Funkční znalosti objektově orientovaného programování
- Základní znalosti SQL a relačních databází
Cílová skupina
- Vývojáři .NET
- Softwaroví inženýři a techničtí vedoucí
- Vývojáři, kteří se posouvají do rolí zaměřených na návrh aplikací
Reference (4)
Bylo to individuální školení, takže bylo přizpůsobeno mým konkrétním potřebám. Shane upozornil na prvky WPF/C#, které by mi mohly být užitečné v mých vývojových projektech.
Warren Nolan - Northrop Grumman
Kurz - Programming in WPF
Přeloženo strojem
Vědomosti ošetřovatele, jeho zapojení a vztah k účastníkům
Adam Kuklewski - GE Medical Systems Polska
Kurz - Technical Architecture and Patterns
Přeloženo strojem
Vysvětlení a interaktivita trenéra byla skvělá; i když jsem pravděpodobně nebyl dostatečně zkušený, přece jen jsem se hodně naučil!
Pieter Bruynseels - Spot Buy Center BV
Kurz - Design Patterns
Přeloženo strojem
Hezky a přátelský. Velmi vzdělaný. Doporučil bych Shana ostatním.
Joshua - California State University Bakersfield
Kurz - Programming in C# with Visual Studio 2022
Přeloženo strojem