Chcesz tworzyć lepsze, łatwiejsze w utrzymaniu i rozszerzaniu projekty? 🎯 Podczas tego kursu na konkretnych przykładach poznasz ✅ paradygmaty OOP (enkapsulacja, abstrakcja, dziedziczenie, polimorfizm) oraz ✅ regułę SOLID, które umożliwiają tworzenie „czystego kodu”. A to wszystko przy wykorzystaniu ✅ prototypów – niedocenianych fundamentów OOP w JavaScript!
Poznasz obiekty od podszewki, dzięki czemu lepiej zrozumiesz programowanie obiektowe (OOP) – w tym ograniczenia języka JavaScript (które pomaga rozwiązać TypeScript).
Zrozumiesz, jak działa dziedziczenie przy pomocy prototypów i konstruktorów oraz czym jest lukier składniowy (np. słowo kluczowe `class` czy `extends`).
Na praktycznych przykładach przyswoisz zastosowanie dobrych praktyk, w tym m.in. reguł DRY, KISS i SOLID.
W efekcie będziesz pisać lepszy kod. Czystszy i wydajniejszy! Będzie go też łatwiej reużywać i rozbudowywać w razie rozszerzania projektu.
01. Wprowadzenie do OOP: poznasz pierwsze pojęcia z zakresu programowania zorientowanego obiektowo i podstawy implementacji naszego projektu. Przypomnisz sobie także podstawową wiedzę z JavaScriptu.
02. Proces tworzenia obiektów: przedstawię Ci sposoby tworzenia obiektów bez łamania zasady DRY! Dowiesz się, jak wykonywać operacje na już stworzonych elementach i zapisywać je w możliwie najprostszej formie (reguła KISS).
03. Zarządzanie obiektami: każdy obiekt to zestaw właściwości, czyli par klucz-wartość. Przyjrzymy się im bliżej. Dowiesz się, jak operować na tych elementach, i zgłębisz zaawansowane tematy samego JavaScriptu, które poszerzą Twoje możliwości pracy z obiektami.
04. Prototypy – niedoceniany fundament OOP: w języku JavaScript obiektowość związana jest z prototypami. Poznasz zasady ich działania oraz sposoby wykorzystania. To będzie też etap pierwszej poważnej refaktoryzacji kodu.
05. Paradygmaty programowania obiektowego: poznasz cztery filary programowania obiektowego. Przyjrzysz się im z bliska w teorii i praktyce oraz poznasz często wykorzystywane schematy, które pozwalają tworzyć lepszy kod.
06. Odpowiednie podejście do enkapsulacji: wdrożysz pierwszy paradygmat przedstawiony w poprzednim module. Kod naszego projektu powinien stać się czytelniejszy i odporniejszy na błędy.
07. Zrozumienie abstrakcji: czas na drugi paradygmat OOP. Razem z nim omówimy też m.in. widoczność (dostępność) właściwości obiektów.
08. Wykorzystanie pełnej mocy dziedziczenia: przy okazji trzeciego paradygmatu przypomnisz sobie działanie słowa kluczowego extends. Dowiesz się również, jak JS różni się od innych języków programowania pod względem dostępności właściwości obiektów.
09. Zrozumienie wartości polimorfizmu: przy pomocy tego i poprzedniego paradygmatu OOP, czyli dziedziczenia oraz polimorfizmu, postarasz się zmniejszyć ilość pisanego kodu i zwiększyć jego elastyczność. Sprawdzisz, jaki to będzie miało wpływ na implementację naszego projektu.
10. Wyższość kompozycji nad dziedziczeniem: wdrożyłeś do projektu dziedziczenie, lecz niestety często jest ono niepotrzebnie nadużywane. Kompozycja, którą poznasz w tym module, może okazać się bardziej niezawodnym rozwiązaniem.
11. SOLID – zasada jednej odpowiedzialności: poznasz i wdrożysz zasadę jednej odpowiedzialności (SRP). Dowiesz się również, w jaki sposób rozwiązuje ona problemy powodowane przez grupowanie odpowiedzialności.
12. SOLID – zasada otwarte-zamknięte: czas na zasadę otwarte-zamknięte (OCP). Dzięki obu poznanym zasadom będziesz pisać jeszcze lepsze projekty.
13. SOLID – zasada podstawienia Liskov: tym razem skupimy się na zasadzie podstawienia Liskov (LSP), poznasz też wartość klasy abstrakcyjnej.
14. SOLID – zasada segregacji interfejsów: poznasz zasadę segregacji interfejsów (ISP) oraz zobaczysz, a jaki sposób wdrożyć ją w naszym projekcie.
15. SOLID – zasada odwrócania zależności: na końcu omówimy zasadę odwrócenia zależności (DIP). Te trzy ostatnie zasady pozwolą Ci wytwarzać oprogramowanie wysokiej jakości.
16. OOP – podsumowanie: przypomnisz sobie wszystkie poznane pojęcia. Razem podsumujemy paradygmaty i zasady, które wykorzystaliśmy w projekcie. Dowiesz się również, co jeszcze możesz ulepszyć w stworzonym rozwiązaniu we własnym zakresie.