Согласованность API по принципу единого источника истины

Представим ситуацию: идет тяжёлый спринт, вы выполнили кучу задач, написали тонну нового функционала, готовитесь к релизу и вдруг обнаруживайте, что часть фич перестала работать! Идёте разбираться и обнаруживайте, что оказывается бэкендер Вася в последний момент решил переименовать поля в json-е, а вам об этом не сказал! Ситуация образная, но позволяет быстро обрисовать одну из болей во время разработки. В этой статье я бы хотел рассказать об одном из вариантов её решения в коде с помощью подхода Единого источника истины(Single source of truth).

https://habr.com/ru/articles/1003398/

#API #honojs #zod #RPC #SSOT #OpenAPI #typescript #monorepo #javascript

Согласованность API по принципу единого источника истины

Привет, Хабр! Представим ситуацию: идет тяжёлый спринт, вы выполнили кучу задач, написали тонну нового функционала, готовитесь к релизу и вдруг обнаруживайте, что часть фич перестала работать! Идёте...

Хабр

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

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

https://habr.com/ru/companies/banki/articles/994886/

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

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

Zod: строгая валидация и удобная типизация. Опыт перехода Привет, Хабр! Меня зовут Сергей, я фронтенд-инженер в Банки.ру. В этой статье расскажу, как Zod помог нам перестать писать валидацию на уровне...

Хабр

🎬 Rich actions with confirmation dialogs, onSuccess & onError callbacks
👁️ Conditional visibility based on data, auth, or complex logic
📦 Two packages: @.json-render/core (types, schemas) + @.json-render/react (renderer, hooks)

🔧 Schema definition with #Zod for type-safe component props
📤 Export as standalone #React code with no runtime dependencies

https://github.com/vercel-labs/json-render

GitHub - vercel-labs/json-render: The framework for User-Generated Interfaces

The framework for User-Generated Interfaces. Contribute to vercel-labs/json-render development by creating an account on GitHub.

GitHub

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

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

https://habr.com/ru/companies/ostrovok/articles/987380/

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

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

Если вы когда-нибудь писали фронтенд на TypeScript и получали в проде Cannot read property 'x' of undefined , — добро пожаловать в клуб! TypeScript спасает нас от сотен ошибок… но только пока код не...

Хабр

✅ Summary: No More Black Box

Vercel AI SDK smoothes over the differences between OpenAI (JSON Mode) and Anthropic (Tool Calling).
Write Zod once, run anywhere.

Next: **1.5 Agents & Tools**.
Giving AI hands and legs. Unveiling the tool calling mechanism behind Agents. 🚀

#BibiGPT #Vercel #AI #Zod #FullStack

✅ 总结:不再是黑盒,而是标准 API

Vercel AI SDK 抹平了 OpenAI (JSON Mode) 和 Anthropic (Tool Calling) 的底层差异。
你只需要写一次 Zod,就能运行在任何模型上。

下节课:**1.5 Agents & Tools**。
给 AI 装上四肢,揭秘智能体背后的工具调用。🚀

#BibiGPT #Vercel #AI #Zod #FullStack

J'applique systématiquement la même logique avec Zod mais dans `src/config.ts`. Ça permet d'éviter de nombreux problèmes au runtime.

Pour éviter les appels à `process.env`, il est possible d'utiliser la règle ESLint `n/no-process-env` et d'ajouter une exception pour le seul fichier `src/config.ts`.

🔗 https://tsev.dev/posts/2025-12-03-safe-environment-variables-in-javascript/

#environnement #validation #Zod #NodeJS #eslint

Tim Severien

Blog of another senior web engineer

Safe environment variables in JavaScript

Optique 0.7.0: Smarter error messages and validation library integrations

https://hackers.pub/@hongminhee/2025/optique-070

Optique 0.7.0: Smarter error messages and validation library integrations

Optique 0.7.0 introduces enhancements focused on improving the developer experience and expanding its ecosystem for type-safe CLI argument parsing in TypeScript. This release brings automatic "Did you mean?" suggestions to help users correct typos, along with seamless integrations for Zod and Valibot validation libraries, ensuring more robust and efficient CLI development. Duplicate option name detection is now included to catch configuration bugs early, and context-aware error messages provide users with precise feedback. The update also features customizable shell completion naming conventions and improved line break handling in error messages. With these new features, Optique aims to streamline CLI development in TypeScript, making it more intuitive and less error-prone. This release underscores Optique's commitment to providing developers with powerful tools for building high-quality CLI applications.

Hackers' Pub