<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های شرکت توسعه نرم افزار جیکات</title><link>https://virgool.ir/feed/@gecut</link><description>توسعه وب اپلیکیشن های سازمانی</description><language>fa</language><pubDate>2026-11-12 01:25:23</pubDate><image><url>https://files.virgool.ir/upload/users/2921724/avatar/ftjo8a.png</url><title>شرکت توسعه نرم افزار جیکات</title><link>https://virgool.ir/@gecut</link></image><item><title>tRPC چیست؟</title><link>https://virgool.ir/@gecut/what-is-trpc-zhyakxcbo7xh</link><description>سلام سلام میخوام تجربه ام رو از استفاده trpc باهاتون در میون بزارمداستان چیه ؟به طور کلی tRPC یه پکیج جذاب برای ارتباط بدون دردسر هست، که با تایپ اسکریپت کار میکنه. سبک کاریش این شکلیه که میاد route های بک اند رو تبدیل به تایپ میکنه و اون هارو در فرانت اند استفاده میکنه و به این قابلیتش اصطلاحا میگن typesafeچطوری ازش استفاده کنیم؟خب آخه این چه سوالیه ؟نصبش کنnpm install @trpc/server @trpc/client&#xA;# or&#xA;yarn add @trpc/server @trpc/clientیه instance برای route ها بسازimport { initTRPC } from &#39;@trpc/server&#39;;&#xA;&#xA;const t = initTRPC.create();&#xA;&#xA;export const router = t.router;&#xA;‍‍export const publicProcedure = t.procedure;مسیر ها (route) بک اند رو تعریف کن و یه تایپ ازشون بسازimport { db } from &#39;./db&#39;;&#xA;import { publicProcedure, router } from &#39;./trpc&#39;; const appRouter = router({&#xA;  userList: publicProcedure.query(async () =&gt; {&#xA;      const users = await db.user.findMany();&#xA;      return users;&#xA;    }),&#xA;});&#xA;&#xA;export type AppRouter = typeof appRouter;سرور رو تعریف کنconst server = createHTTPServer({&#xA;    router: appRouter,&#xA;});&#xA;server.listen(3000);رابط سرور رو در کلاینت تعریف کنimport { createTRPCProxyClient, httpBatchLink } from &#39;@trpc/client&#39;;&#xA;import type { AppRouter } from &#39;./server&#39;;&#xA;&#xA;const trpc = createTRPCProxyClient&lt;AppRouter&gt;({&#xA;  links: [&#xA;    httpBatchLink({&#xA;      url: &#39;http://localhost:3000&#39;,&#xA;    }),&#xA;  ],&#xA;});&#xA;&#xA;const user = await trpc.userList.query();به همین خوشگلی بک اند رو تعریف کردم و اومدم از روی تایپی که برای روت های بک اند بود رابط بک اند رو در فرانت اند ساختم و الان میتونم خیلی خوشگل به بک اندم متصل بشم.فقط برای این بدونین httpBatchLink فقط برای ارتباط بر پایه rest هستش.و ما چیزای جذابی مثل createWSClient که برای ارتباط بر پایه وب سوکت هست رو هم داریم.قابلیت های جذاب tRPC به همین جا ختم نمیشهخیلی قابلیت های باحال تری داره پس پیشنهاد میکنم خودتون یه سر به داکیومنتش بزنین.تجربه شخصیبه طور کلی اگر بخوام راجب این پکیج نظری بدم باید بگم از بهترین و تمیز ترین پکیج ها توی سبک کاری خودش هست اما پکیج فرانت اندش هنوز خیلی جای کار داره (با اینکه production ready هستش).مثلا مباحثی مثل Error Handling رو خیلی سخت میشه فهمید، یا درخواست های فرانت اند retry pattern ندارن.بنظرم چند چیز رو خیلی برای توسعه دهنده راحت کرده:توسعه سریع نرم افزارعیب یابی ساده برای پشتیبانی بهتر محصولبخش بندی متناسب برای ساختار های مختلف بک اندسهولت خیلی زیاد در استفاده از معماری میکروسرویسکلام آخرخیلی خوشحال میشم اگر نقد و بررسی دارین یا پکیج دیگه ای دیدین که توی این سبک حرفی برای گفتن داره تو کامنت ها بهم بگین.</description><category>شرکت توسعه نرم افزار جیکات</category><author>شرکت توسعه نرم افزار جیکات</author><pubDate>Mon, 16 Oct 2023 16:40:44 +0330</pubDate></item></channel></rss>