Лямбда-выражения в Java 8

Функциональное программирование в Java 8.

Ричард Уорбэртон «Лямбда-выражения в Java 8. Функциональное программирование – в массы» ДМК Пресс, 2014 год, 192 стр. (11,8 мб. pdf)

Книга научит вас полноценно и уверенно применять лямбда-выражения. Введение этих выражений стало самым серьезным изменением языка в Java 8. Начальные главы расскажут, что такое анонимное (безымянная, абстрактная) выражение (функция) и как правильно его использовать. Далее демонстрируется работа лямбда-выражения в конкретных примерах кода, их возможности по повышению производительности в рабочих коммерческих проектах. В книге даются упражнения для самостоятельной работы, которые автор рекомендует к выполнению, как один из способов лучшего понимания принципов функционального программирования. Рассмотрено много способов использования лямбда-выражения в Java 8. Книгу стоит читать и изучать только если имеются определенные познания в Java.
ISBN 978-5-97060-919-6

Оглавление книги

Глава 1. Введение 16
Зачем понадобилось снова изменять Java? 16
Что такое функциональное программирование? 18
Пример предметной области 18

Глава 2. Лямбда-выражения 20
Наше первое лямбда-выражение 20
Как опознать лямбда-выражение 21
Использование значений 23
Функциональные интерфейсы 24
Выведение типов 26
Основные моменты 29
Упражнения 29

Глава 3. Потоки 31
От внешнего итерирования к внутреннему 31
Что происходит на самом деле 34
Наиболее распространенные потоковые операции 36
collect(toList()) 36
map 37
filter 38
flatMap 39
max и min 40
Проявляется общий принцип 41
reduce 43
Объединение операций 44
Рефакторинг унаследованного кода 46
Несколько потоковых вызовов 49
Функции высшего порядка 50
Полезное применение лямбда-выражений 51
Основные моменты 52
Упражнения 53
Упражнения повышенной сложности 54

Глава 4. Библиотеки 55
Использование лямбда-выражений в программе 55
Примитивы 57
Разрешение перегрузки 59
Аннотация @FunctionalInterface 61
Двоичная совместимость интерфейсов 62
Методы по умолчанию 63
Методы по умолчанию и наследование 64
Множественное наследование 67
Три правила 68
Компромиссы 69
Статические методы в интерфейсах 70
Тип Optional 70
Основные моменты 72
Упражнения 72
Задача для исследования 74

Глава 5. Еще о коллекциях и коллекторах 75
Ссылки на методы 75
Упорядочение элементов 76
Знакомство с интерфейсом Collector 78
Порождение других коллекций 79
Порождение других значений 80
Разбиение данных 81
Группировка данных 82
Строки 83
Композиция коллекторов 84
Рефакторинг и пользовательские коллекторы 86
Редукция как коллектор 94
Усовершенствование интерфейса коллекций 95
Основные моменты 96
Упражнения 97

Глава 6. Параллелизм по данным 98
Параллелизм и конкурентность 98
Почему параллелизм важен? 100
Параллельные потоковые операции 101
Моделирование 102
Подводные камни 106
Производительность 107
Параллельные операции с массивами 110
Основные моменты 112
Упражнения 113

Глава 7. Тестирование, отладка и рефакторинг 114
Когда разумно перерабатывать код с использованием лямбда-выражений 114
Инкапсуляция внутреннего состояния 115
Переопределение единственного метода 116
Поведенческий паттерн «пиши все дважды» 117
Автономное тестирование лямбда-выражений 120
Использование лямбда-выражений в тестовых двойниках 123
Отложенное вычисление и отладка 125
Протоколирование и печать 125
Решение: метод peek 126
Точки останова в середине потока 127
Основные моменты 127

Глава 8. Проектирование и архитектурные принципы 128
Паттерны проектирования и лямбда-выражения 129
Паттерн Команда 130
Паттерн Стратегия 133
Паттерн Наблюдатель 136
Паттерн Шаблонный метод 139
Предметно-ориентированные языки с поддержкой лямбда-выражений 143
Предметно-ориентированный язык на Java 144
Как это делается 145
Оценка 148
Принципы SOLID и лямбда-выражения 148
Принцип единственной обязанности 149
Принцип открытости-закрытости 152
Принцип инверсии зависимости 155
Что еще почитать 159
Основные моменты 160

Глава 9. Конкурентное программирование и лямбда-выражения 161
Зачем нужен неблокирующий ввод-вывод? 161
Обратные вызовы 162
Архитектуры на основе передачи сообщений 167
Пирамида судьбы 168
Будущие результаты 171
Завершаемые будущие результаты 173
Реактивное программирование 177
Когда и где 180
Основные моменты 181
Упражнения 181

Глава 10. Что дальше 183
Алфавитный указатель 185

Скачать книгу бесплатно11,8 мб. pdf
Java 8: лямбда-выражения. Видео

Похожая литература