Михаил
Ты просто апнул тему
Kirill
да и кто мешает в долгоживущих транзакциях не лочить записи на чтение?
Kirill
ну типа да, при записи жопа)
Kirill
и возможно даже дедлоки
Михаил
Kirill
Михаил
Короче лимит на критику за день выполнен, можно и спать
Kirill
ну т.е. анонимка vs begin/end - примерно тоже самое как while vs goto
Kirill
у одного явное начало и конец, а у второго хрен знает где оно там и куда
Юра
Михаил
Kirill
Kirill
ооп - это про макроархитектуру
Kirill
а функциональщина вполне себе покрывает реализацию
Kirill
ну т.е. задача ооп - композиция там всякая, изоляция, инкапсуляция и вот это всё, взаимодействие крупных частей
Михаил
Картинку нашел, как это выглядит)
Kirill
а функциональщина хорошо реализует атомарную операцию, единицу логики какой-то
Kirill
короче, внутрянку методов конкретно
Kirill
так что их вполне себе можно совмещать, это не разные вещи, а одно, дополняющее другое)
Kirill
а конфликтующие прадигмы - это процедурщина vs что-то другое
Михаил
ооп - это про макроархитектуру
Да нет я просто про то что если не читать умных дяденек а сотреть по факту.
Ооп - программа как граф объектов которые посылают друг другу сообщения, фп - граф функций, которые передают друг другу стейт, меняя его(если не выпендриваться всякими функциональными исчислениями)
И вот у тебя есть объекты, они прекрасно общаются и тут непонятная анонимка которая идёт непонятно куда и когда она там исполнится.
Ну это чисто мои тараканы.
Kirill
ну так правильно, ооп про объекты, а фп про функции
Kirill
а в объектах как бы есть методы, которые те же самые функции с контекстом (читай частично-применённые)
Kirill
так что не вижу противоречий)
Kirill
Михаил
Те же яйца
Михаил
Я за статичность
Объявил юзкейс
Запихнул его в invoker
Invoker вызвал handle обернув это в транзакция
Красота
Kirill
хотя и анонимки тоже функторы...
Kirill
ну ладно
Михаил
Папрашу, там нет __invoke
Михаил
А handle
Kirill
а разница
Юра
Юра
Зачем городить огород )
Михаил
Kirill
то что в юзерленде объект превращается в функтор через инвоук не делает объект кложуры не функтором
Михаил
И ты это Кириллу скажи
Kirill
а чо мне говорить, у меня нет транзакций)
Михаил
Kirill
у меня двухфазные коммиты)
Михаил
Я перестал улавливать суть беседы
Kirill
смысл в этом как раз
Kirill
и не дёргать тем более персист в аппликейшн/презентейшн, что как бы ошибка дизайна явная
Михаил
Персистентность = бд = инфра
Михаил
Так что флашим в контроллере
Kirill
а контроллер - презентейшн
Kirill
ну или апп
Михаил
Пока добрался до нужного слоя уже рабочий день закончился
Kirill
ладно, вот вам информация полезная: анонимные функции чистятся GC если контейнер где они хранятся - уничтожается
Kirill
даже если там есть ссылки на this, который не был уничтожен
Kirill
короче, если в эвентлистнер пушнуть анонимку, то анонимка дропается, если дропнуть листнер, даже если в анонимке есть внешние референсы
Kirill
всё, поделился важной инфой, теперь можно идти спать)
Михаил
а контроллер - презентейшн
Я человек простой. Контроллер предоставляется фреймворком? Он слой который оъединяет модель с представлением? Значит сраная инфра
Kirill
Kirill
request dto так-то тоже модель
Kirill
энтитя тоже
Михаил
А то у нас домен, инфра, апп, представления и ещё чёрт ногу сломит лишь бы не работать
Kirill
ну и да, контроллер - это слой, который предоставляет данные в нужном формате (нужном представлении) юзверю и получает данные в таком же строгом формате
Kirill
как минимум формат http
Михаил
А потом бац и алепт ларки
За деревьями абстракций не видим леса
Kirill
хттп request/response - формат взаимодействия, если контроллер работает с ними - это тоже представление или аппликейшн (зависит от логики)
Михаил
Контроллер это glue layer он просто собирает всё воедино, дёргает что надо и больше незачтт не отвечает
Kirill
ну вот по-этому он может быть аппликейшеном)
Kirill
потому что "глу-лейер" - это апп
Михаил
И юзкейс это апп?
Kirill
Михаил
Kirill
преобразование исключений в жсон или какой-то другой специфичный для конкретного представления формат - тоже его отвесственность
Kirill
Kirill
форматирование запросов
Kirill
ну или получение оттуда данных как-то иначе
Михаил
Ок, а консольная команда?
Kirill
тоже представление
Kirill
ну или апп
Михаил
А message handler?
Kirill
угадай)