169 похожих чатов

Вкратце опишите назначение оберток типа рантайпс, юпа и подобных вещей

(прошу прощения, если все в одну кучу).

1. это попытка затащить дополнительную валидацию в рантайм?
2. насколько бандл разрастается?

16 ответов

9 просмотров

тебе с бэкенда приходит какой-то JSON. Никакой гарантии что тип соответствует, нет. Решение в лоб JSON.parse(...) as BackendResponse опасное, хорошо бы валидировать.

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

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

Maksim- Автор вопроса

хм, выглядит многообещающие, я контракты в тестах до этого генерировал (pact) и валидировал дополнительным сервисом-брокером. почитаю

У нас сейчас в проекте pact и я что то вообще не врубаюсь зачем он, для интеграционных тестов?

Maksim- Автор вопроса

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

мы использовали для этих целей тесты в postman

Maksim- Автор вопроса

да, вот тоже вариант. PACT еще имеет разные обертки, для скалы, жиэс, под сокеты

раст это яп или что-то другое?

Maksim- Автор вопроса

если есть статья с описанным опытом, скинь, пожалуйста, в личку

Maksim- Автор вопроса

PACT - это как методология

Maksim- Автор вопроса

https://docs.pact.io/

к сожалению нет

спасибо, почитаю

Maksim- Автор вопроса

и вот когда говорят о контрактах, я в первую очередь это понимаю, но вот вижу есть всякие суперстракты и там тоже говорят о контрактах

Maksim- Автор вопроса

@kirilloid_ru вот есть такие контракты

Похожие вопросы

Обсуждают сегодня

кому не сложно распишите пожалуйста для какой цели тут вот эти скобки и в них пихается указатель?
Михаил Helper
15
Комрады, посоветуйте, куда копать? Стал прикручивать кастомизацию тем. В OnShow главной главной формы пытаюсь загрузить из файла настроек и применить тему (на скрине, как долж...
Ed Doc
13
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Такс, блин, таки кто-то знает, каким образом работают макросы stdin/stdout/stderr? Я влез в stdio.h, там определения нет, отладил через асмокод - вызывается функция со странны...
The Bird of Hermes
18
OnShow один раз вызывается? или возможен Hide?
Iluha Companets
14
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
Всем привет, на линуксе лучше на fasm или nasm учиться писать для начала ?
meszjol
14
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
зачем же переименовывать ? чтобы кол-во участников возросло или вдруг IBM от этого снова на свифте начнет кодить ? Я не понимаю что страшного в том что свифт гавно, если это т...
Oleh Nerzh
10
Карта сайта