Роман Неволин — Почему ваша архитектура функциональная и как с этим жить

preview_player
Показать описание
— —
Задумывались ли вы, как часто пишете в функциональном стиле? Возможно, это происходит чаще, чем кажется...

Если ваш проект — не дремучее легаси, то, скорее всего, он имеет в основе какую-нибудь модную архитектурную концепцию. CQRS, например. Или DDD. А может, Actor Model? Впрочем, без разницы — все они так или иначе связаны с миром функционального программирования. И даже если на вашей футболке написано «OOP only and forever», вы, вероятно, каждый день пишете функциональный код.

Как так вышло, в чем это выражается, как с этим жить и чем понимание принципов функциональной архитектуры может помочь улучшить ваш код? Обо всем этом мы с вами и поговорим.
Рекомендации по теме
Комментарии
Автор

К вопросу о наименовании методов типа FindUser. Префикс Try* принято добавлять к методу, если он возвращает bool: TryParse, TryGetValue. Если же метод может вернуть null, то это принято обозначать суффиксом *OrDefault: FirstOrDefault, GetValueOrDefault.

viktorpti
Автор

Это просто прекрасно!! Практика великое дело, не с книжки академизмы зачитывает, спасибо Роман

MrKibitz
Автор

Хороший доклад. Но есть вопрос: если у нас бизнес-логика вынесена в отдельный проект и соответственно существует два этапа валидации (в веб-сервисе мы проверяем, что поля не пустые, а уже в "бизнесе" проверяем корректность данных по форме, а например в DAL проверяем, что они ещё и корректны по сути)... То как быть с ValidationException и всем этим наследованием? не пробрасывать же HTTP Code аж с DAL.

denis-suleimanov
Автор

Правильно ли я понимаю, что использование парадигмы ФП подразумевает частичный отказ от паттерна Состояние?

АлексейКузнецов-иьр
Автор

Переходи на функциональную сторону, у нас функции

MsKarlason
Автор

Автор талантлив, речист, начитан - но необразован, к сожалению. Немножно ни в это самое, ни в красную армию. Чатгпт напоминает.

vpatryshev