💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ Soroosh
redux vs useReducer
مجتبی سوری حل شده توسط مجتبی سوری

با سلام خدمت استاد سوری گرامی 

استاد آیا میشه این نتیجه گیری را کرد که useReducer یک جایگزین برای redux میتونه باشه؟

و این که استاد با وجود قابلیت‌های hook آیا میشه برای استفاده کردن از redux توی بروژه‌ها به جای کلاس کامبوننت از فانکشنال استفاده کرد؟

و در حالت کلی برای یه بروژه ی بزرگ شما استفاده از useReducer را بیشنهاد میکنید یا redux را؟

ممنون از شما

سلام

قبل از اینکه به پاسخ بپردازیم این نکته رو در ذهن باید داشته باشیم که انتخاب ابزار برای توسعه یک برنامه کاملا بستگی به شرایط اون پروژه داره که شرایط شامل بودجه، نیروی انسانی، زمان، شرایط رقبا و ... و نمیشه به صورت کلی یک ابزار رو برای همه پروژه توصیه یا رد کرد.

اضافه کردن redux یا هر پکیج دیگه ای به برنامه باعث افزایش پیچیدگی برنامه میشه و باید کامل بررسی بشه که این ابزار چه مشکلی رو حل میکنه که میخوایم از اون استفاده بکنیم

 

حالا می‌رسیم به جواب:

من موافق و مخالف redux هستم.

مقایسه redux و useReducer زیاد جالب نیست چون که امکانات یکسانی رو در اختیار ما قرار نمیدن و در یک سطح نیستن که بشه اونها رو مقایسه کرد. همین redux خودش تبدیل به یک بستری برای توسعه بقیه پکیج‌ها شده که برای اون نوشته شدن و این یک نکته بسیار مهم در انتخاب redux محسوب میشه

 

من شخصا در صورتی توصیه می‌کنم از redux یا پکیج‌های مشابه اون استفاده نکنید که اون تیم توسعه اولا دانش کافی، زمان، سرمایه و ... برای رفع مشکل مدیریت state رو داشته باشه و همچنین اون راه حلی که برای رفع مشکل به وجود میاد باید منطقا پیچیدگی کمتری ایجاد بکن. اگر این شرایط رو دارید میتونید از redux یا موارد مشابه استفاده نکنید.

نمونه تلاش‌های برخی از تیم‌های نرم افزاری  در شرکت‌های بزرگ که  نخواستن از redux استفاده بکنن رو میتونید مطالعه بکنید برخی از اونها در اولین تجربه شکست خوردن و با پیدا کردن مشکلات در نسخه بعدی که ارائه دادن مشکلات رو حل کردن و برخی از اونها هم منجر به ارائه یکسری پکیج open source شده

 

جمع بندی:

اگر پروژه بزرگ نیست و پیچدگی ندارد که قطعا نباید از redux استفاده کرد.

در غیر این صورت باید شرایط رو سنجید اگر امکان اجرای پروژه بدون redux هست این کار رو انجام بدید

 

در این مورد در سرفصل مربوط بیشتر توضیح میدم

بهترین پاسخ
مجتبی سوری ۰۶ آبان ۱۳۹۹، ۱۵:۱۸