@prophp7

Страница 1248 из 1387
Sergey
08.08.2018
16:29:38
symfony/serializer-ом. весьма удобно

даже если у тебя вдруг не 1:1 мэппинг DTO - всегда можно нормалайзер свой зарегать

Anton
08.08.2018
16:30:21
Типа мапишь json или че там прямо на DTO?

Sergey
08.08.2018
16:30:26
да

Google
Anton
08.08.2018
16:30:40
Ясн

Sergey
08.08.2018
16:30:43
если надо не прямо - регаешь свой нормалайзер или даже свой ресолвер

Anton
08.08.2018
16:31:05
А логика прям в доктрин энтитях?

Sergey
08.08.2018
16:31:22
ну вот в примере выше это prooph а не доктрина)

но в целом да

логика в сущностях, доменные ивенты, потом отдельные листенеры тригерят другие операции

там где сложно дергаю сервис

но то что я пока для себя понял - мне не нужна доктрина

Anton
08.08.2018
16:33:05
Prooph это какой-то упрощенный маппер или что?

Sergey
08.08.2018
16:33:23
это такой недо nservicebus

типа хлипенький фреймворк для event sourcing

Anton
08.08.2018
16:33:47
Ясн

И как, все нравится? Какие проблемы наблюдаешь?

Google
Sergey
08.08.2018
16:35:02
с пруфом? но он примитивненький.

много чего приходится доделывать

Anton
08.08.2018
16:35:49
Ну и вообще с твим подходом

Sergey
08.08.2018
16:35:50
но в целом приятнее чем с доктриной. правда юзать пруф для всего тоже не оч выгодно... ну это больше камень в огород стоимости event sourcing-а

у нас только часть сущностей (самое важное) через ES менеджатся. И часть через доктрину.

Ну и вообще с твим подходом
у меня сча самая большая проблема - формирование респонсов. Типа хочу что бы модули могли декларировать штуки и потом верхняя штука по описанию респонса бы все склеивала. что бы контроллер ничего не дергал а лишь возвращал что надо вернуть а уже другие штуки это будут собирать

Anton
08.08.2018
16:39:54
Модули это ивент листенеры?

Sergey
08.08.2018
16:52:56
модули это модули, отдельные части приложения. типа профили юзеров, пациентов, докторов, звонки, встречи, докуметы и т.д.

просто клиенту иногда нужно что-то одно а иногда много чего... и хочется как-то все это делать одним запросом и все это как-то что бы не пересекалось и декларировалось на стороне модуля который инфой владеет

короч... загоны по "респонс как композиция данных"

Anton
08.08.2018
16:53:48
А, я понял

наверное

Sergey
08.08.2018
17:07:10
ну вот у меня те же чувства.... я вроде понимаю чего хочу но как-то не очень)

Anton
08.08.2018
17:10:11
А как тесты на бизнес логику?

Artem
08.08.2018
17:17:45
@fes0r Насколько я понял про типы наследования - это мюсли самого автора? https://www.sicpers.info/2018/03/why-inheritance-never-made-any-sense/ Или есть какой-то источник, который стоит почитать на эту тему?

Anton
08.08.2018
17:18:52
А кто автор?

Artem
08.08.2018
17:20:14
А кто автор?
я этого товарища не знаю

А кто автор?
https://www.sicpers.info/about/ как-то так

Art
08.08.2018
17:42:39
как звучит фраза roadroute? Норм для домена?

handmade
08.08.2018
21:19:40
как звучит фраза roadroute? Норм для домена?
Какая же это фраза, это целый абзац.

Google
Art
08.08.2018
22:43:33
Очень плохо
чего так?)

Dmitry
09.08.2018
06:39:05
чего так?)
Ну может не плохо-плохо, но как-то непонятно. Что обозначает ваше roadroute. Вот со стороны пытаюсь понять и получается "маршрут дороги" (в общем масло масленое)

Sergei
09.08.2018
06:41:25
дорожний маршрут, если есть маршруты не только по дорогам то норм

Anton
09.08.2018
07:00:39
Хотел вот обсудить такой момент. Если допустим у нас апи и мы берем результат какого-то запроса, может это энтити или дто, сериализуем, отправляем в json. В клиенте десериализуем в какой-то тоже там энтити или дто. И на мой вкус, получается, мы этим самым жестко связали эту энтити в сервере с энтити в клиенте. Кто-то изменит поле в сервере и клиент отвалится, а способа это проверить в большом проекте может и не быть надежного

Bohdan
09.08.2018
07:01:10
json schema

Anton
09.08.2018
07:02:21
Даже если есть, ты изменишь энтити и где-то апи уже не будет соответствовать схеме

И если ты не знаешь что оно там где-то сериализуется, то и не посмотришь

Maksim
09.08.2018
07:03:18
тесты для слабаков

Anton
09.08.2018
07:03:34
Да

Ну тесты немного помогают конечно тут

Maksim
09.08.2018
07:04:22
норм) чем больше таких деятелей, тем выше зарплата) какую проблему пытаешься решить? что контракты у двух частей системы должны быть совместимыми?)

Maksim
09.08.2018
07:04:35
не немного, а полностью

Anton
09.08.2018
07:06:03
Очень просто у тебя все :)

Maksim
09.08.2018
07:06:56
у меня 4 сотни "дтошек", которыми взаимодействют 3 разных языка. не говори мне про простоту в сраной апишечке

любой дымовой тест полностью решает твою проблему

Anton
09.08.2018
07:09:55
Конечно же на любую проблему в программировании есть один однозначный и правильный ответ и нечего тут обсуждать

Maksim
09.08.2018
07:10:35
обсуждать что?) что ты не в курсе как построить 2 одинаковых контракта? @thatside выше накинул. Никаких проблем

Anton
09.08.2018
07:12:15
Я пока что остался непонят в этом чате

Google
Sergey
09.08.2018
07:12:23
Maksim
09.08.2018
07:12:36
Sergey
09.08.2018
07:12:51
да в целом, не сложно)
дай ему мысль раскрыть)

Anton
09.08.2018
07:13:53
Я веду к тому, что сериализация делает неявную связь между структурой DTO (или энтити, у кого там как) и API, а соответственно и клиентом

Sergey
09.08.2018
07:14:20
ммм.... я бы не сказал что она такая уж неявная

Maksim
09.08.2018
07:14:39
дай ему мысль раскрыть)
там дтошки и сущности - в общем-то одно и то же. да ещё и связь неявная (хоть и ногами забита, но типа неявная)

Sergey
09.08.2018
07:15:08
ну то есть, ты эскпоузишь какую-то модель данных, и клиентский код на эту модель данных завязан. Сериализация это лишь промежуточный этап для того что бы данные доставить. Ты можешь использовать что-то с жесткой схемой (grpc, thrift и прочие messagepack)

если ты экспоузишь модель данных сущности (то есть у тебя одна и та же модель данных используется и на чтение и на запись в этом случае) - то... да, ситуация еще более усугубляется

Admin
ERROR: S client not available

Anton
09.08.2018
07:17:12
По хорошему нужно делать отдельные DTO для каждой апи и мапить твои модели на них

так?

Sergey
09.08.2018
07:17:25
и да и нет

Maksim
09.08.2018
07:17:27
так

Sergey
09.08.2018
07:18:44
ну то есть ДА в том плане что структура данных для UI должна быть жестко определена, что бы иметь возможность далее использовать ее для контрактов и проще проверять обратную совместимость (и ее поддерживать) и НЕТ в том плане что это может быть не просто класс

(опять же это мои мечты о том что бы описывать респонсы как композицию данных, а для этого мне DTO-ки очень мешают но я всеравно хочу иметь схему)

Anton
09.08.2018
07:20:00
То же самое, если не API а сервер сайд рендеринг, объекты которые передаются на вью не очень хорошо если это прямо твои бизнес энтити, а надо отдельные делать и на них мапить

Sergey
09.08.2018
07:20:10
любой клиентский код который потребляет какие-то структуры данных, можно даже не ограничиваться UI-ем

Maksim
09.08.2018
07:21:13
но опять-таки, это не решает проблему того, что в 1 месте dto ошку исправили, а в другой части системы нет - всё летит фпесту. И, да, тут тебе поможет либо одинаковая схема для обоих частей (чёт типо xsd, например), либо тесты.

Sergey
09.08.2018
07:21:21
дальше идет сравнение стоимости этого дела (а это делать всегда и везде дорого) и профита который ты получаешь. Риски (как часто меняется, насколько легко определить нарушение обратной совместимости)...

Google
Anton
09.08.2018
07:21:23
А как вы мапите свои бизнес энтити на эти вью dto объекты?

Sergey
09.08.2018
07:21:37
не вижу смысла в read-only операциях вообще сущности юзать

+ у меня есть возможность делать проекции по стриму доменных ивентов, но не для всего увы

Sergey
09.08.2018
07:24:34
дальше есть вопрос - если DTO используются в одном месте, инстанцируются в одном месте - надо ли делать для этого отдельные структуры или можно скрестить это дело с мэппером если есть возможность типы отследить)))

но это опять же мои загоны

Anton
09.08.2018
07:27:00
А если скрестить с мэппером, опять появятся неявные зависимости, или нет?

Что вообще это значит, скрестить с мэппером

Maksim
09.08.2018
07:27:15
у меня одна и та же дтошка есть в 2х разных приложениях. Она сериализуется в 1 месте и десериализуется в тот же объект в другом. просто, понятно, схема соблюдена :)

Maksim
09.08.2018
07:29:16
можешь посмотреть какой-нить протобаф или аналоги. Будет небольшое представление о передачи вполне формализованных вещей

Sergey
09.08.2018
07:29:45
Тоже что бы убедиться что клиенту не станет плохо) но пока это все влажные мечты

Что вообще это значит, скрестить с мэппером
На предыдущем проекте я экспериментировал с fractal. Это не то что нужно но может дать представление о чем я

Я просто ленюсь переписать его так что бы оно под меня было

Dmitry
09.08.2018
07:38:47
У меня такой вопрос, у меня есть билдер пользователя системы, который собирает данные с реквеста, базы, кук и т.д., который я пользую уже в разных частях системы. Соответствественно, сейчас через DI я внедряю VisitorBuilderInteface и уже в методе пишу detect() и получаю пользователя. Стоит ли запихивать создание этого посетителя в DIC...

Maksim
09.08.2018
07:41:49
нет

Dmitry
09.08.2018
07:43:47
нет
Емко, но детализируй

Страница 1248 из 1387