|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
skyANAС чего вдруг сервис перестанет поставлять часть данных? С чего вдруг другие не узнают? Кто это другие? Хотелось бы конкретики, а не беспредметный спор. Смысл обсуждать увидел? ) Пример: некий cms получает список товаров из сервиса. в товар добавили новое поле. cms автоматом его получит обновив сборку. нет дублирования, профит. hVosttВ смысле, дублировать? Если какие-то классы похожи, это не значит, что они одно и то же. dto, который один сервис отправил, а другой принял - один и тот же dto, и если он изменился, то это дожно произоити у всех. или отправленный dto просто похож и киент должен его продублировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 12:49 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
Парамонdto, который один сервис отправил, а другой принял - один и тот же dto, и если он изменился, то это дожно произоити у всех. или отправленный dto просто похож и киент должен его продублировать? про Swagger уже было сказано, так же что у SOAP, что у той же OData есть контракты, позволяющие тебе сгенерировать классы у клиентов для любых языков. где ты видел, чтобы поставляли DLL-ки с DTO-шками? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 12:56 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
Парамоннекий cms получает список товаров из сервиса. в товар добавили новое поле. cms автоматом его получит обновив сборку. нет дублирования, профит. т.е. ты не видишь тут очевидной проблемы, в этом "решении"? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 12:57 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
skyANAЕсли опустить, мягко говоря, не совсем верные формулировки, то да. А какие формулировки неверные? Еще и с устрашающим "мягко говоря" префиксом? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 13:02 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
hVosttПарамонdto, который один сервис отправил, а другой принял - один и тот же dto, и если он изменился, то это дожно произоити у всех. или отправленный dto просто похож и киент должен его продублировать? про Swagger уже было сказано, так же что у SOAP, что у той же OData есть контракты, позволяющие тебе сгенерировать классы у клиентов для любых языков. где ты видел, чтобы поставляли DLL-ки с DTO-шками? мы не говорим про открытые апи, а в рамках своих проектов. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 13:03 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
hVosttПарамоннекий cms получает список товаров из сервиса. в товар добавили новое поле. cms автоматом его получит обновив сборку. нет дублирования, профит. т.е. ты не видишь тут очевидной проблемы, в этом "решении"? я видел такое решение, и оно работало без проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 13:04 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
Парамонмы не говорим про открытые апи, а в рамках своих проектов. ты проблемы не видишь да? Парамоня видел такое решение, и оно работало без проблем. я столько проектов повидал, написанных через жопу, но которые работали, что это не аргумент ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 13:06 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
Парамон, hVostt, вообще, если говорить о конкретной системе, а не в общем в теории, то тут получается 2 совершенно разных комплекта дтошек: между интрефейсом и сервисами и между ран-тайм сервисом и сервисами. Там конечно встречаются одинаковые поля, но скомпонованы они структурно совершенно по разному. Так что вопрос о пользовании одинаковыми дтошками не стоит - они разные. Вопрос был - не надо ли сделать все в одном месте и одновременно все регистрировать. Ответ, как я понял, - не надо ) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 13:28 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
puppyА какие формулировки неверные?Вам шашечки или ехать? Ветка программистов. Дорожная карта есть. Вперед писать)) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 13:40 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
hVosttты проблемы не видишь да? проблем тут полно, в чем фатальная? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 13:41 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
ПарамонhVosttты проблемы не видишь да? проблем тут полно, в чем фатальная? ) в том, что путаешь контракт сервиса и контракт передачи данных, DTO является контрактом сервиса, а не передачи данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 15:08 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
ПарамонskyANAС чего вдруг сервис перестанет поставлять часть данных? С чего вдруг другие не узнают? Кто это другие? Хотелось бы конкретики, а не беспредметный спор. Смысл обсуждать увидел? )Я же написал: "Хотелось бы конкретики". Будет конретика - будет смысл обсуждать. ПарамонПример: некий cms получает список товаров из сервиса. в товар добавили новое поле. cms автоматом его получит обновив сборку. нет дублирования, профит. Парамонмы не говорим про открытые апи, а в рамках своих проектов Ну хоть что-то. Сервис - это микросервис, обращение к которому по HTTP? Или это просто сборка, что цепляется через Add Reference? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 15:32 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
hVosttв том, что путаешь контракт сервиса и контракт передачи данных, DTO является контрактом сервиса, а не передачи данных. почему dto не может использоватся в качестве контракта передачи данных? skyANAСервис - это микросервис, обращение к которому по HTTP? Или это просто сборка, что цепляется через Add Reference? HTTP ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 16:12 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
Парамонпочему dto не может использоватся в качестве контракта передачи данных? Потому что у тебя создана прямая зависимость двух отдельных друг от друга сервисов. Добавление поля съест любой сервис, но это не означает, что будет поддерживаться логика, и узнать об этом невозможно до возникновения реальных проблем. Использование в микросервисах выглядит ещё более странно, контракты должны быть простыми. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 16:45 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
hVosttПотому что у тебя создана прямая зависимость двух отдельных друг от друга сервисов скажем контракт hVosttДобавление поля съест любой сервис, но это не означает, что будет поддерживаться логика, и узнать об этом невозможно до возникновения реальных проблем Обычно добавление поля делают для клиента, и зачастую по его запросу. Ну, и можно его оповестить. А как еще изменить поле не нарушив логику клиента? Дальше версионность api, но это не по теме dto. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 17:04 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
ПарамонОбычно добавление поля делают для клиента, и зачастую по его запросу. Ты говорил речь не идёт о публичном АПИ. Темнишь.. ПарамонА как еще изменить поле не нарушив логику клиента? Дальше версионность api, но это не по теме dto. Всё же я говорил про DTO, а не про АПИ. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 17:16 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
Парамон, Доходит до того, что в сервисные DTO пихают поля, нужные клиенту в его АПИ. А потом выпячивая грудь говорят: зато код не дублируется... вы чего, с дуба рухнули? ))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 17:18 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
hVosttТы говорил речь не идёт о публичном АПИ. Темнишь.. клиент в данном случае, это другой сервис. hVosttДоходит до того, что в сервисные DTO пихают поля, нужные клиенту в его АПИ. А потом выпячивая грудь говорят: зато код не дублируется... вы чего, с дуба рухнули? ))))) в dto пихают то, что нужно передать кому либо. проблема где? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 18:03 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
ПарамонhVosttДоходит до того, что в сервисные DTO пихают поля, нужные клиенту в его АПИ. А потом выпячивая грудь говорят: зато код не дублируется... вы чего, с дуба рухнули? ))))) в dto пихают то, что нужно передать кому либо. проблема где? ещё раз, в dto добавляется поле, которое напрямую влияет или связана с логикой, по сути все поля в dto имеют смысл для клиентов классов сервисов. то, что сериализуется куда-то там JSON, это не DTO, это модели для сериализации. то, что DTO совпадает с этими моделями, это всего лишь удачный частный случай, но строить вокруг этого архитектуру -- ошибка. вот пример, в dto добавляется поле с ндс, так как теперь он вытаскивается из цены и теперь цена кардинально меняет смысл и меняется расчёты, меняются отчёты, меняется то вид данных. но сервисы с обновлёнными dto прекрасно компилируются и даже работают. также апи может мультиплексировать данные в целях для оптимизации канала, передавать тех. поля, данные для контроля целостности, актуальности и т.п. когда архитектура построена на DTO=API, это всё впихивают в классы, которые болтаются мёртвым грузом на слое работы с данными и не дают обеспечить нормальное тестирование. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 19:12 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
Парамон, проблема наверное таки в терминологии. потому что ты называешь DTO классы моделей для АПИ, ничего дурного нет, если ты выделишь такие модели в отдельную сборку. но это не те классы, которые должны использоваться для работы сервисов бизнес-логики, они возвращают свои DTO, ты из конвертишь в модели. если что-то меняется в моделях, не важно, просто добавляешь поле, меняешь их, или объединяешь данные разных DTO для результата АПИ, это не оказывает влияния на сервисы, просто меняется контракт. вот это дело. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 19:27 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
hVosttПарамон, проблема наверное таки в терминологии. потому что ты называешь DTO классы моделей для АПИ, ничего дурного нет, если ты выделишь такие модели в отдельную сборку. но это не те классы, которые должны использоваться для работы сервисов бизнес-логики, они возвращают свои DTO, ты из конвертишь в модели. если что-то меняется в моделях, не важно, просто добавляешь поле, меняешь их, или объединяешь данные разных DTO для результата АПИ, это не оказывает влияния на сервисы, просто меняется контракт. вот это дело. Да ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2017, 22:56 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
ПарамонskyANAСервис - это микросервис, обращение к которому по HTTP? Или это просто сборка, что цепляется через Add Reference? HTTP Очень хорошо. У нас как раз есть RESTful OnlineStore-сервис, работа с которым интегрирована как в CMS модуль, так и в административный. В последнем админ добавляет, меняет, удаляет товары: обычный CRUD. CMS модуль отвечает за отображение магазина посетителю сайта. Ну а вся логика она в сервисе. При этом админская часть - это React, CMS - .Net. Сервис тоже дотнетовский. И когда в последнем разработчик что-то меняет и пушит изменения в Git, то стартует continuous integration pipeline, в рамках которого по Swagger спецификации генерируются новые версии клиентов: JavaScript и .Net. Выпускаются npm и NuGet пакеты, соответсвенно. Их можно не обновлять в админке и CMS, если нет breaking changes. Вот в такой схеме нет никакой отдельной сборки с DTO, что используется и в сервисе и в клиенте. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2017, 11:10 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
skyANAcontinuous integration pipeline, skyANAкогда в последнем разработчик что-то меняет и пушит изменения в Git, то стартует continuous integration pipeline, в рамках которого по Обсуждаемому проекту до CI и этих инструментов далековато. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2017, 13:04 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
skyANAв рамках которого по Swagger спецификации генерируются новые версии клиентов: JavaScript и .Net. по сути это кодогенерация моделей api? ps не работал со Swagger ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2017, 13:35 |
|
Вопрос про автомаппер, архитектуру, базы
|
|||
---|---|---|---|
#18+
ПарамонskyANAв рамках которого по Swagger спецификации генерируются новые версии клиентов: JavaScript и .Net. по сути это кодогенерация моделей api?Это кодогенерация клиента. Парамонps не работал со SwaggerА с WSDL, XSD? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2017, 13:41 |
|
|
start [/forum/topic.php?fid=18&msg=39576034&tid=1355348]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
153ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 257ms |
0 / 0 |