Как стать автором
Обновить

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

Время на прочтение2 мин
Количество просмотров21K
image Привет, Хаброжители!

Вам кажется, что функциональное программирование — это нечто сложное, доступное только гуру программирования? Эта книга развенчает миф об элитарности и позволит любому программисту с легкостью разобраться в хитросплетениях кода.

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

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

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


image

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


image

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


image

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


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

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


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

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

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

image

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


image

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


image

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


image

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

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

» Оглавление
» Отрывок

По факту оплаты бумажной версии книги на e-mail высылается электронная книга.
Для Хаброжителей скидка 25% по купону — Программирование
Теги:
Хабы:
Всего голосов 7: ↑5 и ↓2+5
Комментарии14

Публикации

Информация

Сайт
piter.com
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия