Чистий код
та патерни проєктування
В'ячеслав Щупак
Software Developer у Sportradar

8 тижнів
16 онлайн-занять[щопонеділка та щосереди]
Комплексний курс про те, як рефакторити код, прискорювати та спрощувати процес розробки. Щоби більше ніколи не копіпастити чужі «милиці» зі Stack Overflow, а самостійно писати чистий робочий код, застосовуючи патерни проєктування.
*курс викладається українською мовою
(Java / JavaScript)
щоби позбутися «милиць» у коді, без проблем додавати нові фічі в продукт і рефакторити наявні проєкти за допомогою застосування патернів.
(Java / JavaScript)
щоби навчитися рефакторити код, орієнтуватися у бібліотеках та фреймворках, декомпозувати великі системи, підвищити рівень кваліфікації та отримати нову роботу.
щоби не просто вивчити назви патернів, а навчитися застосовувати їх на практиці та вирішувати за допомогою них складні системні задачі; щоби пройти співбесіду та отримати роботу в IT-компанії.
Ви детально вивчите 20+ патернів, які найчастіше зустрічаються при проєктуванні систем. Навчитеся вибирати патерн відповідно до задачі, застосовувати та адаптувати його до свого проєкту.
Лектор у режимі онлайн покаже, як застосовувати кожен шаблон, рефакторити код, покращувати архітектуру та прибирати «милиці». Приклади будуть розбиратися на Java та JavaScript.
На 12 занятті ви отримаєте завдання для фінального проєкту і в результаті напишете застосунок з роботи з базою даних, застосовуючи патерни проєктування. І покладите цей кейс у власне портфоліо.
Ви навчитеся застосовувати патерни, зможете прискорювати та спрощувати процес розробки, що допоможе пройти технічне інтерв'ю та влаштуватися на роботу у велику IT-компанію.

- Дізнаєтеся, що таке патерни та для чого розробнику потрібно в них розбиратися
- Розберетеся в поняттях «чистий код», «рефакторинг», test driven development
- Під час LiveCoding-сесії дізнаєтесь, як рефакторити «поганий» код
- Дізнаєтеся, чим «хороший» код відрізняється від «поганого»
- Ознайомитеся з ознаками «поганого» коду
- Зрозумієте, навіщо дотримуватися чистоти коду
- Розберетеся у типах рефакторингу
- Дізнаєтеся, що таке антипатерни
- Дізнаєтеся, що таке надмірне та недостатнє проєктування
- Навчитеся створювати код, який компілюється та виконується
- Ознайомитеся зі способами реалізації патернів
- Вивчите GRASP-патерни та GoF-патерни
- Навчитеся класифікувати патерни
- Дізнаєтесь, які завдання вирішують породжувальні патерни
- Навчитеся створювати об'єкти за допомогою породжувальних патернів: Abstract Factory, Builder, Factory Method, Prototype
- Вивчите принципи SOLID
- Вивчите DI-фреймворки
- Ознайомитеся з патерном Singleton та прикладами його реалізації різними мовами за допомогою різних DI-фреймворків
- Дізнаєтесь, які завдання вирішують структурні патерни
- Вивчите структурні шаблони: Adapter, Bridge, Facade, Flyweight, Proxy
- Навчитеся застосовувати ці патерни в коді
- Застосуєте Flyweight до проєкту, щоб зменшити споживання пам'яті та навантаження на збирач сміття
- Дізнаєтеся, чим успадкування відрізняється від композиції
- Вивчите шаблон Facade
- Навчитеся застосовувати композицію на практиці
- Вивчите шаблон Decorator та дізнаєтесь, які завдання він вирішує
- Застосуєте Decorator для логування та обробки помилок
- Дізнаєтесь, які завдання вирішують патерни поведінки
- Вивчите шаблони Command та CQRS
- Ознайомитеся з ORM-шаблонами
- Навчитеся застосовувати ці шаблони на практиці
- Вивчите шаблони: State, Strategy, Template Method, Memento, Mediator
- Навчитеся застосовувати та адаптувати ці шаблони
- Вивчите шаблони Observer та Visitor
- Ознайомитеся із завданнями, які вирішують патерни GoF
- Навчитеся вибирати шаблон на основі завдання
- Дізнаєтесь, як розвивалися принципи проєктування та розв'язання спільних проблем
- Розберетеся в задачах, що стоять перед сучасними програмними системами
Вивчите шаблони Enterprise:
- кешування: Cache Dependency та Page Cache
- управління винятками: Exception Shielding
- взаємодія з користувачем: Asynchronous Callback та Chain of Responsibility
- Actor Model pattern
- Event Sourcing pattern
- Отримаєте рекомендації від лектора щодо подальшого кар'єрного розвитку
- Дізнаєтесь, які найпопулярніші запитання ставлять на співбесідах в IT-компаніях