Данный тренинг состоит из двух больших частей: первая посвящена обзору шаблонов проектирования в разрезе Java 8, вторая нацелена на правильное и неправильное применение новой функциональности, появившемся в Java 8 (лямбды, стримы, Optional, Date/Time API и т.д.).
Шаблоны проектирования — это один из инструментов разработчика, который помогает ему сэкономить время и сделать более качественное решение. Как и любой другой инструмент, в одних руках он может принести много пользы, а в других — один только вред. Знание шаблонов проектирования помогает понять чужой код гораздо быстрее. А это особенно важно на старте вашей карьеры, когда вам надо вникать в существующие проекты без опыта работы.
Благодаря шаблонам проектирования можно существенно сократить время, которое тратится на обсуждение и принятие решения. Представьте себе как сложно было бы быстро объяснить кому-то, что нужно реализовать Decorator: «нам нужно сделать класс, которому мы передадим в конструкторе экземпляр другой реализации того же интерфейса и который будет добавлять логику к вызову этих методов, не меняя их основного поведения…» А ведь еще за кадром остались куча мелочей и нюансов. Не менее важным является и одинаковое понимание дизайна решения задачи в головах всех членов команды. При размытости формулировки каждый может понять решение по-разному, а это чревато проблемами. Ведь реализация может сильно отличаться от обсуждаемой задумки. А это приведет к дополнительному времени на ревью кода и переделки.
На тренинге мы рассмотрим, какие шаблоны проектирования не утратили своей актуальности, как эффективно их реализовать в Java 8 и обязательно попробуем сделать это на практике.
Во второй части тренинга будут подробно рассмотрены многочисленные примеры хорошего и плохого использования новой функциональности Java 8. Прошло уже несколько лет с выпуска этой версии языка, большинство даже успело переехать на нее в своих проектах. И тем не менее, далеко не все освоили появившиеся новинки и начали правильно и эффективно использовать их на практике. Мы постараемся это исправить, рассмотрев теоретические примеры и подкрепив их практическими задачками.