30 июля 2015

Отзыв на "Java 8 Lambdas" Richard Warburton, или как перестать писать шаблонный и многословный код на Java и начать жить

Приветствую читателей моего бложика в очередной раз и спешу поделиться отзывом на только что прочитанную книжку про наверняка главную фичу в вышедшей год назад Java 8 - лямбды и многое, что с ними связано.

Почему я не занялся изучением этого раньше? Ну, на многих конференциях в преддверии выхода Java 8 были доклады про лямбды от товарищей из Oracle и смысл в общем был понятен. Но ничто так не мотивирует разобраться в теме, как переход продакшена на эти новые рельсы :-)


Эта небольшая книга (чуть больше 150 страниц) оказалась очень удачным вариантом, чтобы по-быстрому разобраться в финальной версии языка, вкурить на примерах и с картинками все эти функции высших порядков с привязкой к классам реализации и обязательно попрактиковаться так, чтобы всё запомнить, и без излишних углублений в детали.

Возможно, данная книга - это идеальное сочетание объёма, доступности изложения и полноты охвата для тех, кто знает Java 5-7 и хочет начать хотя бы избавляться от анонимных классов, шаблонных и многословных конструкций, которые встречаются весьма часто и заменять их ёмкими по смыслу декларативными лямбдами. Лично я уже на практике оценил полезность использования java.util.Optional при разработке API :-)

В книге вы узнаете:

  • Что даёт нам введение функциональщины в Java и как мы можем выполнять привычные для нас операции в функциональном стиле.
  • Познакомитесь с основными новыми функциональными интерфейсами и их применениями для нового способа работы с коллекциями - стримами (потоками данных).
  • О method reference, как замене лямбд-выражений.
  • Зачем добавили default и static methods в интерфейсы и как они упростили эволюцию в том числе стандартных интерфейсов (да, теперь все реализации java.util.List имеют метод sort, а потомки java.lang.Iterable - forEach ).
  • Как изменяются подходы в тестировании и отладке кода, использующий лямбды
  • Как начать эволюцию своего кода и проводить рефакторинг для постепенного перехода в декларативный мир.
  • Как упрощается код некоторых стандартных design patterns и как лямбды форсируют в вашем коде SOLID принципы проектирования.
  • Как лямбды помогают с помощью CompletableFuture создавать ещё более производительные приложения.
  • Как можно построить ёмкий DSL на лямбдах.
В общем, книга явно писалась для практикующих Java разработчиков, которым необходим быстрый экскурс в новые и прикольные фичи и с максимальной отдачей.
В книге после каждой главы есть небольшие квизы (с ответами на GitHub) для проверки теории и практического закрепления полученных знаний.

Заменяет ли книга документацию? Нет. Стримы и операции с ними разобраны достаточно подробно, чего не скажешь о CompletableFuture (об этом только основы). Но как первая книжка по этим темам вполне пойдёт. В интернете, конечно, есть гайды по этим темам, но целостной картины они как-то не составляют, а вот такая брошюрка с этим справилась на ура.

Для более детального осмотра этих и других нововведений (типа нового API для работы с датами и добавками в существующие классы) наверно стоит почитать книгу "Java 8 in Action" на 500 страниц :-)

В общем, вот такая полезная и небольшая книжка для тех, кто хочет очистить свой код и может пересмотреть некоторые подходы в программировании, чтобы повысить свою эффективность и читабельность своего кода.


Комментариев нет:

Отправить комментарий