Боюсь что представляю 😀 сам таким грешен. Примерно раз в пару лет провожу коллегам небольшую лекцию о профессионализме. Очень похоже на то, о чем вы пишете. Рад что я не одинок в своих чаяниях.
Как же я понимаю вашу боль! :) все так и есть, прям как про себя читал. Мы жили во Франкфурте, а на работу я ездил через Neu Isenburg, так что прекрасно знаю эти места. По ауслендеру — мне повезло больше и огромную часть бюрократии и очередей на себя брал работодатель. Но я и ехал изначально по их приглашению.
Мне кажется пример с контроллером вообще не очень удачен в современном мире. Все, что в нем происходит можно "разбить" на более мелкие части и вынести в дргуие метса. Мне, например, очень нравиться как это реализовано в Laravel — валидация происходит вне контроллера, равно как и обработка ее ошибок и ACL.
Вообще не знал о шаблонах проектирования применительно XSD :) но оказывается использовал «Венецианские жалюзи» и «Райский сад». Хотя имена конечно так себе
Что-то я потерял нить дискуссии… В статье я хотел рассказать не совсем об этом. А о том, как достаточно просто можно проверять входные данные для web сервисов. При этом описание стандартизовано и не зависит от реализации на конкретном языке программирования. При чем тут сериализация?
В Swagger вроде только однотипные объекты, как коллекция. Да и в XML/XSD тоже (xs:sequence). В целом если нужен ключ — используйте поля/атрибуты вложенных элементов.
минусы есть — вы отдаете переводы (а соответственно и ответственность за них) вендорам (читай — Api) и полностью теряете над ними контроль. А еще у проекта появляется еще одна зависимость. имхо
А можно, пожалуйста, пример тех самых "сложных данных", которые Swagger не отражает?
Боюсь что представляю 😀 сам таким грешен. Примерно раз в пару лет провожу коллегам небольшую лекцию о профессионализме. Очень похоже на то, о чем вы пишете. Рад что я не одинок в своих чаяниях.
Так лерна же не разрабатывается дальше - уже почти 2 года тишина в их репозитории. А yarn berry или pnpm и так умеют в монорепо. Что я упустил?
Мне кажется самое главное упустили из Rust-а в web: компиляцию в WebAssembly.
А чем это отличается в итоге от EloquentFilter? https://github.com/Tucker-Eric/EloquentFilter
Мне кажется пример с контроллером вообще не очень удачен в современном мире. Все, что в нем происходит можно "разбить" на более мелкие части и вынести в дргуие метса. Мне, например, очень нравиться как это реализовано в Laravel — валидация происходит вне контроллера, равно как и обработка ее ошибок и ACL.