• ВНИМАНИЕ! НОВЫЙ АДРЕС САЙТА

    РКН заблокировал текущий домен

    Актуальный адрес сайта всегда указан здесь - EGROUND-ZERKALO.COM

Скачать Разработчик Java. Часть 1-4 из 5 - OTUS (2018)

G

Gustav

Команда форума
Администратор
Сообщения
26.410
Лайки
51.221
Разработчик Java. Часть 1-4 из 5
OTUS

Скачать Разработчик Java. Часть 1-4 из 5 - OTUS (2018)


Лекция 1: Введение. Обзор и задачи курса. Подготовка к курсу.
Настройка окружения: система контроля версий git, система контроля зависимостей maven, среда разработки Intellij IDEA. Сборка и запуск java приложений.

ДЗ 01
Создать проект под управлением maven, настроить сборку проекта из командной строки командой mvn install. Выложить проект на github. Создать ветку "obfuscation" изменить в ней pom.xml так чтобы сборка содержала стадию обфускации байткода.
Семинар 1: Байт код. Содержание .class. Декомпиляция. Обфускация. История изменений языка Java от версии к версии. Разбор ДЗ 01.


Лекция 2: Углубленные основы. Загрузка классов. Виды и задачи class loader-ов. Класс Class. Примитивные типы, строки, массивы. Память, которую занимают объекты.

ДЗ 02
Написать стенд для определения размера объекта. Определить размер пустой строки и пустых контейнеров. Определить рост размера контейнера от количества элементов в нем.
Семинар 2: Hot swap. Remote debug. Сборщик мусора. Instrumentation. Разбор примеров и ДЗ 02.


Лекция 3: Generics. Контейнеры и алгоритмы. Обзор устройства и работы контейнеров из java.util. Сравнение контейнеров. Карты на основе хэш функции и на основе дерева. Разбор алгоритмов из java.util.Collections.

ДЗ 03
Написать свою реализацию ArrayList на основе массива. Проверить, что на ней работают методы java.util.Collections
Семинар 3: Инструменты для преобразования контейнеров. Apache Commons. Google Guava. Разбор примеров и ДЗ 03.


Лекция 4: Параметры запуска VM. Сборщик мусора. Виды сборок. Разделение памяти под разные поколения объектов. Виды сборщиков. JMX. Управление приложением из jconsole. OutOfMemory. dump памяти. Исседование thread dump и heap dump.

ДЗ 04
Написать приложение которое "подтекает" по памяти. Логгировать активность GC (количетство сборок в минуту, время паузы в минуту). Написать скрипт, который проведет измерение активности GC для разных параметров GC.

Семинар 4: QA, тестирование. Виды тестов. "Заглушки". Testing frameworks: junit, mockito. Разбор примеров и ДЗ 04.

Лекция 5: Аннотации. Стандартные аннотации. Применение аннотаций. Типы аннотаций. Синтаксис. Создание своих аннтатаций. Reflection.

ДЗ 05
Написать свой тестовый фреймворк. Поддержать аннотации test, @Before, @after. Запускать вызовом статического метода с массивом классов с тестами, именем package в котором надо найти и запустить тесты
Семинар 5: Annotation preprocessor, Class loading / Instrumentation, ASM и Javassist. Разбор примеров и ДЗ 05.


Лекция 6: Понятие дизайна приложения и паттерна проектирования. Концепты проектирования ООП: delegation, aggregation, coupling and cohesion, inheritance, interface, polymorphism. SOLID.

ДЗ 06
На основе рассмотренных паттернов написать приложение, в котором классы являются в одно и то же время классами нескольких паттернов.
Семинар 6: Behavioral patterns часть 1. Разбор примеров и ДЗ 06.


Лекция 7: Behavioral patterns часть 2. Structural patterns.

ДЗ 07
Подключить к работе предыдущего задания еще два паттерна
Семинар 7: Creational patterns. Связь между паттернами, "похожие" паттерны. Антипаттерны. Разбор примеров и ДЗ 07.


Лекция 8: Java IO. Сериализация. Запись и чтение бинарных файлов. Работа с simple-json, javax.json и com.google.code.gson.

ДЗ 08
Написать свой сериализатор объектов в JSON.
Семинар 8: XML. Java NIO. Разбор примеров и ДЗ 08

Лекция 9: Работа с реляционной базой. JDBC. ORM через паттерн Executor. JPA.

ДЗ 09
Написать свою ORM систему с автоматической сборкой объекта при помощи Reflection.
Семинар 9: Inmemory базы. myBatis. Разбор примеров и ДЗ 09.


Лекция 10: Hibernate. Конфигурирование Hibernate в коде и в XML. Java persistency query language. DBSevice pattern.

ДЗ 10
Переписать ДЗ 09 на Hibernate.
Семинар 10: Connection Pools. Разбор примеров и ДЗ 10.


Лекция 11: Типы ссылок в Java. Системы кэширования. Ehcache.

ДЗ 11
Написать свой cache engine для DBServer.
Семинар 11: No SQL. Работа с MongoDB. Разбор примеров и ДЗ 11


Лекция 12: Встроенный веб сервер. Сервлеты: servlet API, жизненный цикл сервлета. Jetty: устройство, работа, подключение сервлетов.

ДЗ 12
Встроить веб сервер на Jetty в приложение. Сделать админскую страницу, на которой админ должен авторизоваться и получить доступ к параметрам и состоянию кэша из ДЗ 11.
Семинар 12: Asynchronous Web applications. AJAX. Long polling. Websockets. Разбор примеров из ДЗ 12

Лекция 13: Dependency injection. Web archive. Jetty as an external web server. Spring IoC. Spring beans.

ДЗ 13
Собрать war для приложения из ДЗ12. Создавать кэш и DBService как Spring beans. Подключить бины в сервлеты. Запустить веб приложение во внешнем веб сервере.

Семинар 13: Логгирование: java.util.logging, log4j, slf4j, Spring MVC. Разбор примеров и ДЗ 13.


Лекция 14: Многопоточность. Класс и объект Thread. Создание многопоточного приложения. Проблемы многопоточного доступа. JMM.

ДЗ 14
Написать приложение, которое сортирует массив в 4 потоках с использованием библиотеки или без нее.

Семинар 14: JMM, Happens before. wait(), notify(). Разбор примеров и ДЗ 14.


Лекция 15: Потокобезопасные контейнеры.Система обмена сообщениями.

ДЗ 15: Переписать ДЗ12 или ДЗ13 с использованием системы обмена сообщениями.

Семинар 15: Поддержка многопоточности в стандартной библиотеке. Workers. Executors. Fork/Join. Разбор примеров и ДЗ 15.


Лекция 16: Многопроцессные приложения. Сокеты. RMI. Разбор примера многопроцессного приложения.

ДЗ 16
Поддержать в системе обмена cообщениями из ДЗ15 сообщения между процессами
Семинар 16: NIO для сокетов. Netty.



Продажник:

Скачать:
Скрытое содержимое могут видеть только пользователь группы: Администраторы, Модераторы, PRO
Скрытое содержимое для пользователей: Ferr
 
Сверху Снизу