Warsztat Java #10 - Design Principles i Design Patterns

via Udemy

Go to Course: https://www.udemy.com/course/kurs-java-design-principles-i-design-patterns/

Overview

Zapraszamy na warsztat poświęcony zasadom pisania dobrego i czystego kodu oraz wzorcom projektowym w Javie! Kurs ten pomoże Ci zrozumieć, jak stosować sprawdzone zasady programowania oraz wzorce projektowe, aby rozwiązywać typowe problemy w sposób zrozumiały dla innych programistów i unikać ponownego wymyślania koła. W trakcie warsztatu skupimy się na teorii, ale również będziemy pisać kod, aby pokazać praktyczne zastosowanie omawianych technik.Tematyka warsztatu:Design Principles (Zasady projektowania):DRY (Don't Repeat Yourself): Unikanie powtarzania kodu i promowanie reużywalności.KISS (Keep It Simple, Stupid): Utrzymywanie kodu prostym i zrozumiałym.YAGNI (You Aren't Gonna Need It): Implementowanie tylko tego, co jest obecnie potrzebne.SOLID: Pięć zasad projektowania obiektowego:Single Responsibility Principle (SRP): Każda klasa powinna mieć tylko jedną odpowiedzialność.Open/Closed Principle (OCP): Klasy powinny być otwarte na rozszerzenie, ale zamknięte na modyfikację.Liskov Substitution Principle (LSP): Obiekty w programie powinny być zastępowalne ich podtypami.Interface Segregation Principle (ISP): Klienci nie powinni być zmuszani do zależności od interfejsów, których nie używają.Dependency Inversion Principle (DIP): Moduły wyższego poziomu nie powinny zależeć od modułów niższego poziomu. Oba powinny zależeć od abstrakcji.Design Patterns (Wzorce projektowe):Creational Patterns (Wzorce kreacyjne): Singleton, Factory Method, Abstract Factory, Builder, Prototype.Structural Patterns (Wzorce strukturalne): Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy.Behavioral Patterns (Wzorce behawioralne): Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor.Wzorce projektowe na które się natknąć w swojej pracy:Singleton: Zapewnia, że klasa ma tylko jedną instancję i zapewnia globalny punkt dostępu do tej instancji.Factory Method: Definiuje interfejs do tworzenia obiektów, ale pozwala podklasom decydować, którą klasę instancjonować.Abstract Factory: Umożliwia tworzenie rodzin powiązanych lub zależnych obiektów bez określania ich konkretnych klas.Builder: Oddziela konstrukcję skomplikowanego obiektu od jego reprezentacji.Prototype: Pozwala na tworzenie nowych obiektów poprzez klonowanie istniejących instancji.Adapter: Umożliwia współpracę klas o niekompatybilnych interfejsach.Bridge: Oddziela abstrakcję od jej implementacji, dzięki czemu obie mogą zmieniać się niezależnie.Composite: Komponuje obiekty w struktury drzewiaste, umożliwiając traktowanie pojedynczych obiektów i ich kompozycji jednolicie.Decorator: Dynamicznie dodaje nowe funkcje do obiektów bez zmiany ich klasy.Facade: Dostarcza uproszczony interfejs do złożonego systemu.Flyweight: Minimalizuje zużycie pamięci poprzez współdzielenie wspólnych stanów między wieloma obiektami.Proxy: Zastępuje inny obiekt, aby kontrolować dostęp do niego.Chain of Responsibility: Przekazuje żądanie przez łańcuch obiektów, aż któryś z nich obsłuży żądanie.Command: Reprezentuje działanie jako obiekt, umożliwiając opóźnienie jego wykonania lub kolejkowanie.Interpreter: Definiuje gramatykę i interpreter dla prostego języka.Iterator: Umożliwia sekwencyjny dostęp do elementów kolekcji bez ujawniania jej wewnętrznej struktury.Mediator: Definiuje obiekt, który enkapsuluje sposób, w jaki obiekty współpracują.Memento: Przechowuje stan obiektu, aby można go było przywrócić później.Observer: Definiuje zależność jeden-do-wielu między obiektami, tak aby zmiana w jednym obiekcie była automatycznie przekazywana do innych.State: Pozwala obiektowi zmieniać swoje zachowanie, gdy zmienia się jego stan wewnętrzny.Strategy: Definiuje rodzinę algorytmów, które mogą być używane zamiennie.Template Method: Definiuje szkieleton algorytmu, pozwalając podklasom definiować pewne kroki.Visitor: Dodaje nowe operacje do klas bez zmiany tych klas.Format kursu: Warsztat będzie miał formę wykładów z praktycznymi przykładami kodu. Choć skupimy się na teorii, będziemy również pisać kod, aby pokazać, jak zastosować zasady i wzorce projektowe w praktyce. Materiały będą dostępne w postaci notatek, które możesz przyswajać według własnych preferencji.Wersja Javy: Minimalna wymagana wersja Javy na Twoim komputerze to 8, ale wersja nie ma większego znaczenia, ponieważ będziemy rozmawiać głównie o zasadach i metodach pisania kodu.Warsztat ten jest 10. warsztatem w ramach ścieżki Zajavka. Oczywiście możesz go realizować niezależnie od innych moich materiałów.Czego nauczy się uczestnik?Uczestnik warsztatu „Design Principles i Design Patterns" zdobędzie kompleksową wiedzę oraz praktyczne umiejętności związane z zasadami pisania czystego kodu i stosowaniem wzorców projektowych w Javie. Warsztat „Design Principles i Design Patterns" jest idealny dla osób, które chcą zrozumieć i efektywnie stosować zasady pisania dobrego i czystego kodu oraz wzorce projektowe w swoich projektach programistycznych. Niezależnie od Twojego poziomu doświadczenia, kurs ten dostarczy Ci niezbędnych narzędzi i wiedzy, abyś mógł lepiej projektować, implementować i utrzymywać swoje aplikacje.

Skills

Reviews