Java: от слов к делу
Онлайн из любой точки страны

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

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

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

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

Как проходят встречи

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

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

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

Вопросы по программе

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

Для поступления необходимо пройти онлайн-тестирование, конкурс на каждую программу — 3−5 человек на место. Материалы для подготовки доступны в личном кабинете.
Продолжительность теста — 30 минут.

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

Поступить могут выпускники 2020-2021 года и студенты старших курсов, включая магистратуру и аспирантуру всех российских вузов

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

Компьютер или ноутбук достаточной мощности для использования IntelliJ IDEA. Также потребуется веб-камера.

Нагрузка

4 академических часа в неделю, а также время на выполнение домашних заданий в течение десяти недель.

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

Онлайн-вебинары

Стоимость программы

Бесплатно

Формы проверки

Есть дедлайны по домашним заданиям и обратная связь от экспертов. Регулярное выполнение домашних заданий поможет создать итоговый проект — приложение на Java, и подготовит тебя как молодого специалиста к работе над будущими проектами.

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

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

Программа

Создание проекта с использованием 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/TovarischZhukov/vertx_verticles_example

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

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