Новости

26.02.2024

Книга «Грокаем функциональное программирование»

От знакомых и простых идей ООП вы перейдете к ФП, рассматривая его на простых примерах, захватывающих упражнениях и большом количестве иллюстраций.

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

Кому адресована книга

Книга адресована читателям, имеющим хотя бы небольшой опыт разработки коммерческого программного обеспечения на любом из основных объектно-ориентированных языков программирования, таких как Java. Учебные примеры написаны на языке Scala, но, вообще говоря, эта книга — не о Scala. Никаких предварительных знаний этого языка или функционального программирования не требуется.

Нечистые функции и изменяемые значения наносят ответный удар


image

Использование Java Streams для сортировки списка


image

Сигнатуры функций должны рассказывать всю правду


image

Изменение требований


До сих пор мы пытались удовлетворять начальные требования и придерживаться правил чистых функций, оптимизировать функции так, чтобы сделать их более читабельными и удобными в сопровождении. Это важно, поскольку в реальном мире код чаще читают, чем пишут. Это также важно для изменения какого-то кода по мере изменений бизнес-требований. Чем проще понять текущий код, тем проще его изменить.

Версия 4: изменение алгоритма ранжирования


Посмотрим, как поведет себя функция rankedWords в новых обстоятельствах. Вот первоначальные и дополнительные требования.

Первоначальные требования
1. Оценка слова вычисляется как сумма баллов, по одному за каждую букву, отличную от буквы 'a'.
2. Для заданного списка слов нужно вернуть отсортированный список, начинающийся со слова с наибольшей оценкой.

Дополнительные требования
1. Если в слове есть буква 'c', то к его окончательной оценке следует прибавить пять баллов.
2. Код должен поддерживать старый способ вычисления оценки (без начисления дополнительных баллов за букву 'c').

image

Мы можем передавать код в аргументах!


image

Использование значений Function в Java


image

Использование синтаксиса Function для устранения повторяющегося кода


image
Об авторе
Михал Плахта — опытный инженер-программист и активный участник сообщества функционального программирования. Регулярно выступает на конференциях, проводит семинары, организует встречи и ведет блоги о создании поддерживаемого программного обеспечения.

Более подробно с книгой можно ознакомиться на сайте издательства:

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

Пока нет комментариев


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






CAPTCHAОбновить изображение

Наберите текст, изображённый на картинке

Все поля обязательны к заполнению.

Перед публикацией комментарии проходят модерацию.