
Декларативное RPC вместо REST-ручек — победили сетевой бойлерплейт и вычистили код с помощью фреймворка Chord
dm_din 56 минут назад Декларативное RPC вместо REST-ручек — победили сетевой бойлерплейт и вычистили код с помощью фреймворка Chord Средний 12 мин 2K Блог компании Далее TypeScript * JavaScript * SvelteJS * Обзор Всем...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. dm_din 56 минут назад Декларативное RPC вместо REST-ручек — победили сетевой бойлерплейт и вычистили код с помощью фреймворка Chord Средний 12 мин 2K Блог компании Далее TypeScript * JavaScript * SvelteJS * Обзор Всем привет, на связи Дмитрий Дин! Все еще евангелист Svelte и тимлид в Далее на проекте крупной маркетингово-аналитической платформы. Кроме того, у нас есть внутренний рыночный продукт — инструмент для дата-инженерии SubQuery.
Оба проекта изначально были написаны на стеке SvelteKit и TypeScript со стандартным REST-подходом. Сейчас практически все переписано на Chord — что сократило 15% из 150К строк кода и ускорило поставку новых фич. Chord — мой собственный фреймворк поверх JSON-RPC, про который я вскользь упоминал в статье о графовой реактивности в BI-системе.
Технические детали
Сегодня же поведаю, как с его помощью сделать сетевое взаимодействие декларативным. Chord — наше фундаментальное решение проблем взаимодействия фронта с бэкомСовременная веб-разработка — сложная. Растет пул технологий, всем нужны отзывчивые интерфейсы, сравнимые с нативными приложениями, а ответственность размазывается по областям разработки.
При этом фронтенд и бэкенд зачастую решают одну и ту же бизнес-задачу. Работают с одинаковыми сущностями и структурами. Обрабатывают одни и те же действия и события.
Иногда создается ощущение, что бэкенд просто реализует интерфейс для работы с базой данных. И дальше начинается сетевой слой. Отдельные endpoint’ы.
Отраслевые последствия
Одними экшенами и формами не обойтись. SSR — это только односторонний поток данных. Бизнесу нужна гибкость и отзывчивость.
В итоге значительная часть кода начинает уходить не на бизнес-логику, а на обслуживание сетевого взаимодействия. Сейчас приведу самый распространенный пример кода, который используют в проектах и знаком почти всем. Но я в нем вижу очень много потенциальных проблем или того, что может к ним привести: // Дубликация типов (а тут еще нет бэка) interface interface DBUser extends const createUser = async (data: User): Promise => // А если промахнулись с типом?
fetch('/api/users/new', // Очепятка и 404? { headers: { "Content-Type": "application/json", // Хедер не забыли? }, method: "POST", // Точно POST, а вдруг PUT?
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





