Компьютерные науки

Углубленное программирование на Java

Расширенные возможности Java на примере создания игрового веб-сервера. Освещаются многопоточность, игровые механики и система обмена сообщениями.
Студентов 6348 Выпускников 346 Для специалистов
690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.
Темы:
Программирование
Объем

36 час.
Длительность

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

9 час.
Формат обучения

Дистанционно (самостоятельно)
Описание Учебная программа погружает в разработку сложных интерактивных приложений со строгой архитектурой. Рассматриваются организация репликации данных, шаблоны проектирования и взаимодействие с базами данных. Обучение адресовано опытным Java-разработчикам, повышающим квалификацию и обучающимся проектированию высоконагруженные многопоточные серверы. Основой обучения выступает сквозная задача создания многопользовательской игры. Поэтапно реализуются модули механики, утилиты и обработка исключений.
Цели
  • Сформировать навыки архитектурного проектирования серверов.
  • Раскрыть методы эффективного управления многопоточностью.
  • Познакомить с паттернами разработки сложных систем.
Чему я научусь?
  • Организовывать систему обмена сообщениями между потоками.
  • Реализовывать игровую механику и репликацию.
  • Применять паттерны Singleton, Context и обрабатывать события.

Авторы

Чибриков Виталий
Чибриков Виталий
Чему я научусь?
  • Организовывать систему обмена сообщениями между потоками.
  • Реализовывать игровую механику и репликацию.
  • Применять паттерны Singleton, Context и обрабатывать события.

Учебный план

Занятия
Экзамен экстерном Внимание! Экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите подтвердить свои знания по данному курсу без его изучения или поверить свои знания по нему. Экзамен экстерном можно сдать только один раз. 90 мин
1 Об авторе, перспективах профессии программиста и курсе
2 Введение. План лекции
3 О языке Java и особенностях разработки на нем
4 Кроссплатформенность, сборщик мусора и безопасность исполнения
5 Почему Java?
6 Углубленное программирование: что нужно знать и что конкретно изучается в курсе
7 Сравнение Java и C++
8 Постановка сквозной задачи - сервера для online игры
9 Обзор платформы Java
10 Редакции Java и наименования
11 Запуск приложений и параметры запуска
Запуск приложений и параметры запуска тест для курса Углубленное программирование на Java 60 мин
12 Многопоточность. План лекции
13 Абстракция и интерфейсы. Наследование
14 Class и Object. Простые типы
15 Шаблоны (Generics)
16 Коллекции (Iterable, Collection). Списки, множества, очереди, карты
17 Интерфейсы и методы для коллекций
18 Потоки: интерфейсы и методы
19 Взаимодействие потоков
20 Демонстрационный код
21 Синхронизация
22 Блокирование объектов
Блокирование объектов тест для курса Углубленное программирование на Java 55 мин
23 Система обмена сообщениями (Message System). План лекции
24 Разбор практического задания
25 Практическое задание: что делать дальше?
26 Вариант решения задания в одном потоке
27 Решение задания в 2 потока
28 Плюсы многопоточного решения
29 Варианты взаимодействия потоков
30 Concurrent Collections
31 Система обмена сообщениями
32 Реализация системы обмена сообщениями
33 Пример реализации: идея
34 Пример реализации: код
Пример реализации: код тест для курса Углубленное программирование на Java 35 мин
35 Игровая механика. План лекции
36 Организация кода
37 Выделение интерфейсов
38 Рефакторинг
39 Схема зависимостей
40 Компоненты сервера
41 Модуль игровой механики
42 Database Service. Персистентная и статическая части сервера
43 Устройство разработки игр
44 GM + репликация
45 Создание кода игровых сессий
46 Разбор примеров
47 Усложнение игровой механики
48 Динамически, созданная карта. Multi-User Dungeon
Динамически, созданная карта. Multi-User Dungeon тест для курса Углубленное программирование на Java 25 мин
49 Утилиты. План лекции
50 Простейший патерн - Singleton
51 Обертка над картой - Context
52 Исключения в Java
53 Устройство работы исключений в Java
54 Примеры использования исключений и примеры создания собственных исключений
55 Events
56 Общения с библиотеками (Callback)
57 Анонимные классы
58 Случайная последовательность чисел
59 Восприятие пользователями случайностей
60 Работа с датой и временем
61 Timer и TimerTask
62 Общение с внешними устройствами
63 Патерн Decorator
64 Строковые потоки
65 Закрытие потоков
66 Объект VFS
67 Примеры кодов
Примеры кодов тест для курса Углубленное программирование на Java 50 мин
68 Resource System. План лекции
69 Понятие сериализации
70 Интерфейс Serializable
71 Пример сериализации и идентификатор версии класса
72 Структура сериализации
73 Возможность проверки структуры объекта в runtime
74 Применение Reflection
75 Class объект
76 Класс со статическими методами (ReflectionHelper)
77 Патерн проектирования
78 Работа с XML документом
79 Стандартное средство обработки XML документов
80 Простой XML документ
81 Пример сборки ресурса
82 Работа с документно-объектной моделью (Document Object Model)
83 Знакомство с Resource
Знакомство с Resource тест для курса Углубленное программирование на Java 35 мин
84 Фабрика ресурсов. Постановка задачи
85 Базы данных. План лекции
86 Основные определения и инструменты
87 Java Database Connectivity
88 Возможности объекта Connection
89 Управление параметрами соединения
90 Запросы
91 Написание кода
92 Запрос к базе и вызов execQuere
93 Закрытие работы с базой
94 Транзакции
95 Типизация
96 Класс DataSet
97 Объект доступа к данным
Объект доступа к данным тест для курса Углубленное программирование на Java 40 мин
98 ORM и QA. План лекции
99 Аннотации
100 Синтаксис и обработка аннотаций
101 Виды аннотаций
102 Шаблон работы с объектной базой
103 Конфигурации в библиотеке Hibernate
104 Часть библиотеки, создающая сессии
105 Создание DAO-объекта и DataSet
106 Постановка задачи
107 Тестирование программ
108 Особенности тестирования, Builder
109 Unit тесты
110 Совместимость модулей и Mock-объекты
111 Библиотека JUnit
112 Функциональные тесты
113 Нагрузочное тестирование
Нагрузочное тестирование тест для курса Углубленное программирование на Java 40 мин
114 Практическая работа по теме тестирования
115 Заключение
Тренировочный экзамен Внимание! Тренировочный экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите проверить свои знания курса перед сдачей экзамена. Тренировочный экзамен можно сдавать сколько угодно один раз. 90 мин
Экзамен 60 мин

Какой документ я получу?

Сертификат

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

Удостоверение о повышении квалификации

Выдается при наличии среднего специального или высшего образования (необходимые документы).

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

690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.