12 декабря 2020 года IT-компания MediaSoft при поддержке онлайн-университета Skillbox проведет трехчасовой онлайн мастер-класс «Пишем свой DI-контейнер на Java». На занятии мы сосредоточимся на самой важной части фреймворка — внедрении зависимостей (Dependency Injection, DI): напишем свой DI-контейнер на Java, рассмотрим реализацию ряда паттернов проектирования, а главное — поймем, как работает внедрение зависимостей и инверсия управления под капотом Spring.
Что будем делать?
Познакомимся со структурой современного Java-приложения корпоративного уровня;
Разберемся с тем, что такое зависимости, как с ними работать, и какие преимущества дает нам внедрение зависимостей;
Рассмотрим принцип инверсии управления и то, как с его помощью можно снизить связность компонентов и улучшить модульность и расширяемость ПО;
Реализуем собственный DI-контейнер, который будет инициализировать зависимости, внедрять их в компоненты, а также управлять их жизненным циклом;
Рассмотрим практическое применение некоторых паттернов проектирования;
Ответим на ваши вопросы.
Спикер — ведущий разработчик ИТ-компании MediaSoft Павел Андрющенко. Опыт программирования — более 10 лет, участвовал более чем в 15 проектах. Два года является куратором разработки на Java в Академии разработки MediaSoft.
Для кого — для разработчиков начального и среднего уровня. Подойдет как тем, кто только начинает разбираться со Spring, так и тем, кто уже уверенно работает с ним. Необходим опыт разработки на Java.
Для бесплатного участия необходимо зарегистрироваться!
После регистрации вы получите на почту перечень технических требований для создания фреймворка параллельно со спикером (версия языка и окружение).
1. Вводная часть:
Понятие инверсии управления и внедрения зависимостей, цели и выгоды использования данных подходов;
Понятие DI-контейнера, его функции, отличие от фабрик, преимущества использования;
Обзор существующих DI-контейнеров для Java.
2. Основная часть:
Готовим приложение, определяем бизнес-задачи и выполняем начальное конфигурирование;
Разбираем зависимости и принцип единой ответственности и отделяем инициализацию ресурсов от бизнес-логики;
Создаем в приложении зависимость от абстракций, а не от конкретных реализаций;
Пишем логику определения реализаций зависимостей и их внедрения в компоненты;
Реализуем управление жизненным циклом объекта, создание, конфигурирование, удаление и переиспользование компонента для внедрений;
Добавляем возможность обработки фаз жизненного цикла в клиентском коде;
Делаем удобное конфигурирование контейнера, добавляем файл метаданных конфигурации;
Демонстрируем удобство тестирования и сопровождения приложения.
Если вы хотите вернуть билеты, вы можете сделать это по ссылке из письма с билетами или оформить запрос организатору в вашем  личном кабинете.