ویرگول
ورودثبت نام
شرکت توسعه نرم افزار جیکات
شرکت توسعه نرم افزار جیکاتتوسعه وب اپلیکیشن های سازمانی
شرکت توسعه نرم افزار جیکات
شرکت توسعه نرم افزار جیکات
خواندن ۲ دقیقه·۳ سال پیش

tRPC چیست؟

سلام سلام میخوام تجربه ام رو از استفاده trpc باهاتون در میون بزارم

داستان چیه ؟

به طور کلی tRPC یه پکیج جذاب برای ارتباط بدون دردسر هست، که با تایپ اسکریپت کار میکنه. سبک کاریش این شکلیه که میاد route های بک اند رو تبدیل به تایپ میکنه و اون هارو در فرانت اند استفاده میکنه و به این قابلیتش اصطلاحا میگن typesafe

چطوری ازش استفاده کنیم؟

خب آخه این چه سوالیه ؟

نصبش کن

npm install @trpc/server @trpc/client # or yarn add @trpc/server @trpc/client

یه instance برای route ها بساز

import { initTRPC } from '@trpc/server'; const t = initTRPC.create(); export const router = t.router; ‍‍export const publicProcedure = t.procedure;

مسیر ها (route) بک اند رو تعریف کن و یه تایپ ازشون بساز

import { db } from './db'; import { publicProcedure, router } from './trpc'; 
const appRouter = router({ userList: publicProcedure.query(async () => { const users = await db.user.findMany(); return users; }), }); export type AppRouter = typeof appRouter;

سرور رو تعریف کن

const server = createHTTPServer({ router: appRouter, }); server.listen(3000);

رابط سرور رو در کلاینت تعریف کن

import { createTRPCProxyClient, httpBatchLink } from '@trpc/client'; import type { AppRouter } from './server'; const trpc = createTRPCProxyClient<AppRouter>({ links: [ httpBatchLink({ url: 'http://localhost:3000', }), ], }); const user = await trpc.userList.query();


به همین خوشگلی بک اند رو تعریف کردم و اومدم از روی تایپی که برای روت های بک اند بود رابط بک اند رو در فرانت اند ساختم و الان میتونم خیلی خوشگل به بک اندم متصل بشم.
فقط برای این بدونین httpBatchLink فقط برای ارتباط بر پایه rest هستش.
و ما چیزای جذابی مثل createWSClient که برای ارتباط بر پایه وب سوکت هست رو هم داریم.

قابلیت های جذاب tRPC به همین جا ختم نمیشه
خیلی قابلیت های باحال تری داره پس پیشنهاد میکنم خودتون یه سر به داکیومنتش بزنین.

تجربه شخصی

به طور کلی اگر بخوام راجب این پکیج نظری بدم باید بگم از بهترین و تمیز ترین پکیج ها توی سبک کاری خودش هست اما پکیج فرانت اندش هنوز خیلی جای کار داره (با اینکه production ready هستش).

مثلا مباحثی مثل Error Handling رو خیلی سخت میشه فهمید، یا درخواست های فرانت اند retry pattern ندارن.

بنظرم چند چیز رو خیلی برای توسعه دهنده راحت کرده:

  • توسعه سریع نرم افزار
  • عیب یابی ساده برای پشتیبانی بهتر محصول
  • بخش بندی متناسب برای ساختار های مختلف بک اند
  • سهولت خیلی زیاد در استفاده از معماری میکروسرویس

کلام آخر

خیلی خوشحال میشم اگر نقد و بررسی دارین یا پکیج دیگه ای دیدین که توی این سبک حرفی برای گفتن داره تو کامنت ها بهم بگین.

تایپ اسکریپتبک اندapiمعماری نرم افزار
۱
۰
شرکت توسعه نرم افزار جیکات
شرکت توسعه نرم افزار جیکات
توسعه وب اپلیکیشن های سازمانی
شاید از این پست‌ها خوشتان بیاید