Вам кажется, что функциональное программирование — это нечто сложное, доступное только гуру программирования? Эта книга развенчает миф об элитарности и позволит любому программисту с легкостью разобраться в хитросплетениях кода.
От знакомых и простых идей ООП вы перейдете к ФП, рассматривая его на простых примерах, захватывающих упражнениях и большом количестве иллюстраций.
Вы начнете с решения простых и маленьких задач, иллюстрирующих базовые понятия, такие как чистые функции и неизменяемые данные, научитесь писать код, лишенный типичных ошибок, обусловленных наличием сложного распределенного состояния, разберетесь с подходами к реализации ввода-вывода, параллельного выполнения и потоковой передачи данных. К концу книги вы будете создавать ясный функциональный код, который легко читается, тестируется и сопровождается.
ческого программного обеспечения на любом из основных объектно-ориентированных
языков программирования, таких как Java. Учебные примеры написаны на языке Scala,
но, вообще говоря, эта книга — не о Scala. Никаких предварительных знаний этого языка
или функционального программирования не требуется.
Нечистые функции и изменяемые значения наносят ответный удар
Использование Java Streams для сортировки списка
Сигнатуры функций должны рассказывать всю правду
Изменение требований
До сих пор мы пытались удовлетворять начальные требования и придерживаться правил чистых функций, оптимизировать функции так, чтобы сделать их более читабельными и удобными в сопровождении. Это важно, поскольку в реальном мире код чаще читают, чем пишут. Это также важно для изменения какого-то кода по мере изменений бизнес-требований. Чем проще понять текущий код, тем проще его изменить.
Версия 4: изменение алгоритма ранжирования
Посмотрим, как поведет себя функция rankedWords в новых обстоятельствах. Вот первоначальные и дополнительные требования.
Первоначальные требования
1. Оценка слова вычисляется как сумма баллов, по одному за каждую букву, отличную от буквы 'a'.
2. Для заданного списка слов нужно вернуть отсортированный список, начинающийся со слова с наибольшей оценкой.
Дополнительные требования
1. Если в слове есть буква 'c', то к его окончательной оценке следует прибавить пять баллов.
2. Код должен поддерживать старый способ вычисления оценки (без начисления дополнительных баллов за букву 'c').
Мы можем передавать код в аргументах!
Использование значений Function в Java
Использование синтаксиса Function для устранения повторяющегося кода
Более подробно с книгой можно ознакомиться на сайте издательства:
» Оглавление
» Отрывок
По факту оплаты бумажной версии книги на e-mail высылается электронная книга.
Для Хаброжителей скидка 25% по купону — Программирование
Комментарии (10)
MAXH0
10.10.2023 15:53Серия "Грокаем" мне не зашла, но стоит посмотреть именно эту книгу, которая расказывает о божественном функциональном программировании. :)))
PlatinumKiller
10.10.2023 15:53-4Примеры лишь на одном языке, а других в мире нет?!
PlatinumKiller
10.10.2023 15:53-1И да есть языки на которых функциональщина в ожидаемом виде не возможна, а есть те на которых вопрос: «а что можно иначе?»
venanen
10.10.2023 15:53+6Да, после прошлой рекомендации купил книгу "Грокаем глубокое обучение". И вот что хочу сказать - я бы выдал ИД Питер огромный грант по дальнейшей разработке нанотехнологий, ведь настолько тонкую бумагу я вижу впервые. На странице я вижу текст страницы, текст этой страницы с обратной стороны, текст следующей страницы оборота. И это с учетом того, что текст напечатан далеко толстым и жирным шрифтом.
Фонарик телефона просвечивает через 12(!!!!) страниц. Ребят, я понимаю, что так книга стоит не дорого, но честное слово, напечатайте нормально, я бы взял даже в 2 раза дороже - ну это же реально читать невозможно. Спасибо.
aleksandy
А что у издательства нет доступа к исходному тексту книги, что приходится вот так, скринить страницы и вставлять их в статью?
IMnEpaTOP
Там слишком сложное форматирование, что бы его можно было повторить в текстовом редакторе хабра. А показать читателям хочется именно то, как будет выглядеть купленный ими экземпляр.