home.social

#валидация_данных — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #валидация_данных, aggregated by home.social.

fetched live
  1. api-contract-check — библиотека для генерации валидаторов из TS-кода и проверки API-запросов

    Продолжаю делиться выложенными в OpenSource библиотеками, которые использую в работе. В этот раз речь пойдет о наиболее универсальном, на мой взгляд, подходе для валидации приходящих с бэкенда данных: в клиентской части пишутся обычные TS DTO модели, а валидаторы создаются автоматически. Вот ссылки на документацию на русском и английском , а в статье я сравню различные подходы к валидации. Валидировать

    habr.com/ru/articles/1099100/

    #javascript #валидация_данных #ast #typescript #arfa_generator #api_validation #runtime_validation #apicontractcheck

  2. Шлюз увидел «user», сервис увидел «admin», а JSON был один и тот же

    Шлюз проверил JSON и пропустил запрос, а сервис за ним выдал пользователю права администратора. Оба компонента отработали корректно, но по-разному интерпретировали одни и те же данные. Разбираемся, почему JSON-парсеры расходятся в обработке ключей и чисел, к каким ошибкам это приводит и как защитить от них API. Разобрать уязвимости

    habr.com/ru/companies/otus/art

    #уязвимости #json #контроль_доступа #валидация_данных #микросервисы #безопасность_api #десериализация #обработка_json #jsonпарсеры #дублирующиеся_ключи

  3. Сколько символов в нике «Аня»? Шесть языков, три ответа, и ни одного правильного

    Пять видимых символов в нике могут превратиться в 10, 15 или 32 — смотря какой язык программирования их считает. Из‑за этой разницы пользователь получает ошибку валидации, теряет часть эмодзи или сталкивается с проблемой при сохранении данных. Разбираемся, почему JavaScript, Python, Go и другие языки по‑разному измеряют длину строк и как правильно задавать ограничения, чтобы данные не терялись. Узнать подробности

    habr.com/ru/companies/otus/art

    #utf8 #unicode #валидация_данных #utf16 #длина_строки #обработка_строк #суррогатные_пары #графемы #кодировка_символов #обрезка_строк

  4. Мои парсеры не сломались. Они тихо возвращали пустоту

    Два парсера курсов месяцами возвращали пустоту. Ни ошибки, ни строчки в логе. Про то, что отсутствие данных — режим отказа по умолчанию, и про CI, который парсит и валидирует за меня.

    habr.com/ru/articles/1083636/

    #мониторинг #парсинг #flutter #валидация_данных #скрапинг #github_actions

  5. Валидатор не нашёл поле is_admin, а Go его нашёл: пять ошибок при работе с JSON

    Один и тот же JSON может привести систему к разным выводам. Валидатор пропустит поле, которое Go‑сервис спокойно прочитает, nil ‑слайс превратится в неожиданный для клиента null , а ошибка в имени параметра останется незамеченной до самого продакшена. Разбираем пять случаев, где поведение encoding/json в Go способно создать расхождение между компонентами системы, и смотрим, что меняет переход на encoding/json/v2 . Узнать детали

    habr.com/ru/companies/otus/art

    #Go #Golang #JSON #API #backend #микросервисы #валидация_данных #сериализация #безопасность_приложений #разработка_ПО

  6. Утечка на 3.5 часа вперёд: как модель обманывала саму себя полтора месяца — и как мы это поймали

    Разрыв между «отлично работает на истории» и «сливает в реальности» — классика ML на временных рядах. В нашем случае модель заглядывала в будущее на 3.5 часа через некорректный ресемплинг 4-часовых свечей. Разбираем анатомию утечки, математику позиционного теста для её детекции и делимся сниппетом защиты от подобных ошибок.

    habr.com/ru/articles/1080972/

    #data_leakage #pandas #resample #lookahead_bias #time_series #алготрейдинг #lightgbm #валидация_данных

  7. Гейт зелёный, а полезные результаты теряются: три ошибки в LLM-конвейере

    Модель вернула не все записи, валидатор отбросил пригодные данные, ручная очередь спрятала подходящие вакансии. Разбираю три места, где мой конвейер терял полезные результаты, и проверки, которые помогли это обнаружить.

    habr.com/ru/articles/1078606/

    #llm_as_a_judge #llmasajudge #llmops #валидация_данных #обработка_данных #human_in_the_loop #python

  8. ML‑датасет для Data Scientist: практический гайд по проверке качества данных перед обучением модели

    Даже хороший алгоритм не спасёт модель, если признаки приходят с нарушенной семантикой или содержат информацию из будущего. Одна лишняя колонка может поднять метрику на тестах и полностью исчезнуть в проде. Разберём рабочий подход к валидации датасета: от контрактов схемы и проверки таргета до point‑in‑time корректности и фиксации артефактов, чтобы результаты обучения можно было воспроизвести и объяснить. Разобрать проверки

    habr.com/ru/companies/otus/art

    #машинное_обучение #подготовка_данных #датасет #качество_данных #MLмодель #Data_Science #валидация_данных #обучение_моделей #MLOps #Python

  9. Ошибка в расчёте скидки, которую не видно глазами: проверяем ответ API по документации, когда автотестов нет

    Есть класс ошибок, которые проходят все ручные проверки и спокойно доезжают до продакшена. Не пятисотки, не пустые поля, не сломанная структура — с этим как раз всё в порядке. Речь про случаи, когда сервис отвечает статусом 200, все поля на месте, типы правильные, и при этом одно число посчитано неверно. Расскажу, как я проверяю такие ответы, когда в команде нет автотестов и в ближайшее время не появится: писать и поддерживать код некому, а сверка ответа с документацией делается глазами. Подход применим в любом инструменте, я просто покажу его на своём рабочем сценарии — создании заказа с расчётом скидки.

    habr.com/ru/articles/1068580/

    #тестирование_api #проверка_ответов #json #валидация_данных #ручное_тестирование #тесткейсы #логи #elasticsearch #бизнеслогика #регрессионное_тестирование

  10. Модель не виновата: разбираем 3 громких ИИ-инцидента, которые случились из-за отсутствия архитектуры

    Я проектирую системы на LLM, и после каждого громкого ИИ‑инцидента мне прилетает одна и та же ссылка с одним и тем же вопросом: «а у нас такое может случиться?» Чтобы отвечать не на глазок, я завёл привычку разбирать каждый такой инцидент до конкретной технической причины. За последние месяцы таких разборов набралось три, и они удивили меня не сходством, а различием. Дыры, в совершенно разных местах: у одного проекта не проверялись источники, у другого, данные на границах системы, у третьего, права автономного агента. А вот причина одна: системы вокруг LLM строили люди, которые умеют писать промпты, но не умеют проектировать архитектуру. Судите сами. Deloitte Australia возвращает правительству деньги за отчёт, в котором ИИ выдумал источники. В Миннесоте полиция четырьмя машинами блокирует на парковке журналиста, потому что сеть ИИ‑камер несколько дней вела его как угонщика, из‑за опечатки, сделанной за две тысячи миль от него. А основатель инди‑SaaS просыпается и обнаруживает, что написанный моделью код ночью отменил все подписки его клиентов и оставил бизнесу $38 месячной выручки.

    habr.com/ru/articles/1061346/

    #LLM #архитектура_ПО #Claude #ИИагенты #отказоустойчивость #валидация_данных #production #Anthropic #structured_outputs #humanintheloop

  11. Structured outputs, которые не работают: пять ситуаций, где схема есть, а гарантий нет

    Strict‑режим включён, схема валидна, ответ успешно парсится — а в проде всё равно всплывают None , пропавшие ограничения и аргументы инструментов не тех типов. В статье разберём пять ситуаций, где Structured Outputs создают ложное ощущение надёжности, и посмотрим, какие проверки действительно стоит добавить в LLM‑пайплайн.

    habr.com/ru/companies/otus/art

    #структурированные_ответы #JSON_Schema #strictрежим #большие_языковые_модели #Pydantic #валидация_данных #OpenAI_API #вызов_инструментов #ИИагенты #обработка_ошибок

  12. Точно ли здесь нужен `any`? 13 сценариев из TypeScript-код-ревью — от `unknown` до границы приложения

    Красная волнистая линия под строкой раздражает, и самый быстрый способ её убрать — дописать any , as или ! . Компилятор замолкает, сборка зеленеет, PR уходит дальше. Вот только ошибка никуда не делась: она переехала из редактора в рантайм, поближе к пользователю. За годы ревью — чужого кода и своего — я привык читать эти три символа как сигнальную лампочку. Они почти всегда отмечают место, где тип не описан, а выключен. Иногда это осознанный и оправданный выбор. Гораздо чаще — способ не разбираться прямо сейчас, счёт за который приходит позже и другому человеку. Поэтому на code review я задаю не привычное «как затипизировать, чтобы TypeScript замолчал», а обратный вопрос: Что именно я здесь отключаю — и правда ли без этого нельзя? Веду frontend-команду, много времени провожу в чужих диффах, и про any , as и ! у нас постепенно сложился небольшой свод договорённостей для review. Из него и выросла эта статья: 13 сценариев, которые складываются в один короткий фильтр. Для каждого есть пара «плохо → хорошо» и рабочий пример на TypeScript 6 — всё можно потрогать в playground (он написан на React, но сами приёмы относятся к TypeScript в целом). Разберём any и unknown , сужение и type guards, satisfies , as const , оператор ! и валидацию данных на границе. Главная мысль: Типы — это проверяемые обещания о данных. any, а также необоснованные as T и !, позволяют компилятору принять такое обещание без доказательства. Если тип неизвестен — это unknown и сужение; если известен, но невиден компилятору — это guard, валидация или контролируемый инвариант, а не слепое утверждение.

    habr.com/ru/articles/1055944/

    #TypeScript #any #unknown #type_guards #type_assertions #narrowing #satisfies #строгая_типизация #code_review #валидация_данных

  13. Как я устал писать парсер под каждый прайс и сделал из этого библиотеку

    У нас на проекте десятки прайсингов на топливо: один вендор шлёт CSV, другой Excel, третий JSON на вебхук. Данные одни и те же, но колонка цены везде называется по-своему, даты в трёх форматах, единицы то литры, то галлоны, а половина нужных полей просто отсутствует. И под каждый источник у меня жил отдельный парсер на сотню строк if-else. Сначала их было три, потом восемь, потом я перестал считать. А по-настоящему добило другое: эти парсеры ломались молча. Вендор тихо переименовывал колонку. В третий раз за месяц копируя один и тот же парсер, я понял, что так нельзя, и вынес логику маппинга из кода в данные. Из этого выросла библиотека fidelis: ты описываешь данные один раз как Pydantic-модель, а соответствие под каждый кривой источник один раз пишет LLM — в виде читаемой YAML-спеки, которую ты ревьюишь и коммитишь. Дальше LLM не нужен: чистый детерминированный Python, валидация каждой строки и отлов изменений схемы ещё в CI. Рассказываю, как дошёл до жизни такой и как это устроено.

    habr.com/ru/articles/1053956/

    #python #парсинг_данных #ETL #pydantic #обработка_csv #интеграция_данных #llm #конвейер_данных #валидация_данных #open_source

  14. Как биология и особенности медицинского учета издеваются над программистами

    На Хабре есть серия статей, касающаяся заблуждений программистов о, казалось бы, простых вещах: о времени , почтовых адресах , именах и даже дверях. Я недавно пообщался с ребятами, пилящими медицинский софт, и решил собрать набор таких же заблуждений, только применительно к врачебному делу. А чтобы было чуть интереснее, собрал это в виде истории, которой позавидует любой индийский фильм или турецкий сериал. Итак, перед нами молодой джун Игорь (здесь и далее все имена и фамилии вымышлены), который работает в компании, разрабатывающей софт для больниц. Его только что отправили разгребать легаси-код для ПО, установленного во множестве родильных домов. Одновременно в больницу поступила Елена Соколова, благополучно беременная двойней - будущий кармический спутник Игоря. Но не в романтическом смысле - просто благодаря Елене наш Игорь пройдет через множество Edge-случаев...

    habr.com/ru/companies/beget/ar

    #медицина #программирование #легасикод #медицинские_информационные_системы #edgecases #валидация_данных #база_данных #юридические_нюансы #биология #разработка_ПО

  15. Контрольные суммы ИНН, ОГРН и СНИЛС: разбираем алгоритмы и пишем валидатор на Python

    У нас есть форма, куда пользователь вводит ИНН контрагента, а мы по нему идём за данными в ЕГРЮЛ. Если заглянуть в логи этой формы, видно сколько туда прилетает мусора. ИНН из одиннадцати цифр (кто‑то добавил лишнюю), номера со срезанными ведущими нулями, ОГРН в поле для ИНН, и классика жанра — две соседние цифры переставлены местами. Каждый такой ввод это поход в чужой API, таймаут, ожидание, и в конце честное «ничего не найдено». А пользователь в этот момент уверен, что сломались мы. Разобраться, кто сломался

    habr.com/ru/articles/1046397/

    #Инн #Огрн #Снилс #Контрольная_сумма #Валидация_данных #Python

  16. Data Gravity и отравление выборки

    Любой, кто хоть немного знаком с ИИ знает, что для эффективной работы искусственного интеллекта необходимы качественные данные. В результате 80% времени любого ML-проекта уходит не на подбор гиперпараметров и не на архитектуру нейросети, а на рутинный, выматывающий процесс — вылизывание данных. Мы собираем данные из множества устаревших систем, разбираемся с пустыми полями, убираем дубликаты, корректируем разметку. А после всего этого модель приходит ровно туда, куда мы её привели — шуму, смещениям и отравленным выборкам. В этой статье мы разберём основные проблемы, из-за которых все это происходит. Открыть материал

    habr.com/ru/companies/otus/art

    #ml #ai #data_gravity #качество_данных #отравление_данных #data_poisoning #смещение_данных #валидация_данных #drift_данных

  17. Список литературы тоже умеет галлюцинировать: как я делаю систему проверки научных источников

    Список литературы долго казался мне самой скучной частью научной работы. Пока не выяснилось, что именно там может прятаться очень неприятная штука: ссылка, которая выглядит убедительно, аккуратно и по‑научному, но в реальности либо ведет в никуда, либо вообще не существует. Когда я брала тему диплома, она казалась мне очень приличной и даже немного слишком аккуратной. Ну правда: что может быть понятнее, чем проверить список литературы? Берем научную работу, смотрим на ссылки, сверяем их с реальностью, находим ошибки, помогаем автору, делаем мир чуть менее хаотичным. На бумаге это выглядело как хорошая прикладная задача. В жизни оказалось, что библиография умеет устраивать маленький фестиваль боли. Сейчас до защиты у меня два месяца, и это как раз тот момент, когда уже можно честно рассказать не только красивую формулировку темы, но и то, почему проблема правда важная, что именно я пытаюсь построить и где все оказалось сильно интереснее, чем я думала в начале. Тема моей ВКР звучит так:

    habr.com/ru/articles/1018664/

    #машинное_обучение #NLP #обработка_PDF #библиография #научные_публикации #проверка_источников #DOI #Python #валидация_данных #галлюцинации_LLM

  18. [Перевод] Возвращаем информативные ошибки API

    Ошибки в API часто воспринимаются как второстепенная часть контракта – до тех пор, пока интеграции не начинают ломаться в самых неожиданных местах. В этот момент выясняется, что одного HTTP-кода недостаточно: без ясной структуры и контекста ошибки превращаются в источник неопределённости и лишней работы. В статье разберём, как проектировать ошибки как полноценный элемент API – с понятной семантикой, единым форматом и возможностью для автоматической обработки.

    habr.com/ru/companies/otus/art

    #API_ошибки #обработка_ошибок #REST_API #HTTP_статускоды #проектирование_API #код_ошибки #сообщения_об_ошибках #валидация_данных #интеграции_API

  19. Связывание абстрактных классов со свойствами в python

    В данной статье хочу поделиться своим опытом по абстрактным классам. Думаю это будет полезно как разработчикам, только начинающим свой путь, так и уже имеющим опыт. В материале можно посмотреть, как изящно связать свойства и абстрактные классы с реализацией принципа DRY . Для начал кратко пробежимся по определениями и терминам, и далее ответим на вопросы, которые могут логично вытекать из этих определений. Абстрактные классы - это базовые классы, определяющие каркас с методами, обязательными для реализации в наследниках и служащими для создания интерфейсов, однако сами экземпляры таких классов создать нельзя. Абстрактные методы - методы с декоратором @abstractmethod, которые обязаны быть реализованы в дочерних классах. Абстрактный класс может содержать как обычные, так и абстрактные методы. Свойство - реализуется через декораторы @property (для чтения) и @<name>.setter (для изменения и валидации) обеспечивая инкапсуляцию, делая API удобным, при этом позволяя менять внутреннюю реализацию без изменения внешнего кода.

    habr.com/ru/articles/1002538/

    #Абстрактный_класс #свойство #python #property #setter #ООП #dry #наследование_в_python #абстрактные_классы #валидация_данных

  20. Zod: строгая валидация и удобная типизация. Опыт перехода

    Привет, Хабр! Меня зовут Сергей, я фронтенд-инженер в Банки.ру. В этой статье расскажу, как Zod помог нам перестать писать валидацию на уровне полей, подружился с React Hook Form и стал единым источником правды о структуре данных. К Zod мы пришли не сразу. Долгое время типы и валидация у нас жили в разных слоях приложения: TypeScript определял структуру данных во время разработки, а отдельные функции или библиотеки (вроде Yup) проверяли входящие значения в рантайме. Это классическая проблема: дублирование логики и рассинхрон. Типы в interface поменялись, а валидация осталась прежней (или наоборот). Мы пробовали Yup, но он казался громоздким в связке с TS: типы приходилось выводить вручную или мириться с тем, что схемы выглядят непрозрачно. В какой-то момент стало непонятно: зачем тащить отдельную библиотеку, если проще написать if (typeof x === 'string') ? С переходом на Zod всё стало значительно проще: одна схема одновременно является и валидатором, и источником типа данных.

    habr.com/ru/companies/banki/ar

    #zod #typescript #валидация_данных #runtime_валидация #react_hook_form #типизация_данных #frontend_разработка #валидация_форм #developer_experience #валидация

  21. Хватит парсить Excel вручную: я написал библиотеку, которая сделает это за вас

    Буквально пару недель назад, проводя код-ревью, меня внезапно накрыло осознание: огромный кусок логики наших мини-приложений - это чтение и парсинг Excel-файлов . При этом целая команда разработчиков решает одну и ту же задачу, но каждый по-своему. Стало немного больно. Поэтому я написал xlea…

    habr.com/ru/articles/991462/

    #python #excel #парсинг_excel #обработка_excel_файлов #табличные_данные #data_parsing #data_engineering #python_библиотеки #schema #валидация_данных

  22. Kotlin и Arrow: функциональное программирование с Either, Validated и эффектами

    Сегодня расскажем про библиотеку Arrow в Kotlin. Arrow привносит в Kotlin крутые штуки из функционального программирования: типы вроде Either и Validated для работы с ошибками, эффекты для безопасной работы с внешним миром, ну и много всего. Звучит мощно, но когда за это действительно стоит браться?

    habr.com/ru/companies/otus/art

    #kotlin #Arrow #android #функциональное_программирование #обработка_ошибок #валидация_данных #типизация_ошибок

  23. Хроники Valibot: как мы искали безупречные данные в мире JavaScript

    Если вы когда-нибудь писали фронтенд на TypeScript и получали в проде Cannot read property 'x' of undefined , — добро пожаловать в клуб! TypeScript спасает нас от сотен ошибок… но только пока код не запущен. Как только он скомпилировался, типы исчезают, и в рантайме вы снова остаетесь один на один с невалидными данными. И вот тут начинается: меняется API, формы шлют что угодно, аналитика ломает отчёты, а тесты молчат. В Островке мы попробовали библиотеку Valibot — легковесный runtime-валидатор, который умеет проверять данные на границах контекстов и при этом остаётся дружелюбным к TypeScript . Под катом рассказываем, почему статической типизации уже недостаточно, чем Valibot отличается от Zod, и как валидатор помогает нам строить более надёжную архитектуру без лишнего кода.

    habr.com/ru/companies/ostrovok

    #valibot #zod #architecture #forms #js #валидация_данных #runtime #формы #api #типобезопасность

  24. Zod-valid. Безопасная валидация API данных

    Zod-valid — это Typescript библиотека, зависимая от другой известной библиотеки zod , для безопасной валидации API данных. API редко гарантирует идеальные данные: поля могут быть пропущены, типы не совпадать, структуры меняться. Без проверки этих данных приложение рискует вызвать runtime-ошибки или ломать бизнес-логику. Валидировать данные заранее — значит обеспечить предсказуемое поведение и защитить приложение от неожиданных значений.

    habr.com/ru/articles/947252/

    #typescript #zod #валидация_данных #валидация #api

  25. XTools-py — универсальные утилиты для Python-разработчиков

    🚀 XTools-py — универсальные утилиты для Python-разработчиков Если вы когда-либо писали на Python и ловили себя на мысли «Опять писать парсер конфигурации…» или «Где-то у меня был код кеша, надо найти» — эта библиотека для вас. XTools-py — это набор мощных и удобных инструментов для Python, которые помогают упростить рутинные задачи и ускорить разработку. Вместо того чтобы тратить время на повторное изобретение велосипеда, вы получаете готовые и проверенные решения. ✨ Возможности Find — быстрый поиск и работа с коллекциями данных. Matrix — операции с матрицами. Config — удобная работа с JSON, YAML, INI. Validator — валидация строк, чисел и других типов. Cache — простой кеш с TTL. DateTimeUtils — работа с датами и временем. MathUtils — расширенные математические функции. ColorUtils — преобразование и обработка цветов. EncryptionUtils — шифрование и хеширование. TextUtils — удобные манипуляции с текстом. UnitConverter — конвертация единиц измерения. AWS S3 — облачное хранилище (асинхронно/синхронно).

    habr.com/ru/articles/936580/

    #Python #утилиты #валидация_данных #инструменты_разработчика #кеширование #шифрование #devtools #работа_с_датами

  26. Как мы сделали полезным крупнейший русскоязычный датасет запросов к LLM

    Привет! Меня зовут Роман Куцев, я основатель LLM Arena . У нас каждый день сотни людей общаются с языковыми моделями, тестируют, сравнивают, задают вопросы. В какой-то момент стало ясно: в этих логах — не просто сессии пользователей. Это — живая картина того, как люди используют LLM в реальности. Так родилась идея: собрать открытый, структурированный датасет промптов и дать AI-комьюнити инструмент, с которым можно не просто смотреть, но и исследовать, фильтровать, понимать логику запросов юзеров к LLM. Изучая Arena Explorer от LMSYS, мы сначала хотели взять их путь за основу. Но быстро стало понятно — мы можем и должны пойти дальше. И построили систему, которая обусловлена русскоязычным контекстом, с другим уровнем прозрачности и внимания к качеству.

    habr.com/ru/articles/920150/

    #llm #llmarena #датасет #dataset #ai #ии #разметка_данных #валидация_данных

  27. [Перевод] Разбор уровней валидации

    Валидация и обработка ошибок — это фундаментальная задача, с которой сталкивается каждый разработчик, будь то работа с HTTP-запросами, управление очередями задач, обработка событий или асинхронная коммуникация между компонентами системы. Почему это важно? Выбор стратегии напрямую влияет на:

    habr.com/ru/articles/902304/

    #валидация #валидация_данных #php #ddd

  28. Регулярные выражения: как научиться читать между строк

    Представьте: нужно проверить документ или веб-страницу и найти повторяющиеся слова, чтобы, скажем, заменить их. А если найти нужно не просто слова, а электронные адреса, которые бывают разными. Решение этой задачи существенно упростит использование регулярных выражений. Регулярные выражения или regex (от англ. regular expression) – это особый синтаксис для описания шаблонов поиска информации. С их помощью можно искать, заменять или извлекать данные из текста с высокой точностью. В основе регулярных выражений лежат символы, которые задают правила для поиска, например, всех цифр или слов, начинающихся на определенную букву. Регулярные выражения позволяют описать сложные условия поиска в простой и читаемой форме, что делает их незаменимыми для различных задач. Регулярные выражения помогут в разных случаях – от валидации данных, например, при проверке форматов номера телефона до анализа текстов: получения ссылок или другой информации. Посмотрим на синтаксис регулярных выражений. Дальше на примерах станет понятнее.

    habr.com/ru/articles/897206/

    #бот #chatapp #автоматизация_бизнеса #автоматизация #регулярные_выражения #валидация_данных

  29. Один год с GraphQL: как технология работает на длинной дистанции?

    Предновогодний кодфриз — это время для полезных открытий: есть возможность поковыряться в имеющихся системах и что-нибудь исправить. В Сравни у нас много продуктов, включая сервисы подбора и покупки полиса ОСАГО, подбора кредита, образовательных курсов, онлайн-оформления ипотеки. Информация о пользователях хранится и обрабатывается в специальном центральном сервисе (Profile Service). На текущий момент сервис содержит миллионы объектов пользователей, а нагрузка в пиковые моменты там до 180 запросов в секунду. Исходная реализация Profile Service была построена на микросервисах и, как казалось нам ранее, полностью покрывала наши потребности: в плане гибкости взаимодействия с продуктами и работы с существующей нагрузкой. Изменения назрели под конец прошлого года, когда продуктовые команды стали настойчиво обращаться в команду сервиса для решения срочных задач. Здесь им регулярно требовалась помощь разработчиков — и команда Profile Service около месяца занималась только обработкой продуктовых запросов. В попытках исправить ситуацию мы пришли к идее задействовать GraphQL. Под катом рассказываем, как провели год с GraphQL, и как за это время нам удалось облегчить жизнь и технологическим, и продуктовым командам.

    habr.com/ru/companies/sravni/a

    #graphql #api #микросервисы #нагрузка #масштабирование #валидация_данных #маппинг

  30. Валидация модели данных в ASP.NET Core 8.0 на основе HTMX

    Валидация данных на стороне сервера с HTMX 2.0. Разбираемся с валидацией модели данных на основе платформы ASP.NET Core. В статье мы освоим базовую реализацию валидации данных на стороне сервера. На стороне сервера мы используем самый простой способ коммуникации - HTTP. Знакомство с гипермедийными системами на ASP.NET Core 8.0 .

    habr.com/ru/articles/852110/

    #htmx #aspnet #html #рендеринг_на_стороне_сервера #гипермедиа #hda #hypermedia #валидация #валидация_данных #валидация_форм

Share on Mastodon

Enter the server where you have an account.