SOLID - praktyczny kurs
4.1 (29 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
138 students enrolled

SOLID - praktyczny kurs

Praktyczny kurs SOLIDa oparty na refaktoryzacji aplikacji
4.1 (29 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
138 students enrolled
Last updated 2/2019
Polish
Current price: $9.99 Original price: $114.99 Discount: 91% off
30-Day Money-Back Guarantee
This course includes
  • 4 hours on-demand video
  • 2 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to Udemy's top 3,000+ courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Dowiesz się czym jest SOLID.
  • Będziesz w stanie określić czy kod z którym pracujesz spełnia wymagania SOLID

  • Zobaczysz co trzeba zrobić, aby zmienić kod na taki który jest łatwiejszy w utrzymaniu i rozwijaniu.

Requirements
  • Wymagana jest wiedza z programowania obiektowego.
  • Znajomość języka C# jest przydatna, ale każdy z języków obiektowych, silnie typowanych jest akceptowalny.
  • Podstawa wiedzy z asp mvc się przyda, ale nie jest wymagana.
Description

Na kursie dowiesz się w krótkim czasie czym jest SOLID. Następnie w dłuższym czasie zobaczysz jak zmieniam i refaktoryzuję aplikacje tak aby była zgodna z wcześniej opisanymi regułami SOLID. Wreszcie na koniec zrobię krótki przegląd zmian, opowiem o tym co się stało, dlaczego tak się stało i co można robić dalej. Powiem także czego nie warto robić.

Who this course is for:
  • Programiści którzy chcą aby ich kod stał się bardziej czytelny, łatwiejszy w utrzymaniu oraz rozszerzaniu
Course content
Expand all 43 lectures 04:06:47
+ Wprowadzenie
9 lectures 12:42

Szybkie wprowadzenie do kursu. Przedstawiam się.

Preview 00:47
Co to jest SOLID
00:36
Reguła pojedynczej odpowiedzialności
01:33
Reguła otwarte zamknięte
01:34
Reguła podstawiania Liskov
01:20
Reguła separacji interfejsów
02:08
Reguła odwrócenia zależności
02:12
O projekcie
00:59
Narzędzia
01:33
+ Single Responsibility Principle
9 lectures 01:12:07

Pierwsze zmiany w projekcie.
Na początek idzie HomeController, zostanie rozbity na dwa mniejsze. Nowa funkcjonalności dostanie pod swoje skrzydła użytkownika.

Preview 10:11

Część kodu odpowiedzialna za sprawdzanie czy osoba korzystająca aktualnie z aplikacji jest zalogowana, zostanie wydzielona do osobnej klasy.

Authorization attribute zadba o dostęp do aplikacji
06:52

Dane aplikacji otrzymują dedykowane miejsce tylko dla siebie. Pojawia się zalążek pojęcia baza danych.

Dane aplikacji zostają zebrane w jednym miejscu
06:23

Decyzje związane z ludźmi (stan zalogowania, czy dostęp do funkcjonalności) zostanie oddany do logiki biznesowej.

Biznes przejmuje ludzi
10:54

SRP działa nie tylko na kod. To także dobrze ułożony projekt i jego struktura.

Pojedyncza odpowiedzialność zaaplikowana na strukturę plików
02:29

Kolejne kawałki kodu z logiką są przenoszone z kontrolera do klasy biznesu.

Biznes przejmuje kolejne odpowiedzialności
15:41

Wcześniej kod przenoszony był z HomeController do biznesu. Po przejrzeniu kodu, okazuje się że bałagan pozostał także w pierwotnie wydzielonym AuthorizationControllerze. Ponownie logika jest przenoszona z poziomu kontrolerów do poziomu biznesu.

Biznes jest odpowiedzialny także za bezpieczeństwo
08:42

Oprócz klas i kodu, oraz plików, reguła SRP zostaje zastosowana także do widoku logowania i rejestracji. Gdzie metody te zostają rozbite na dwie osobne.

Rozdzielenie logowania oraz rejestracji
07:23

Po rozbiciu logowania i rejestracji na dwie osobne metody, pozostał wspólny kod służący do transportowania danych (DTO). W tym wykładzie zostaje to naprawione.

Rozdzielenie i oczyszczenie modeli logowania i rejestracji
03:32
+ Dependency Inversion Principle
1 lecture 07:46

Odwrócenie zależności. Kontrolery przestają zależeć od biznesu, wprowadzona zostaje abstrakcja z którą pracować będą controlery. Wykorzystany zostaje wbudowany mechanizm IOC dostępny w asp.net core.

Preview 07:46
+ Jeszcze raz na chwilę SRP
1 lecture 05:27

Baza danych przechowywała informacje o aktualnym użytkowniku. Wprowadzona zostaje sesja, która zdejmuję tę odpowiedzialność z bazy danych.

Preview 05:27
+ Magiczne wartości
1 lecture 02:07

Magic number to zła praktyki i zostaje to zamienione na sensownie brzmiącą zmienną.

Preview 02:07
+ Interface Separation Principle
1 lecture 11:28

Klasa biznes, które do tej pory odbierała kontrolerom odpowiedzialność teraz sama zostaje podzielona. Wprowadzona zostaje klasa biznesu, odpowiedzialna za biznes użytkowników.

Preview 11:28
+ Liskov
7 lectures 01:11:57
Nowa baza dostaje wymagania
08:37
Bazy się uwspólniają.
16:51
Tworzę bazę danych w SQL
07:17
Implementacja kodu w bazie opartej o Entity Framework
07:47
Złamanie reguły LSP - musi działać.
06:08
Naprawienie LSP. Drobne poprawki w kodzie.
09:50
+ Bonus
1 lecture 05:19
Bonus. Znalezienie kodu który się powtarza.
05:19
+ Open Close Principle
11 lectures 46:42
Nowy eksporter rejestrowany w kontenerze zależności
01:02
Nowy eksporter.
03:44
Agregat exporterów
03:34
Implementacja agregatu eksportującego
04:33
Poprawki w eksporterach.
07:48
Generalizacja po stronie kontrolera
05:32
Debugowanie eksporterów
02:01
Bezpieczeństwo eksporterów
03:07
Poprawnie zwracany typ danych w eksporterach
03:48
Ostatnie implementacje w eksporterach
03:54