Size: a a a

2016 November 28

f

franza in ФП
поищи просто про рамду
источник

f

franza in ФП
и юзай как лодаш
источник

KK

Kirill Kirillov in ФП
но если фреймворк форсит работу с объектами как сущностями первого рода, то будет сложно встроить функциональный подход
источник

KK

Kirill Kirillov in ФП
именно с экспресс не нужно)
источник

KK

Kirill Kirillov in ФП
не правильно меня понял
источник

f

franza in ФП
ок
источник

f

franza in ФП
про форс объектов согласен
источник

f

franza in ФП
меня как раз недавно расстраивало отсутствие в экспрессе возможность композировать миддлверы
источник

f

franza in ФП
после пятиминутного гуглежа нашел, что в экспресс можно передавать массив миддлверов
источник

f

franza in ФП
то есть compose(m1, m2) это то же самое что [m1, m2]
источник

f

franza in ФП
ну в общем, я не знаю, что именно можно делать рамдой или даже лодешем в экспрессе
источник

f

franza in ФП
так как экспресс - это всего лишь каркас
источник

KK

Kirill Kirillov in ФП
чаще всего где используют тот же lodash это форматирование данных, сериализация, бизнес логика
источник

KK

Kirill Kirillov in ФП
кстати, если при ООП у меня есть сервис с бизнес логикой, например PaymentService - класс который умеет проводить оплату и трекать статус. каким образом оформить в ФП. Это будет функция которая возвращает объект с функциями?
источник

f

franza in ФП
ну вообще, если натягивать фп на джаваскрипт, то как-то так и получается. я думаю, что главное это очень высокая сегрегация между функциями, которые делают сайд эффекты (лезут в базу, меняют стейт, выводят, отдают данные клиенту) и чистыми функциями для преобразования данных. для последних важно соблюдать DRY и SLAP - функция должна делать ровно одну вещь. таким образом такие функции можно будет удобно комбинировать с помощью функций высшего порядка.
источник

f

franza in ФП
в итоге получается модуль с кучей чистых функций для преобразования данных, которые очень просто тестировать. также появятся функции высшего порядка (большинство из которых можно найти в той же рамде или лодеше) которые тоже просто тестить.
источник

f

franza in ФП
я придерживаюсь такого подхода при разработке
источник

f

franza in ФП
тут на самом деле не важно как ты эти функции будешь группировать - в класс или модуль или тайпскриптовый namespace
источник

f

franza in ФП
классы тут идиоматически некорректны
источник

KK

Kirill Kirillov in ФП
если функция должна делать только одну вещь, не должна модифицировать и быть чистой. То получается что на js не выйдет описать в функциональном стиле промисы или запросы к бд?
источник