Java: от слов к делу

Научись создавать распределенные серверные приложения на Java за 40 часов.
10 занятий, 40 ак. часов
Хочу учиться
Что дает курс

На программе ты освоишь навыки работы с БД с использованием jOOQ, технику Dependency Injection на примере Guice, получишь практические знания, необходимые для создания HTTP-серверов и REST API, научишься писать распределенные реактивные приложения на платформе Vert.x и тестировать их при помощи JUnit.

Какие знания нужны

Базовые навыки программирования на Java и SQL, понимание принципов ООП и того, что из себя представляют базы данных и для чего их используют.
 

Как проходят занятия

Мастер-классы проходят в формате вебинаров, в режиме реального времени (наличие включенной web-камеры обязательно).
Программа состоит из 10 мастер-классов по 4 ак. часа. В конце каждого занятия будет домашнее задание на закрепление пройденных тем.

Как поступить?

Регистрация
Заполни заявку и регистрируйся на курс до 23:55 22-го сентября
Тестирование
Ссылка на тест придет на почту 26-го сентября. Пройди тест до 14:00 28-го сентября
Зачисление
4-го октября студентам, набравшим достаточное количество баллов по тестированию, придет письмо о зачислении
Начало обучения
Обучение начнётся с 5 октября согласно расписанию

Вопросы по обучению

Отборочный тест

Тестирование включает задачи на базовое знание программирования на Java и SQL, понимание принципов ООП и того, что из себя представляют базы данных. Базовые навыки использования ОС. Наличие обширного игрового опыта будет плюсом.

Требования к поступающим

Стать участником программы могут только действительные студенты вузов, магистранты, аспиранты, а также вузовские выпускники 2021-2022 года

Оборудование для обучения

Персональный компьютер

Нагрузка в неделю

4 ак. часа в неделю без учета времени на выполнение домашнего задания

Место проведения

Онлайн по вечерам

Стоимость обучения

Обучение бесплатно

Моего вопроса нет

Другие вопросы можно посмотреть здесь

Программа

Создание проекта с использованием Gradle

Проекты, состоящие из нескольких модулей. Структура проекта в Gradle, способ подключения внешних зависимостей и проектных модулей. Сборка готовых к установке на сервер приложений.



 

Инъекция зависимостей (DI) на примере Guice

Фреймворк Guice в разработке приложений, возможности фреймворка по связыванию классов и созданию фабричных методов обработке аннотаций.
 

Тестирование при помощи JUnit и Mockito

Изучение программирования, покрывая код юнит- и интеграционными тестами, и приемов замены программного кода в тестовом окружении. Основное API библиотек Junit и Mockito.

 

Разработка схемы БД

Знакомство с СУБД Postgres. Нормальные формы. Операторы SQL создание таблиц. Миграция БД. Библиотека миграции flyway.
 

Взаимодействие с БД с помощью JDBC

Программы на JAVA, взаимодействующие с базой данных с использованием механизма JDBC. 
Архитектура JDBC, драйверы, подключение к базе, вставка/изменение/удаление данных. Паттерны DTO/DAO.

 

Типобезопасный SQL с jOOQ

Connection pool, ORM и его альтернативы. Jooq. Программирование на JAVA, с использованием библиотеки jOOQ.

 

HTTP-сервер на основе Jetty

В рамках занятия познакомимся с устройством HTTP - сервера и рассмотрим основные типы HTTP запросов. Наиболее подробно изучим фреймворк Jetty (реализацию веб-сервера на Java), особое внимание уделив фильтрам, обработчикам и созданию сервлетов. А для закрепления материала  напишем простой логин-сервис.
 

Описание REST API с использованием Jersey, Jackson

В рамках данного занятия представим REST - архитектурный стиль взаимодействия между сервисами - и познакомимся с библиотекой Jersey, позволяющей быстро и просто создавать RESTful сервисы. Отдельно рассмотрим формат обмена данными JSON и фреймворк Jackson, используемые для (де)сериализации данных из JSON в Java-объект и наоборот.  В конце занятия переработаем написанный на прошлом занятии логин-сервис с  применением полученных навыков.
 

Vertx. Verticles.

Vertx. Verticles.

Примеры:

https://github.com/KirillMoskvin/vertx-example

Vertx. EventBus и распределенное хранение данных

Распределенные приложения на основе фреймворка Vert.x, устройство шины сообщений. Особенности распределенного хранения и доступа к in-memory данным. Практические навыки реактивного программирования.