Uploaded by Максим Маланьин

Java-Advanced-2024-03

advertisement
ПРИЛОЖЕНИЕ № 1
к Приказу ООО «Отус онлайн-образование»
от «21» февраля 2024 г. № ____
УТВЕРЖДЕНО
ПРИКАЗОМ
ООО «Отус онлайн-образование»
от «21» февраля 2024 г. № ___
ДОПОЛНИТЕЛЬНАЯ ПРОФЕССИОНАЛЬНАЯ ПРОГРАММА
(программа повышения квалификации)
«Java Developer. Advanced»
Москва, 2024
1
1. ОБЩИЕ ПОЛОЖЕНИЯ
Содержание программы представлено пояснительной запиской, учебным планом, рабочей программой, планируемыми результатами
освоения программы, организационно-педагогическими условиями реализации программы, учебно-методическими материалами,
обеспечивающими реализацию программы, формы аттестации.
В целях учета современных образовательных технологий организация, осуществляющая образовательную деятельность, вправе:
- увеличивать объем дополнительной профессиональной программы (программы повышения квалификации);
- изменять соотношение учебной нагрузки между разделами, включенными в учебный план.
1.1. Цель реализации программы
Целью повышения квалификации по дополнительной профессиональной программе, является совершенствование и (или) получение
новой компетенции, необходимой для профессиональной деятельности, и (или) повышение профессионального уровня в рамках имеющейся
квалификации.
2. ТРЕБОВАНИЯ К РЕЗУЛЬТАТАМ ОБУЧЕНИЯ
Планируемые результаты обучения:
В результате освоения программы «Java Developer. Advanced» слушатель должен приобрести следующие знания и умения, необходимые
для качественного изменения компетенций. Слушатель должен:






2





 получить ответы на интересующие вопросы;
разбор ДЗ;
разбор и повторение материала, который был не до конца понят.










3

 получить ответы на интересующие вопросы;
разбор ДЗ;
разбор и повторение материала, который был не до конца понят.







 получить ответы на интересующие вопросы;
разбор ДЗ;
разбор и повторение материала, который был не до конца понят.




4

 Научиться уместно применять паттерн и выбирать правильные решения в Java
 Поделиться полезными советами по проведению
Code Review на примерах
 получить ответы на интересующие вопросы;
разбор ДЗ;
разбор и повторение материала, который был не до конца понят.
 выбрать и обсудить тему проектной работы;
спланировать работу над проектом;
ознакомиться с регламентом работы над проектом.
 получить ответы на вопросы по проекту, ДЗ и по курсу.
 защитить проект и получить рекомендации экспертов.
5
3. СОДЕРЖАНИЕ ПРОГРАММЫ
Учебный план
программы повышения квалификации
«Java Developer. Advanced»
Категория слушателей – к освоению дополнительных профессиональных программ допускаются: лица, имеющие среднее
профессиональное и (или) высшее образование; лица, получающие среднее профессиональное и (или) высшее образование.
Сроки обучения: . 1 академический час равен 45 минутам.
Форма обучения: заочная с применением электронного обучения и дистанционных образовательных технологий.
Режим занятий: 2 занятия в неделю длительностью 2 ак.часа.
Форма организации учебного процесса: лекции и семинары в формате вебинаров, самостоятельная работа студентов, проектная работа.
В том числе
№
п/п
Наименование разделов/модулей
Всего, час.
Вебинары, час.
1
2
Многопоточность и производительность
3
Облачные технологии
4
Протоколы взаимодействия
5
Проектная работа
6
Практическая и
самостоятельная
работа, час.
Проектная работа
Итоговая аттестация
Итог
102
86
16
Учебно-тематический план
программы повышения квалификации
«Java Developer. Advanced»
В том числе
№ п/п
Наименование
разделов/модулей/тем
Всего, час.
Формы
контроля
Вебинары, час.
1
1.1
Java 11 vs 17 vs 21. OpenJDK vs
OracleJDK и другие
имплементации
1.2
7
Практическая и
самостоятельная работа,
час.
1.3
1.4
1.6
Memory management. Разбор
алгоритмов GC: SerialGC,
1.7
Memory management. Разбор
алгоритмов GC: G1, ZGC
1.8
1.9
1.10
1.11
Модульная система Java
1.12
1.13
Сессия Q&A
2
Многопоточность и
производительность
8
2.1
Разбор библиотеки Java
2.2
Разбор JMeter и организация
нагрузочного тестирования
2.3
2.4
2.5
2.6
Профилирование java
приложений. Thread dump, JFR
2.7
Профилирование java
приложений. Работа с jvisualvm
2.8
2.9
2.10
Реактивное программирование:
2.11
Реактивное программирование:
Профилирование приложения
на Reactor
9
2.12
Сессия Q&A
3
Облачные технологии
3.1
Вспоминаем Docker
3.2
Введение в Kubernetes
3.4
Обзор Helm
3.5
Метрики
3.6
3.7
Сквозное логирование в
микросервисах
3.8
Проектирование и архитектура
в разрезе микросервисов
3.11
Сессия Q&A
4
Протоколы взаимодействия
4.1
10
4.2
4.3
4.4
Балансировка нагрузки:
назначение и конфигурация
4.5
Шаблоны проектирования
отказоустойчивого сервиса
4.6
Выполнение задач по
расписанию в Java
4.7
Примеры ошибок в коде на Java
и как их обнаружить на Code
4.8
Сессия Q&A
5
Проектная работа
5.1
Выбор темы и организация
проектной работы
5.2
Консультация по проектам и
домашним заданиям
5.3
Защита проектных работ
Проектная
работа
11
Итог
102
86
16
Учебная программа
повышения квалификации
«Java Developer. Advanced»
В ходе реализации данной программы предусматривается изучение слушателями следующих модулей:
Java Virtual Machine (JVM). ;
Многопоточность и производительность. ;
Облачные технологии. ;
Протоколы взаимодействия. ;
Проектная работа. .
№
Тема занятия
Цели занятия
Краткое содержание
занятия
Модуль 1. Java Virtual Machine (JVM)
12
Практическое задание
1
Java 11 vs 17 vs 21.
OpenJDK vs OracleJDK и
другие имплементации
Система
версионирования Java:
промежуточные версии
и LTS. Ключевые
отличия версий 11 vs 17
vs 21.
Обзор существующих
JDK: как выбрать, что
такое JEP
2
Byte code
AOT vs JIT
компиляторы, их
назначение и принципа
работы.
Просмотр байт кода
через javap.
3
Java Instrumentation & Java
agent
Что это такое, для чего используется.
Статическое и
динамическое
использование агентов код, использующий
InstrumentationAPI
4
Memory management. JVM
memory structure
Назначение областей: pc registers, jvm stack, heap,
method area,
native-method stack.
Назначение класса
Reference:
способы «общения» с
GC.
13
-
6
Memory management.
Разбор алгоритмов GC:
SerialGC, ParallelGC, CMS
GC.
Разбор алгоритмов:
Serial GC, Prallel GC,
CMS GC
-
7
Memory management.
Разбор алгоритмов GC: G1,
ZGC
Разбор алгоритмов: G1,
ZGC
-
8
Memory dump
Что это такое,
инструменты сборки и
анализа (jdk: jmap, jhat
+ сторонние
инструменты, например
MemoryAnalyzer).
Задачи, которые можно
решать с помощью
анализа дампа
9
Off-heap
Что такое off-heap, heap
vs off-heap
14
-
10 Class Data Sharing
Назначение механизма в JVM, применение.
Использование CDS в
Spring
11 Модульная система Java
Разбор модульной
системы. Назначение
модульной системы.
Как обеспечивается
обратная совместимость
с приложениями, не
использующими
модули.
Пример построения
модулей
12 JDK tools
Обзор прочих областей: Native Memory Tracking,
DTrace probes.
Обзор инструментов
JDK "через призму
практики": javac, javap,
javadoc, java, jar, jlink,
jmod, jdeps, jdeprscan,
jshell, keytool, jarsigner,
kinit, klist, ktab
15
13 Сессия Q&A
получить ответы на
интересующие
вопросы;
разбор ДЗ;
разбор и повторение
материала, который
был не до конца понят.
подробный разбор
вопросов и непонятных
моментов из лекций и
ДЗ.
-
Модуль 2. Многопоточность и производительность
1
Разбор библиотеки Java
Microbenchmark Harness
Разбор библиотеки JMH. Примеры бенчмарков.
Реализация бенчмарка
2
Разбор JMeter и
организация нагрузочного
тестирования
Разбор возможностей
инструмента.
Использование как
стандартного UI
клиента, так и
библиотеки
ApacheJmeter_core для
организации
нагрузочного
тестирования
-
3
Java.util.concurrent.
Atomics,
ConcurrentHashMap,
ConcurrentSkipListMap
Разбор конструкций
пакета с примерами на
JMH: Atomics,
ConcurrentHashMap,
ConcurrentSkipListMap
объекты.
-
16
Демонстрация
преимущества перед
synchronized.
Демонстрация
сравнения результатов
профилирования
4
Java.util.concurrent. Locks,
ReadWriteLock,
ReentrantLock
Разбор конструкций
пакета с примерами на
JMH: Locks,
ReadWriteLock,
ReentrantLock.
Демонстрация
преимущества перед
synchronized.
Демонстрация
сравнения результатов
профилирования
-
5
Java.util.concurrent.
CountDownLatch,
Semaphore, Phaser
Разбор конструкций
пакета с примерами на
JMH: Синхронизаторы
(CountDownLatch и
прочие).
Демонстрация
преимущества перед
synchronized
Демонстрация
сравнения результатов
профилирования
-
17
6
Профилирование java
приложений. Thread dump,
JFR
Для чего нужно
профилирование.
Профилирование vs
сэмплирование. Какие
инструменты
профилирования
существуют. Разбор
thread dump.
Профилирование через
JFR
7
Профилирование java
приложений. Работа с
jvisualvm & asyncProfiler
Профилирование через visualvm & asyncProfiler
8
HotSpot JVM Performance
Enhancement
Обзор механизмов
оптимизации
производительности:
CompactString,
TieredCompilation,
Compressed Ordinary
Object Pointer.
CompactString & String
Pool.
Демонстрация
сравнения
прозводительности с
применением JMH ДО и
ПОСЛЕ оптимизации.
18
-
9
Java NIO
Назначение NIO,
разница IO vs NIO.
ByteBuffer:
DirectByteBaffer vs
MappedByteBuffer vs
byte[]. Пример
использования.
-
10 Реактивное
программирование:
Reactor
Разбор концепции.
Сравнение с
классическим подходом
программирования.
Области применения.
Обзор реактивных
библиотек.
Пример на базе Project
Reactor.
11 Реактивное
программирование:
Профилирование
приложения на Reactor
Разбор проблемы
профилирования
приложений на
реактивном фреймворке.
Обзор способов
решения или обхода
проблемы.
Пример
профилирования
реактивного
приложения
19
12 Сессия Q&A
получить ответы на
интересующие
вопросы;
разбор ДЗ;
разбор и повторение
материала, который
был не до конца понят.
подробный разбор
вопросов и непонятных
моментов из лекций и
ДЗ.
-
-
Модуль 3. Облачные технологии
1
Вспоминаем Docker
Основные концепции
docker
2
Введение в Kubernetes
Что такое Kubernetes.
Основные объекты (pod,
deployment, service, etc).
Сетевые взаимодействия
в кластере. Egress &
igress. Service mesh.
4
Обзор Helm
Что это такое, для чего
используется.
Построение чартов
20
-
5
Метрики
Что это такое, для чего
нужно. Разбор springactuator, типы метрик,
применение метрик
-
6
Prometheus & Grafana
Назначение
инструментов.
Построение дашбордов
-
7
Сквозное логирование в
микросервисах
Проблема трассировки
запросов, механизмы
логирования.
Как видеть все логи в
одном месте.
Асинхронное
логирование
-
8
Проектирование и
архитектура в разрезе
микросервисов
Паттерны
проектирования,
применяемы в
микросервисной
архитектуре.
Принципы, которым
следует следовать при
проектирвание
микросервисов.
Подходы к
декомпозиция бизнес
-
21
логики по
микросервисам.
11 Сессия Q&A
получить ответы на
интересующие
вопросы;
разбор ДЗ;
разбор и повторение
материала, который
был не до конца понят.
подробный разбор
вопросов и непонятных
моментов из лекций и
ДЗ.
-
-
Модуль 4. Протоколы взаимодействия
1
Rest: Swagger, OpenAPI
Спецификация и
реализация. Примеры
реализаций API с
подачей нагрузки на
сервис через JMeter.
Акцентирование
внимания метрикам
2
Protobuf, gRPC
Для чего используется
Protobuf. Как описывать
схему данных. Примеры
описания данных. gRPC
- описание протокола.
Примеры реализаций
API с подачей нагрузки
на сервис через JMeter.
22
Акцентирование
внимания метрикам
3
Kafka
Основные объекты в
Kafka. Построение
топиков, продьюсеров и
конзьюмеров.
Примеры реализаций
API (входящий и
исходящий топики) с
подачей нагрузки на
сервис через JMeter.
Акцентирование
внимания метрикам
4
Балансировка нагрузки:
назначение и
конфигурация
Что такое LoadBalancer. Обзор имплементаций.
Пример настройки
баланщировщика.
Демонстрация работы
5
Шаблоны проектирования
отказоустойчивого сервиса
Разбор шаблонов
CircuitBreaker, Bulkhead,
RateLimiter, Retry и др:
мотивация к
применению, принцип
работы, пример кода.
Примеры на базе
Resilience4j
23
6
Выполнение задач по
расписанию в Java
Научиться уместно
применять паттерн и
выбирать правильные
решения в Java
7
Примеры ошибок в коде на Поделиться полезными Примеры по всем
Java и как их обнаружить советами по
пройденным модулям
на Code Review
проведению
Code Review на
примерах
-
8
Сессия Q&A
-
получить ответы на
интересующие
вопросы;
разбор ДЗ;
разбор и повторение
материала, который
был не до конца понят.
Стек - java.util.TImer,
Quartz, SchedLock,
JobRunr, Kubernetes,
Cloud. Пример
реализованного шедулер
на одном из
инструментов.
подробный разбор
вопросов и непонятных
моментов из лекций и
ДЗ.
Модуль 5. Проектная работа
1
Выбор темы и организация выбрать и обсудить
правила работы над
проектной работы
тему проектной работы; проектом и специфика
спланировать работу
проведения итоговой
над проектом;
защиты;
ознакомиться с
требования к результату
регламентом работы
проекта и итоговой
над проектом.
документации.
24
2
Консультация по проектам получить ответы на
вопросы по улучшению и домашним заданиям
вопросы по проекту, ДЗ и оптимизации работы
и по курсу.
над проектом;
затруднения при
выполнении ДЗ;
вопросы по программе.
3
Защита проектных работ
защитить проект и
презентация проектов
получить рекомендации перед комиссией;
экспертов.
вопросы и комментарии
по проектам.
25
4. МАТЕРИАЛЬНО-ТЕХНИЧЕСКИЕ УСЛОВИЯ РЕАЛИЗАЦИИ ПРОГРАММЫ
Обучение проходит в формате вебинаров (онлайн, синхронное обучение). Слушателям предлагаются к выполнению практические
задания, которые позволят применить на практике полученные во время вебинаров знания.
Вид занятий
Наименование оборудования, программного обеспечения
Вебинары
компьютеры, учебные макеты для изучения материала курса
Практические занятия
компьютеры, учебные макеты для изучения материала курса
5. УЧЕБНО-МЕТОДИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ПРОГРАММЫ
Преподаватель находится в едином коммуникационном пространстве с группой на протяжении всего курса, то есть в процессе обучения
слушатель может задавать преподавателю уточняющие вопросы по материалам лекций и практических заданий.
Учебный материал разбит на отдельные модули и темы. Каждый модуль и каждая тема создают целостное представление об
определенной предметной области.
Отличительными особенностями дополнительной профессиональной образовательной программы является то, что в ее основе лежит
освоение цифровых навыков от ведущих экспертов отрасли.
При освоении содержания учебной программы и ее модулей используются образовательные технологии, предусматривающие
различные методы и формы изучения материала. Программой предусматриваются проблемные-поисковые, информационные, диалоговые
лекции в формате вебинаров. Проблемные-поисковые вебинары привлекают слушателей к поиску доказательств отдельных положений и
формированию выводов о практических действиях в ходе применения полученной информации в своей деятельности. Вебинары в форме
диалога активизируют мыслительную и познавательную деятельность слушателей, позволяют наладить контакт с аудиторией. Во время такого
вебинара поясняется содержание рассматриваемой темы, а затем совместно разбираются и обсуждаются вопросы. Семинары направлены на
развитие творческого мышления слушателей и формирование практических умений и навыков по развитию цифровых навыков.
Практические занятия требуют активного участия студентов в решении практических ситуаций, рассматриваемых на занятиях. Поэтому
важно при подготовке к каждому занятию ознакомиться с его темой, изучить теоретический материал по этой теме, используя конспект и
рекомендованную литературу, а также продумать вопросы, которые хотелось бы уточнить в ходе занятия. Материал к занятиям подбирается
экспертами и всегда доступен студентам.
23
Выполнение самостоятельной работы позволит слушателям развить и укрепить навыки поиска, оценки, отбора информации.
Внимательное изучение методических указаний к выполнению работы, а также консультации с преподавателем по возникающим в процессе
выполнения вопросам позволит избежать ненужных проблем.
Список литературы
-
6. ОЦЕНКА КАЧЕСТВА ОСВОЕНИЯ ПРОГРАММЫ
Завершает обучение слушателей проектная работа. Выполнение проектной работы помогает усвоению практических навыков.
Проектная работа создается на основе знаний, полученных на курсе. В процессе написания проектной работы есть возможность получить
консультации преподавателей. Проектная работа является объемной самостоятельной работой, которую студент может забрать в свое
портфолио и показывать потенциальным работодателям.
24
7. СОСТАВИТЕЛИ ПРОГРАММЫ
В коммерческой разработке с 2013. В данный момент tech lead
команды разработчиков по обеспечению надежности кредитной
СберКарты от Сбера. Их команда совместно со смежными
командами разработчиков и командой сопровождения
поддерживает доступность системы уровня Mission Critical.
Александр Царев
Начинал карьеру в разработке продукта по планированию
оперативных и стратегических задач для заводов. После этого
участвовал в стартапе по планированию маршрутов для
квадрокоптеров. В 2023 сотрудничал с Яндекс.Практикумом в
качестве внешнего консультанта (автора контента по Java).
Окончил Самарский Государственный Аэрокосмический
Университет им. С.П.Королёва: в 2012 - степень бакалавра, в 2014
- степень магистра. В 2020 году получил степень кандидата
технических наук.
Генеральный директор
ООО «Отус онлайн-образование» __________________/ Д.А Волошин/
м.п.
25
Download