Fullstack React, Revision 42
توسعه وب غالباً دنیای دیوانه واری تلقی میشود که در آن توسعهی نرم افزار با نوشتن هک توی هک انجام میشود. من معتقدم که React از این الگو جدا شد و از اساس به گونه ای طراحی شد تا به شما یک پایهی محکم بدهد تا بر اساس آن کار کنید. یکی از سرچشمههای اصلی باگها در برنامههای front-end، همگام سازی مدل دادهها با DOM بود. مطمئن شدن از اینکه هر زمان که دادهها تغییر میکنند، همه چیز در UI نیز با آن به روز میشوند، بسیار سخت است. اولین نوآوری React، معرفی یک ارائهی خالص جاوا اسکریپتی از DOM و پیاده سازی مغایرت گیری در زمین کاربر و سپس استفاده از رویداد هایی که دستورات ساده ای را ارسال میکردند: ایجاد، بروز رسانی و حذف. با ری اَکت، از نظر مفهومی هر موقع که چیزی تغییر کند، همه چیز مجددا رندر میشوند و نه تنها کدی دارید که به طور پیش فرض امن است، بلکه کار چندانی هم نیاز نیست انجام دهید، چرا که فقط باید مسیر ایجاد را بنویسید و به روزرسانیها برای شما انجام میشوند.
برای مدتی طولانی، مرورگرها از جهات مختلف ناسازگار بودند، به این علت که برای اینکه DOM کار کند، باید از تعداد زیادی API پشتیبانی میکردند. React نه تنها راهی عالی برای حل اختلافات مرورگرها ارائه میدهد، بلکه مواردی را که قبلاً برای کتابخانههای frontend هرگز امکان پذیر نبود را امکان پذیر کرد، مانند رندر سمت سرور و قابلیت پیاده سازی اهداف رندر مانند native iOS، اندروید و حتی اجزای سخت افزاری. اما مهمترین چیز در مورد React و دلیل اصلی اینکه چرا باید این کتاب را بخوانید این است که نه تنها از آن برای ایجاد برنامههای عالی برای کاربران خود استفاده خواهید کرد، بلکه شما را به توسعه دهنده بهتری نیز تبدیل خواهد کرد. کتابخانهها همیشه میآیند و میروند و احتمالاً React نیز از این قاعده مستثنی نخواهد بود. چیزی که آن را خاص میکند این است که مفاهیمی را به شما میآموزد که میتوانید در کل دوران حرفه ای خود از آنها مجددا استفاده کنید. همچنین در جاوا اسکریپت بهتر خواهید شد زیرا React دارای سیستم قالب بندی نیست. در عوض، React شما را مجبور میکند تا از قدرت کامل جاوا اسکریپت برای ایجاد رابط کاربری خود استفاده کنید. شما همچنین بخش هایی از برنامه نویسی تابعی را با map و filter تمرین میکنید و همچنین به استفاده از جدیدترین قابلیتهای جاوا اسکریپت (از جمله ES6) ترغیب میشوید. با انتزاع نکردن مدیریت داده ها، React شما را مجبور میکند تا در مورد نحوه معماری برنامه خود فکر کنید و شما را تشویق میکند تا مفاهیمی مانند تغییرناپذیری را در نظر بگیرید.
هدف کتاب Fullstack React (فول استک ری اکت) این است که مفیدترین منبع برای یادگیری React باشد. وقتی که خواندن این کتاب را به پایان رساندید، شما (و تیمتان) تمام چیز هایی که برای ساخت برنامههای React قدرتمند و قابل اطمینان نیاز داشته باشید را در اختیار خواهید داشت. هسته React، نحیف و قدرتمند است. پس از چند فصل اول، شما درک کاملی از مبانی React خواهید داشت و قادر خواهید بود تا طیف وسیعی از برنامههای وب غنی و تعاملی را با چارچوب ری اَکت ایجاد کنید.
اما فراتر از هسته React، ابزارهای زیادی در اکوسیستم آن وجود دارد که ممکن است برای ساختن برنامههای عملیاتی مفید باشند؛ مواردی مانند مسیریابی سمت کلاینت بین صفحات، مدیریت حالت پیچیده و تعاملات زیاد API در مقیاس بالا.
این کتاب شامل دو بخش است. در بخش اول، ما تمامی مبانی را با رویکردی پیش رونده و مثال محور پوشش داده ایم. شما برنامههای ابتدایی خود را ایجاد خواهید کرد، نحوهی نوشتن کامپوننتها را یاد خواهید گرفت، مدیریت تعاملات کاربر، مدیریت فرمهای غنی و حتی تعامل با سرور را فرا خواهید گرفت. ما قسمت اول را با بررسی عملکرد داخلی Create React App (ابزار فیس بوک برای اجرای برنامههای React)، نوشتن آزمایشات واحد خودکار و ساخت یک برنامه چند صفحه ای که از مسیریابی سمت کلاینت استفاده میکند، شروع میکنیم.
بخش دوم این کتاب به مفاهیم پیشرفتهتری میپردازد که در برنامههای بزرگ و عملیاتی مورد استفاده قرار میگیرند. این مفاهیم، استراتژیها برای معماری، انتقال و مدیریت دادهها را بررسی میکنند:
GraphQL، جایگزینی نوع دار و قدرتمند برای REST API است که در آن، کلاینت دادههای مورد نیاز خود را شرح میدهد. ما همچنین چگونگی نوشتن سرورهای GraphQL خودتان برای دادههای خودتان را بررسی خواهیم کرد.
Relay چسب بین GraphQL و React است. Relay، یک کتابخانه data-fetching است که نوشتن برنامههای منعطف و کارآمد را بدون نوشتن کدهای زیاد data-fetching آسان میکند.
در نهایت در فصل آخر، ما دربارهی نحوهی نوشتن برنامههای چند سکویی و native، با استفاده از React Native صحبت میکنیم.