1. Сборка мусора и типы ссылок в Java
память JVM: stack и heap
CG: Serial, Parallel, CMS, G1, Shenandoah, ZGC
кеш
WeakReference, SoftReference, PhantomReference
2. Паттерны проектирования
поведенческие: цепочка ответственности, команда, итератор, интерпретатор, посредник, хранитель, наблюдатель, состояние, стратегия, посетитель, шаблонный метод
порождающие: прототип, строитель, синглтон, абстрактная фабрика, фабричный метод
декоратор, компоновщик, фасад, приспособленец, прокси
3. Методологии разработки
waterfall
v-model
incremental
RAD model
agile
iterative
spiral
4. Основы Maven. Установка Maven, управление зависимостями, виды Maven-репозиториев, сборка Java-проекта
скачивание, прописывание переменных окружения
создание maven-проекта
зависимости
плагины
фазы (lifecycle)
профили
билд артефактов
5. Опыт работы с Guava, Apache Commons Collections
Multimap, BiMap
Multiset
неизменяемые коллекции
Objects: hashCode, equals
Throwables
CollectionUtils
StringUtils
6. JUnit
зачем нужно тестирование
типы тестирования
@Test
@Before, @After
@BeforeClass, @AfterClass
параметризованные тесты
7. Mockito
моки
mock и spy
when и thenReturn
verify
any, once, times
8. Логирование
зачем нужны логи
уровни логирования
slf4j
реализации: log4j, JUL, logback, common-loggins
аппендеры
9. Устройство сети. Сетевая модель
топология сети
модель OSI
DNS
10. Архитектура ПО. Клиент-серверная архитектура и ее составляющие, трехуровневая архитектура, архитектурные шаблоны
клиент-серверная архитектура
трехуровневая архитектура (клиент-сервер-БД)
критерии хорошей архитектуры: эффективность, гибкость, расширяемость, масштабируемость, удобство тестирования, читаемый и понятный код
модульная архитектура. декомпозиция
11. Протоколы HTTP/HTTPS. Протокол передачи данных, HTTP-запросы и ответы, отличия HTTP и HTTPS. Cookies, Session
протоколы передачи данных в сети
http методы (GET, POST, PUT, …)
параметры запросов
тело запроса
хедеры
коды ответов
http VS https
http сессии
куки
http/2
12. HttpClient
AJAX
java http client
синхронные и асинхронные запросы
задача на получение данных с нета, например погода
13. Сервлеты, Java servlet API. Пишем простое веб-приложение
что такое сервлет
жизненный цикл
сервлет-контейнер Tomcat
doGet, doPost
redirect VS forward
фильтры
14. Контейнеры сервлетов: Tomcat, развертывание приложения, настройка сервера
практика по предыдущей лекции
15. Знакомство с MVC (Model-View-Controller). JSP
набор архитектурных принципов и идей MVC
схемы MVC
MVC в вебе
типичная ошибка: бизнес-логика в контроллере
MVC на примере задачи
JSP
16. Веб-сервисы
что такое веб-сервис
протоколы http, jms, ftp,...
синхронные и асинхронные запросы
облачные сервисы: IaaS, PaaS, SaaS (что угодно as a service)
17. HTML-факультатив
что такое HTML
структура HTML документа
теги и их атрибуты
CSS, его синтаксис
классы и идентификаторы
селекторы
18. Итоговый проект. Servlet-quest конкурс