C# Clean Architecture w Praktyce
- Opis
- Program
- Notice
- Recenzje
Czy chcesz nauczyć się budować skalowalne, testowalne i łatwe w utrzymaniu aplikacje w C#?
Jeśli tak, to ten kurs jest dla Ciebie! Poznasz zasady Clean Architecture i nauczysz się stosować je w praktyce, tworząc dobrze zaprojektowane aplikacje w .NET.
Co Cię czeka w kursie?
Na początku tego kursu przyjrzymy się fundamentalnym zasadom architektonicznym, które są kluczowe dla zrozumienia decyzji projektowych w nowoczesnych aplikacjach. Skupimy się na:
-
Odwróceniu zależności (Dependency Inversion) – jak uniezależnić moduły wysokopoziomowe od niskopoziomowych
-
Separacji odpowiedzialności (Separation of Concerns) – jak rozdzielić różne aspekty aplikacji
-
Zasadzie pojedynczej odpowiedzialności (Single Responsibility) – jak projektować klasy o jednym, jasno określonym celu
-
Zasadzie otwarte-zamknięte (Open-Closed Principle) – jak tworzyć kod otwarty na rozszerzenia, ale zamknięty na modyfikacje
-
Zasadzie DRY (Don’t Repeat Yourself) – jak eliminować duplikację kodu
-
Ignorowaniu warstwy trwałości (Persistence Ignorance) – jak uniezależnić logikę biznesową od mechanizmów przechowywania danych
Następnie przejdziemy do dogłębnego zrozumienia najczęściej stosowanych stylów architektury aplikacji. Nasze projekty będą oparte na zasadach Clean Architecture – podejścia, które kładzie nacisk na rozdzielenie warstw i niezależność domeny biznesowej.
Dowiesz się:
-
Z jakich warstw składa się Clean Architecture i jakie są ich odpowiedzialności
-
Jak wygląda komunikacja między warstwami i przepływ zależności
-
Jakie są konkretne korzyści z wdrożenia tego podejścia
-
Jak w praktyce zorganizować strukturę projektu w Visual Studio zgodnie z tymi zasadami
-
W jakich sytuacjach Clean Architecture jest najlepszym wyborem
Zanim przejdziemy do implementacji, nauczysz się, jak poprawnie analizować wymagania biznesowe – fundament każdego udanego projektu programistycznego. Zrozumiesz, jak przekładać wymagania klienta na struktury kodu, które będą elastyczne i gotowe na przyszłe zmiany.
Dlaczego warto?
To 100% praktyki. Wszystkie omawiane koncepcje będziesz stosować w rzeczywistych projektach. Dzięki temu kursowi:
-
Nauczysz się pisać czysty, modulowy i testowalny kod
-
Zrozumiesz, jak projektować architekturę, która wytrzyma próbę czasu
-
Zdobędziesz umiejętności poszukiwane przez pracodawców
-
Podniesiesz swoją wartość jako programista .NET
Jeśli chcesz przejść na wyższy poziom programowania w C# i pisać kod, który będzie nie tylko działać, ale również będzie łatwy w utrzymaniu i rozwoju – ten kurs jest właśnie dla Ciebie.
-
1IntroPodgląd 01:53
-
2WstępPodgląd 01:40
-
3Odwróceniu zależności (DI - Dependency Inversion)04:30
-
4Separacja odpowiedzialności (SoC - Separation of Concerns)03:09
-
5Zasada pojedyńczej odpowiedzialności (SRP - Single Responsibility Principle)05:03
-
6Zasada otwarte-zamknięte (OCP - Open-Closed Principle)04:00
-
7Nie Powtarzaj Się (DRY - Don't Repeat Yourself)01:42
-
8Ignorowanie warstwy trwałości (Persistence Ignorance)01:52
-
9Architektura Wszystko w jednym (All-In-One Architecture)Podgląd 03:20
-
10Architektura warstwowa (Layered Architecture)05:44
-
11Czysta architektura (Clean Architecture)02:41
-
12Struktura koncentryczna (Cicular Design)02:06
-
13Warstwy (Layers)03:57
-
14Zalety Czystej Architektury02:39
-
15Praktyczna Organizacja Kodu03:17
-
16Kiedy Stosować Czystą Architekturę01:29
-
17Projektowanie Aplikacji Kursowej - MVPPodgląd 05:13
-
18Tworzymy Rozwiązanie i Dodajemy Strukture Folderów02:33
-
19Dodajemy projekt dla Domeny02:18
-
20Dodajemy pierwszą encje Category03:51
-
21Dodajemy encje Course03:35
-
22Dodajemy encje Order02:14
-
23Dodajemy encje bazową AuditableEntity04:19
-
24Główne Cele04:01
-
25Dodanie projektu Application02:47
-
26Dodajemy Repozytorium Generyczne03:34
-
27Dodajemy Repozytoria Specyficzne04:00
-
28MediateR05:30
-
29Automapper01:54
-
30Dodanie MediatR i AutoMapper02:15
-
31Pobranie listy wszystkich kursów, dodanie pierwszego query - GetCoursesListQuery03:49
-
32Dodanie pierwszego ViewModelu - CourseListVm02:42
-
33Dodanie handlera obsługującego nasze query - GetCoursesListQueryHandler07:25
-
34Dodanie profilu mapowania (Mapping Profile)03:02
-
35Pobieranie szczegółów kursu, dodanie query - GetCourseDetailQuery02:38
-
36Dodanie CourseDetailVm03:36
-
37Dodanie handlera GetCourseDetailQueryHandler04:58
-
38Aktualizacja profilu mapowania01:12
-
39Rejestrowanie w kolekcji usług04:01
-
40CQRS - Segregacja Odpowiedzialności Zapytań i Poleceń02:21
-
41Dodanie CQRS03:37
-
42Organizacja Kodu Oparta na Funkcjach (Features)01:47
-
43Dodanie Features02:33
-
44Dodanie zapytania pobierajacego listę kategorii i handlera do obsługi zapytania08:51
-
45Dodanie zapytania pobierajacego listę kategori z powiazanymi kursami i handlera12:01
-
46Tworzenie nowych encji w aplikacji02:21
-
47Dodanie CreateCourseCommand06:26
-
48Dodanie UpdateCourseCommand06:30
-
49Dodanie DeleteCourseCommand04:46
-
50Walidację naszych danych04:52
-
51Dodanie CreateCourseCommandValidator06:10
-
52Walidacja przychodzących danych w CreateCourseCommandHandler02:08
-
53Dodanie niestandartowych wyjatków08:04
-
54Sprawdzmy czy wystąpiły błędy walidacyjne06:42
-
55Dodanie CreateCategoryCommand03:00
-
56Dodanie BaseResponse03:56
-
57Dodanie CreateCategoryCommandResponse02:58
-
58Dodanie CreateCategoryCommandValidator03:33
-
59Dodanie CreateCategoryCommandHandler09:44
-
60Podsumowanie01:46
-
61Zrozumienie celu projektów infrastrukturalnych06:11
-
62Dodawanie trwałości danych z Entity Framework Core06:05
-
63Dodanie Entity Framework Core03:58
-
64Dodanie DbContext07:24
-
65Dodanie Konfiguracji encji05:06
-
66Dodanie danych początkowych (Seed Data)04:59
-
67Dodanie Base Repository07:37
-
68Dodanie Implementacji specyficznych repozytoriów - CourseRepository04:07
-
69Dodanie CategoryRepository04:18
-
70Dodanie OrderRepository06:03
-
71Rejestracja usług w kolekcji usług ASP.NET Core05:53
-
72Projekt Infrastruktury03:51
-
73Dodanie Obsługi Wysyłania E-maili05:21
-
74Modyfikacja Logiki Aplikacyjnej celem wysyłania meili04:32
-
75Implementacja IEmailService w Projekcie Infrastruktury10:42
-
76Rejestracja Serwisu w Kontenerze DI04:36
-
77Podsumowanie02:31
-
78Wprowadzenie01:58
-
79Tworzenie projektu API03:45
-
80Dodanie projektu API10:23
-
81Dodanie Migracji06:14
-
82Przejście od usługi do MediatR06:49
-
83Implementacja CategoryController z wykorzystaniem MediatR08:15
-
84Implementacja CoursesController z wykorzystaniem MediatR08:44
-
85Optymalizacja zwracanych danych w API: Praktyczne podejście03:20
-
86Zwracanie modeli widoku i odpowiedzi05:21
-
87Dodawanie obsługi zwracania pliku CSV z API16:07
-
88Eksportowanie do Excela - CsvExporter09:25
-
89Udostępnianie funkcjonalności API za pomocą Swagger03:10
-
90Integracja Swagger z naszym API08:47
-
91Podsumowanie01:44
-
92Wprowadzenie01:23
-
93Zrozumienie różnych typów testów05:54
-
94Tworzenie testów jednostkowych02:35
-
95Konfiguracja projektu testów jednostkowych05:34
-
96Tworzenie mocków dla zależności08:51
-
97Testowanie GetCategoriesListQueryHandler08:06
-
98Testowanie CreateCategoryCommandHandler06:59
-
99Testy integracyjne - przygotowanie środowiska testowego06:10
-
100Testowanie operacji odczytu z bazy danych08:13
-
101Testowanie operacji zapisu do bazy danych08:00
-
102Testowanie operacji usuwania04:00
Kod źródłowy dostępny na githubie
