Курс "Разработка на Java"
Лекторы - Рустам Кильдиев, Дмитрий Архангельский
Цель курса -создание рабочего приложения и получение необходимых навыков и опыта в области разработки программного обеспечения. По окончании курса студенты должны знать синтаксис и основные библиотеки языка Java, понимать объектно-ориентированный подход, уметь декомпозировать сложные задачи. Получаемые навыки: Основные конструкции языка, объекты и классы. Ввод и вывод в Java - консольный, файловый, сетевой. Интерфейсы и абстрактные классы, анонимные классы. Лямбда-функции. Сетевое взаимодействие, сокеты. Механизм исключений. Проверяемые и непроверяемые исключения. Потоки - жизненный цикл, прерывание. Критическая секция. Проблемы взаимодействия (дедлок). Механизм wait/notify, блокирующие очереди producer/consumer. Коллекции, выбор структуры данных, подходящей для задачи. Параметризованные коллекции. Параметризация в Java.
Click to view
Click to view
Click to view
Click to view
Click to view
Click to view
Click to view
Click to view
Click to view
Click to view
Click to view
Click to view
Click to view
Click to view
Курс "Углубленное программирование на Java"
Лектор - Виталий Чибриков
Click to view
История появления Java. Определения понятия «кроссплатформенность». Структурный состав Java-приложения. Цели, ради которых создавался язык, его преимущества и недостатки. Обзор платформы Java. Сборщик мусора. Версии Java. Именование в Java. Инструменты разработчика. Создание проекта. Знакомство с Jetty. Java Servlet. Примеры кода.
Click to view
Постановка задачи по авторизации пользователя, описание условий. Модули и процессы, задействованные в операциях регистрации, авторизации, обработки учётной записи и выхода пользователя. Знакомство с шаблонами Java. Класс с шаблонным типом. Метод с шаблонным типом. Синтаксис. Сужение области параметра. Специфика использования шаблонов. Шаблоны и наследование. Определение коллекций. Интерфейсы для работы с коллекциями. Иерархия контейнеров. List, Set, Queue, Map. Интерфейс сравнения Comparable. HTTP-сессии.
Click to view
Наследование в Java. Множественное наследование. Работа с классами. ClassLoader - загрузчик данных о классе. Основные методы класса. Примитивные типы и их обёртки. Boxing и Unboxing. Массивы в Java. Строковые переменные. Размер объектов в Java. Администрирование сервера. PORT в параметры. Maven - средство сборки. Сборка и запуск проекта. Остановка сервера.
Click to view
Обеспечение качества ПО: критерии, оценка соответствия критериям, формальные проверки. Автоматизация обеспечения качества: статический анализ кода, тесты, коммит-хуки, непрерывная интеграция. Подходы к тестированию. Юнит-тесты. Функциональное и нагрузочное тестирование. Проверка отдельных модулей. Безопасный рефакторинг. Совместимость модулей. Защита от повторения багов. Требования к тестам. Первый тест. Терминология тестирования. Абстракция. Интерфейс и реализация тестов. Дублёры: Fake, Dummy, Stabs, Spies, Mocks, Mockito. Правила проведения тестирования. Ожидание исключения. Функциональные тесты. Организация, инструменты и результаты нагрузочного тестирования. Сборщик мусора. Интерфейс Autoclosable. Сборщик мусора в Java 7 и 8. Логирование. Удалённый дебаггинг. Использование расширения Java Management eXtension.
Click to view
Организация кода. Интерфейсы. Сервисы и дескрипторы. Изменения кода. Реакторинг. Аннотации - матаданные о коде. NotNull. Стандартные аннотации. Синтаксис, обработка и виды аннотаций. WebSockets. Разбор игровой механики и соединения с пользователем на примере игры «Кто больше накликает». Шаблоны Singleton и Context. Исключения и их роль. Класс Throwable. События, их регистрация. Pattern Observer. Коллбэки.
Click to view
Потоки ввода-вывода. Байтовые потоки (Byte Streams). Шаблон Decorator. Закрытие потоков. Понятие сериализации. Интерфейс Serializable. Что подвергается и не подвергается сериализации. Запись в файл. Десериализация. Reflection: разбор объекта и его перевод в массив байт. Возможности Reflection, его недостатки. ReflectionHelper. Сериализация XML-документа. SAX-парсер, его методы. Десериализация XML. Обработчик. Использование Reflection. DOM-парсер. Ресурсная система, интерфейс Resource, фабрика ресурсов.
Click to view
Термины и сокращения. Инструменты. Определение и особенности JDBC, его API. Управление драйверами JDBC. Соединение с базой (Connection). Состояния соединений (Statements). Объект ResultSet. Решение задачи передачи интерфейса в Java 7 и Java 8 (лямбда-выражение). Объект Executor, содержащий методы для работы с запросами. Обновление и выбор состояний. Вызов execQuery. Типизация.
Click to view
Связь между объектной моделью программы и реляционной моделью базы (Object-Relational Mapping). Java Persistence API. DataSet - объект, содержащий данные одной строки таблицы. Объект доступа к данным (Data Access Object), варианты операций над базой. Интерфейс UsersDAO. ORM-библиотека Hibernate, её конфигурирование. Создание или проверка схемы базы при создании SessionFactory. Фабрика сессий (Session Factory). Аннотации для DataSet. Знакомство с Hibernate Query Language. Вставка и чтение HQL, поиск по ключу, получение всех записей. Сервис, скрывающий работу с базой (Database Service). Транзакции на две и более таблиц.
Click to view
Определение процессов и потоков. Роль операционной системы при работе с потоками. Интерфейс Runnable. Класс Thread. Доступ к объекту потока. Остановка выполнения и прерывание выполнения потока. Остановка текущего потока для окончания другого. Термины, связанные с многопоточностью. Критический участок кода. Семафор, Mutex. Мягкая и обязательная блокировки. Высокоуровневая конструкция Monitor. Взаимодействие потоков. Возможные ошибки одновременного доступа. Модель взаимодействия потоков через общую память. Синхронизация, её методы и состояния. Блокировка объектов. Ситуация Deadlock. Служба в отдельном потоке. Методы wait() и notify(). Контейнеры, безопасные для многопоточного доступа.
Click to view
Лектор - Егор Шубин.
Архитектура сервера, вариант без многопоточности. Понятие системы обмена сообщениями в рамках сервера. Взаимодействие потоков. Объект для обмена данными MessageSystem. Классы Address, Abonent и Message. Сообщение об авторизации. Иерархия сообщений. Использование MessageSystem. Взаимодействие потоков Frontend и AccountService. Состояния. Балансировка нагрузки: AddressService.
Смотрите также:
Java StarterHow to Java StarterВидео курс Java EssentialJava ProfessionalВебинары по JavaШаблоны проектирования Java