Если у тебя фронт и бек на тайпскрипте, то контракты можно вынести в нпм пакет, (При локальном подключении - могут быть сложности если клиент и сервер в разных репозиториях, придется добавлять гит саб модуль с контрактами и следить за их обновлением. При удалённом подключении - простота в использование в разных репозиториях, но нужно следить за версией пакета). Или использовать менеджеры моно репозиториев
Ещё минус такого подхода (написание схемы ручками) - это то, что схема будет постоянно отставать от актуального состояния кода и нужно будет каждый раз лезть в схему и обновлять её в ручную. то ли дело автогенерация схемы на основе исходного кода, но для фронтенда я не нашел современных инструментов для этого, а устаревшие (apiDoc) не хочется использовать
А есть ли генераторы, основанные на спецификации OpenAPI, но позволяющие генерировать на основании кода фронтенда спецификацию? Раньше использовал ApiDoc, но сейчас он уже устарел
А разве не так? openapi - спецификация, у неё есть своя версия swagger - сервис для генерации доки на основе openapi спеки (таких сервисов кстати не мало)
Выглядит очень хорошо, но у меня один вопрос: а где хранить единый ямл? Если монорепа, то понятно, а если нет? Можно на сервере хранить, конечно, но тогда это никак не спасает от изменений апишки со стороны бека. Да и как отслеживать изменение ямла?
Если не монорепа то в отдельном репозитории под yaml файл) Внесение изменений через MR которые должны апрувнуть и бэки и фронты Скачивать его можно через curl перед генерацией новой версии
@@paromovevg допустим, но тут есть проблема: ломающие изменения. В таком случае перед тем, как беку делать работу, надо будет замерджить все необходимые изменения в ямл, но это означает, что ямл будет неактуальный. Хорошо, мы можем оставить ямл в другой ветке, но как тогда автоматически подтягивать изменения? Не то, чтобы это нерешаемый вопрос, но под всё это дейтсво надо скрипты писать, чтобы они ещё и у фронтов, и у беков без проблем запускались, ещё и с учётом того, что для доступа к репе с ямлом нужны креденшалы. Идея так-то хорошая, но минусы у неё заметные.
Добрый день! Коллеги прошу помочь вас Хочу чтобы при вызове данного компонента можно было бы передать 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 имеют разные поля
Термин из архитектуры приложений/систем. Абстракция от какой-то системы (реализации). Частный случай - интерфейс в языках программирования. Либо публичная часть чего-либо - сигнатура функции например. А также всякие вещи которые имеются в виду - например знание о том что если дернем вот этот метод то система себя поведет так-то.
Да ты вообще красавчик, и темы у тебя серьезные
Спасибо дружище... умеешь рассказывать!
Если у тебя фронт и бек на тайпскрипте, то контракты можно вынести в нпм пакет, (При локальном подключении - могут быть сложности если клиент и сервер в разных репозиториях, придется добавлять гит саб модуль с контрактами и следить за их обновлением. При удалённом подключении - простота в использование в разных репозиториях, но нужно следить за версией пакета). Или использовать менеджеры моно репозиториев
изменяя контракт нужно вводить новую версию ендпоинта, тогда не нужно бегать как ошпаненный на фронт и править контракты
Реально видео у вас серьезные спасибо!
спасибо за видео, даже чайнику понятно
классно, спасибо. комментарий для продвижения
33:09 если что можно выделить нужный текст и нажать shift+tab
Скажи НЕТ власти фронтендеров | Пишем swagger сами
Как всегда годнота подъехала
Ну ты монстр . в хорошем смысле. Ничего пока не понял но было очень интересно
Благодарю за видео, но шрифт очень маленький
Ещё минус такого подхода (написание схемы ручками) - это то, что схема будет постоянно отставать от актуального состояния кода и нужно будет каждый раз лезть в схему и обновлять её в ручную. то ли дело автогенерация схемы на основе исходного кода, но для фронтенда я не нашел современных инструментов для этого, а устаревшие (apiDoc) не хочется использовать
Тут и смысл, что мы сначала пишем схему, а фронтовый код генерируем на её основе. Схема источник истины и она не может устареть
чёткий контент)
А есть ли генераторы, основанные на спецификации OpenAPI, но позволяющие генерировать на основании кода фронтенда спецификацию? Раньше использовал ApiDoc, но сейчас он уже устарел
Топчик
34:38 tab + shift чуваак)))
Получается целый гайд по сваггеру?)
Не только swagger. В go вообще почти нет инструментов для него.
Graphql
gRPC
а вы знаете почему на го нет инструментов? недавно смотрел и сильно этому удивлялся
А разве не так?
openapi - спецификация, у неё есть своя версия
swagger - сервис для генерации доки на основе openapi спеки (таких сервисов кстати не мало)
Swagger не защищает клиент от проблем. Я перешёл на io-ts бекендеры не очень рады.
Выглядит очень хорошо, но у меня один вопрос: а где хранить единый ямл? Если монорепа, то понятно, а если нет?
Можно на сервере хранить, конечно, но тогда это никак не спасает от изменений апишки со стороны бека. Да и как отслеживать изменение ямла?
Если не монорепа то в отдельном репозитории под yaml файл)
Внесение изменений через MR которые должны апрувнуть и бэки и фронты
Скачивать его можно через curl перед генерацией новой версии
@@paromovevg допустим, но тут есть проблема: ломающие изменения.
В таком случае перед тем, как беку делать работу, надо будет замерджить все необходимые изменения в ямл, но это означает, что ямл будет неактуальный.
Хорошо, мы можем оставить ямл в другой ветке, но как тогда автоматически подтягивать изменения? Не то, чтобы это нерешаемый вопрос, но под всё это дейтсво надо скрипты писать, чтобы они ещё и у фронтов, и у беков без проблем запускались, ещё и с учётом того, что для доступа к репе с ямлом нужны креденшалы.
Идея так-то хорошая, но минусы у неё заметные.
а что за анализатор зависимостей на 1:03:00
скажи нет боссу на стройке
Сукес.. Итем... Инфаркт.. 😂
Добрый день!
Коллеги прошу помочь вас
Хочу чтобы при вызове данного компонента можно было бы передать 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 имеют разные поля
а зачем?
бэк-девы одобряют?))
Что такое контракты?
Термин из архитектуры приложений/систем. Абстракция от какой-то системы (реализации). Частный случай - интерфейс в языках программирования. Либо публичная часть чего-либо - сигнатура функции например. А также всякие вещи которые имеются в виду - например знание о том что если дернем вот этот метод то система себя поведет так-то.
это когда иванушку забирает военкомат служить на сво
Сразу видно, что ты не знаешь, что такое контракт ...