Если у тебя фронт и бек на тайпскрипте, то контракты можно вынести в нпм пакет, (При локальном подключении - могут быть сложности если клиент и сервер в разных репозиториях, придется добавлять гит саб модуль с контрактами и следить за их обновлением. При удалённом подключении - простота в использование в разных репозиториях, но нужно следить за версией пакета). Или использовать менеджеры моно репозиториев
@osad4enko5 ай бұрын
изменяя контракт нужно вводить новую версию ендпоинта, тогда не нужно бегать как ошпаненный на фронт и править контракты
@ЕвгенийКарышев-я1яАй бұрын
Спасибо дружище... умеешь рассказывать!
@СветланаАндреевна-х8р4 ай бұрын
Реально видео у вас серьезные спасибо!
@mercury_23795 ай бұрын
классно, спасибо. комментарий для продвижения
@АлуаИванова-у5э2 ай бұрын
спасибо за видео, даже чайнику понятно
@YakubAx5 ай бұрын
Как всегда годнота подъехала
@ЕвгенийКондобаров-ю7г5 ай бұрын
чёткий контент)
@beforeidissapear74735 ай бұрын
Скажи НЕТ власти фронтендеров | Пишем swagger сами
@АлуаИванова-у5э2 ай бұрын
33:09 если что можно выделить нужный текст и нажать shift+tab
@АлексейСтупников-д4у2 ай бұрын
А есть ли генераторы, основанные на спецификации OpenAPI, но позволяющие генерировать на основании кода фронтенда спецификацию? Раньше использовал ApiDoc, но сейчас он уже устарел
@agag50835 ай бұрын
Ну ты монстр . в хорошем смысле. Ничего пока не понял но было очень интересно
@Артем-о4щ7р4 ай бұрын
а что за анализатор зависимостей на 1:03:00
@АлексейСтупников-д4у2 ай бұрын
Ещё минус такого подхода (написание схемы ручками) - это то, что схема будет постоянно отставать от актуального состояния кода и нужно будет каждый раз лезть в схему и обновлять её в ручную. то ли дело автогенерация схемы на основе исходного кода, но для фронтенда я не нашел современных инструментов для этого, а устаревшие (apiDoc) не хочется использовать
@paromovevg2 ай бұрын
Тут и смысл, что мы сначала пишем схему, а фронтовый код генерируем на её основе. Схема источник истины и она не может устареть
@BOCbMOU5 ай бұрын
Выглядит очень хорошо, но у меня один вопрос: а где хранить единый ямл? Если монорепа, то понятно, а если нет? Можно на сервере хранить, конечно, но тогда это никак не спасает от изменений апишки со стороны бека. Да и как отслеживать изменение ямла?
@paromovevg5 ай бұрын
Если не монорепа то в отдельном репозитории под yaml файл) Внесение изменений через MR которые должны апрувнуть и бэки и фронты Скачивать его можно через curl перед генерацией новой версии
@BOCbMOU5 ай бұрын
@@paromovevg допустим, но тут есть проблема: ломающие изменения. В таком случае перед тем, как беку делать работу, надо будет замерджить все необходимые изменения в ямл, но это означает, что ямл будет неактуальный. Хорошо, мы можем оставить ямл в другой ветке, но как тогда автоматически подтягивать изменения? Не то, чтобы это нерешаемый вопрос, но под всё это дейтсво надо скрипты писать, чтобы они ещё и у фронтов, и у беков без проблем запускались, ещё и с учётом того, что для доступа к репе с ямлом нужны креденшалы. Идея так-то хорошая, но минусы у неё заметные.
@АлексейСтупников-д4у2 ай бұрын
Благодарю за видео, но шрифт очень маленький
@ВсеволодРусинский4 ай бұрын
Топчик
@tusman4ik3 ай бұрын
Сукес.. Итем... Инфаркт.. 😂
@izzy75415 ай бұрын
А разве не так? openapi - спецификация, у неё есть своя версия swagger - сервис для генерации доки на основе openapi спеки (таких сервисов кстати не мало)
@АлександрСкиталец-ц7р5 ай бұрын
Swagger не защищает клиент от проблем. Я перешёл на io-ts бекендеры не очень рады.
@СергейМеньщиков-р2ш5 ай бұрын
Получается целый гайд по сваггеру?)
@РустемГадиев-и4к4 ай бұрын
34:38 tab + shift чуваак)))
@undertale-15075O5 ай бұрын
Не только swagger. В go вообще почти нет инструментов для него. Graphql gRPC
@SergeyPryada5 ай бұрын
а вы знаете почему на го нет инструментов? недавно смотрел и сильно этому удивлялся
@biLLie_wiLLie5 ай бұрын
Что такое контракты?
@jgkdmdevienjjgg88665 ай бұрын
Термин из архитектуры приложений/систем. Абстракция от какой-то системы (реализации). Частный случай - интерфейс в языках программирования. Либо публичная часть чего-либо - сигнатура функции например. А также всякие вещи которые имеются в виду - например знание о том что если дернем вот этот метод то система себя поведет так-то.
@shrek95372q5 ай бұрын
это когда иванушку забирает военкомат служить на сво
@whosane99232 ай бұрын
Сразу видно, что ты не знаешь, что такое контракт ...
@shrek95372q5 ай бұрын
скажи нет боссу на стройке
@АртурЮсупов-о3в4 ай бұрын
Добрый день! Коллеги прошу помочь вас Хочу чтобы при вызове данного компонента можно было бы передать style1 и style2 только с одинаковыми полями. Никак не могу придумать как это сделать, ChatGPT несет чушь. interface OpenableContainerProps extends HTMLProps { children?: ReactNode; isOpened: boolean; duration: number; style1: T; style2: T; } export type AnimationStyleType = { top?: SizeType; bottom?: SizeType; left?: SizeType; right?: SizeType; ... }; Должно чтобы при вызове такого варианта подсвечивалась ошибка, т.к style 1 и 2 имеют разные поля