TGViewer
DevTwitter | توییت برنامه نویسی DevTwitter | توییت برنامه نویسی @devtwitter · 32.2K subscribers
Post #13079 7.27K
یکی از نکاتی که در استفاده از TypeScript باید همیشه در نظر داشته باشیم اینه که TypeScript می‌تونه در زمان توسعه و کامپایل جلوی خیلی از خطاها رو بگیره، اما وقتی داده‌ای در زمان اجرا از بیرون application وارد می‌شه، دیگه تضمینی درباره‌ی درست بودن اون داده نداره.

ما می‌تونیم برای همه چیز type و interface تعریف کنیم، از autocomplete و بررسی‌های TypeScript استفاده کنیم، ولی وقتی داده از بیرون application وارد می‌شه،
دیگه تضمینی وجود نداره که واقعاً همون شکلی باشه که انتظار داریم.

مثلاً یک API ممکنه یک field رو حذف کنه، اسم یک مقدار رو تغییر بده یا یک response متفاوت برگردونه. اینجا TypeScript دیگه نمی‌تونه کمکی کنه، چون این اتفاق در runtime رخ داده.اینجاست که Runtime Validation اهمیت پیدا می‌کنه.

در همکاری تیمی داشتن یک API Contract بین دو سمت فرانت و بک خیلی مهمه. هر endpoint باید مشخص کنه چه داده‌ای دریافت می‌کنه و چه داده‌ای برمی‌گردونه ،اما حتی داشتن یک API Contract هم به تنهایی کافی نیست؛ چون contract باید در runtime هم بررسی بشه تا مطمئن بشیم داده‌ای که واقعاً بین دو سمت رد و بدل می‌شه، با چیزی که انتظار داریم هماهنگه.

در یکی از پروژه‌هایی که روی اون کار کردم، برای حل این مسئله یک API Contract Boundary طراحی کردم؛ یک لایه بین featureهای frontend و API که request و responseها رو بر اساس contract مورد انتظار validate می‌کنه.

این باعث شد mismatchهای بین frontend و backend زودتر مشخص بشن و خطاها به جای اینکه جایی در UI ظاهر بشن، نزدیک‌تر به منبع خودشون شناسایی بشن.

توی پست جدیدم داخل dev.to درباره‌ی این موضوع، اینکه چرا TypeScript به تنهایی کافی نیست و چطور Runtime Validation رو در یک API layer پیاده کردم نوشتم.

لینک:
https://dev.to/rrealmrezarajabi/typescript-types-are-not-enough-building-a-runtime-api-contract-boundary-5epn

@DevTwitter | <Mohamad Reza Rajabi/>
  • 🔥 24
  • 🍌 11
  • 👎 1
More from @devtwitter
  1. Sep 29, 2026شروع کار با داکر | Docker Getting started ۱. مفاهیم پایه و اصول داکر بررسی معماری داکر، ای…
  2. Sep 29, 2026دیگه پرامپت‌های پراکندهٔ هوش مصنوعی رو از تایم‌لاین ذخیره نکن. این سایت رایگان بیش از ۱۰ ه…
  3. Sep 28, 2026احتمالا در مصاحبه برای شرکت های درست حسابی ازتون درباره AI Workflow سوالهایی پرسیده بشه که…
  4. Sep 28, 2026رفقایی که از zcode desktop استفاده میکنن و باهاش فارسی حرف میزنن . یه پچ برا zcode زدم که…
  5. Sep 28, 2026🤖 مینی دوره Claude رایگان شد! | ابزار برنامه‌نویسی، تحقیق و حل مسئله ✔️ توی این مینی‌دوره…
  6. Sep 28, 2026اگر از Qdrnat به عنوان Vector Database استفاده می کنید، در نسخه 1.19 دو اپراتور فیلتر جدید…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →