از جنگهای فریم ورک ها تا ظهور TypeScript
در سال ۲۰۱۰، جنگ فریم ورک ها با حضور Backbone، Knockout، Ember، و سپس Angular و React آغاز شد. در آن زمان، هیچکس نمیتوانست پیشبینی کند که این نبرد به کجا خواهد انجامید. برای سالها، برنامههای تکصفحهای (SPA) که در سمت کلاینت رندر میشدند (CSR)، بر صحنه تسلط داشتند. این برنامهها، که اغلب شامل یک فایل HTML کوچک متصل به یک فایل جاوا اسکریپت عظیم بودند، تا زمان ظهور مفهوم تقسیم کد (code splitting) ، ساختار غالب وب را تشکیل میدادند.
در این دوران، توسعه فرانتاند تحت سلطه چارچوبها و کتابخانههای جاوا اسکریپت بود، در حالی که بکاند به زبان خاصی وابسته نبود و REST به عنوان استاندارد ارتباط API پذیرفته شده بود.
اما سپس TypeScript از راه رسید و با ارائه یک زبان برنامهنویسی تایپشده و قدرتمند، استانداردهای توسعه فرانتاند را متحول کرد. با ورود TypeScript، توسعهدهندگان به سطح جدیدی از استحکام و قابلیت اطمینان در کدهای خود دست یافتند و دیگر راه برگشتی وجود نداشت.
چالشهای TypeScript و REST و ظهور RPC
با وجود مزایای TypeScript، استفاده از آن در کنار REST با چالشهایی همراه بود. اگرچه OpenAPI (که قبلاً با نام Swagger شناخته میشد) به عنوان یک ابزار مستندسازی API وجود داشت، اما هدف اصلی آن به تولید رابطهای API تایپشده تغییر یافت. با این حال، در عمل، بسیاری از پروژهها در پیادهسازی صحیح این معماری با مشکل مواجه شدند.
اینجاست که RPC (Remote Procedure Call) به عنوان یک دوست قدیمی به میدان بازگشت. با ظهور tRPC در اکوسیستم React، فراخوانی توابع در بکاند برای خواندن و نوشتن دادهها به یک تجربه لذتبخش و کارآمد تبدیل شد. این رویکرد، بهرهوری را به سطح بیسابقهای رساند، بهویژه در محیطهایی که هر دو سمت استک از TypeScript استفاده میکردند.
انقلاب Server Components و Server Actions
اما پیشرفت واقعی با معرفی Server Components و Server Actions در سال ۲۰۲۴ رخ داد. این دو قابلیت، با امکان اجرای کد در سمت سرور و دسترسی مستقیم به منابع داده (مانند پایگاههای داده)، React را به یک چارچوب فولاستک تمامعیار تبدیل کردند.
Server Components امکان اجرای کامپوننتهای React را در سمت سرور فراهم میکند، که به توسعهدهندگان اجازه میدهد قبل از ارسال رابط کاربری به کاربر، مستقیماً به منابع داده دسترسی داشته باشند. از سوی دیگر، Server Actions با ایجاد نقاط پایانی HTTP API، امکان فراخوانی توابع در سمت سرور را به سادگی فراخوانی یک تابع در سمت کلاینت فراهم میکند.
آیندهی React: یک دنیای فولاستک
با ظهور Server Components و Server Actions ری اکت وارد عصر جدیدی از توسعه فولاستک شده است. این تحول، به توسعهدهندگان فرانتاند اجازه میدهد تا با تسلط بر معماریهای بکاند، ویژگیهای کامل را از UI تا پایگاه داده پیادهسازی کنند.
آینده React روشن و هیجانانگیز است. با این تغییر پارادایم، توسعهدهندگان React قادر خواهند بود مرزهای سنتی را بشکنند و برنامههای وب قدرتمند و کارآمدی را ایجاد کنند که هر دو سمت کلاینت و سرور را در بر میگیرند. آیا شما برای این سفر آمادهاید؟