معماری ماژولار در پروژه های ری اکت !

تا حالا برات پیش اومده وسط یه پروژه ری اکت، بعد چند ماه کدنویسی، وقتی دنبال یه کامپوننت ساده میگردی، حس کنی توی یه جنگل تاریک و پر از پوشه و فایل گم شدی؟ 
این دقیقا همون جاییه که معماری ماژولار میاد به دادمون برسه.
ماژولار بودن یعنی اینکه پروژمون رو تیکه تیکه طراحی کنیم:
هر بخش کار خودش رو بکنه، مستقل باشه، ولی در عین حال بشه راحت کنار بقیه بخشها قرارش داد و ازش استفاده کرد 🙂
معماری ماژولار یعنی چی؟
ماژولار بودن فقط یه شعار قشنگ نیست.
به زبان ساده: پروژمون رو به بخشهای کوچیک، مستقل و قابل استفاده مجدد تقسیم کنیم.
اینطوری اگه فردا روزی خواستیم یه فیچر جدید اضافه کنیم، لازم نیست نصف پروژه رو بترکونیم، فقط یه ماژول جدید میسازیم و تمام.
چرا توی ری اکت اهمیت بیشتری داره؟
ری اکت از پایه بر اساس کامپوننت ها ساخته شده. هر چیزی یه بخش مستقله: دکمه، فرم، کارت محصول و …
حالا اگه همین فلسفه رو ببریم یه لول بالاتر و کل پروژه رو ماژولار کنیم، معجزه رخ میده:
- مقیاس پذیری: پروژه بزرگ بشه، همچنان تمیز میمونه. 
- قابلیت تست بالا: راحت میشه هر بخش رو جداگانه تست کرد. 
- نگهداری راحت تر: بعد شش ماه کد برات غریبه نمیشه. 
الگوهای رایج معماری ماژولار در ری اکت
۱. Feature-based architecture
پروژه رو بر اساس فیچرها تقسیم میکنی. مثلاً:
- auth 
- dashboard 
- profile 
هر فیچر پوشه ی خودش رو داره و همه چیز (کامپوننت، هوک، سرویس) داخل همون پوشه نگهداری میشه.
۲. Layer-based architecture
اینجا همه چیز بر اساس لایه ها جدا میشه. مثلاً:
- components 
- hooks 
- services 
- contexts 
۳. ترکیبی (Hybrid)
معمولاً پروژههای واقعی از ترکیب این دو مدل استفاده میکنن. فیچرها جدا هستن، ولی بخشهای مشترک (shared) رو توی پوشههای مستقل نگه میداریم.
نمونه ساختار پوشه ها ( معماری Feature-based architecture )
				
					src/
  features/
    auth/
      components/
      hooks/
      services/
    dashboard/
      components/
      hooks/
      services/
  shared/
    components/
    hooks/
    utils/
 
				
			
		- 
هر فیچر خودش همه چی رو داره → استقلال بیشتر 
- 
پوشهی shared برای بخشهای مشترک → جلوگیری از تکرار کد 
مزایا و چالش های ساختار بالا
مزایا
- 
پروژه مقیاس پذیر میشه 
- 
تیمها میتونن مستقل کار کنن 
- 
دیباگ کردن راحت تره 
- 
خوانایی کد بالا میره 
چالش ها
- 
اولش ممکنه پیچیده به نظر بیاد 
- 
نیاز به دیسیپلین تیمی داره (هر کسی الکی ساختار رو به هم نریزه) 
- 
بعضی وقت ها تصمیم گرفتن اینکه یه فایل بره توی shared یا feature خودش، زمان میبره 
جمع بندی
معماری ماژولار یه تکنیک خشک و صرفاً کتابی نیست؛ در واقع یه طرز فکره.
یعنی ماها وقتی پروژه هامون رو ماژولار طراحی میکنیم، داریم به آینده ی خودمون کمک میکنیم.
+ با این، کار تیمی راحت تر میشه، چون هر کس میتونه روی یه بخش مستقل کار کنه بدون اینکه مزاحم شخص دیگه بشه.
+ پروژه هامون مقیاس پذیر میشه، یعنی اگه فردا ۱۰ برابر بزرگتر بشه، باز هم از هم نمیپاشه.
+ خودمون هم بعد از چند ماه میتونیم سریع به پروژه برگردیم، بدون اینکه حس کنیم داریم کدی میخونیم که هیچوقت ندیدیم.
واقعیت اینه که همه ی ما دوست داریم روی پروژه هایی کار کنیم که تمیز، قابل فهم و آینده دار باشن. ماژولار نوشتن دقیقاً اون ابزاریه که میتونه این هدف رو بسازه.
بنظرم هردفعه که یه پروژهی جدید React رو میخواستیم استارت بزنیم، قبل از اینکه اولین کامپوننت رو بنویسیم، باید یه لحظه به خودمون یادآوری کنیم که مزیت ماژولار نویسی چیه و تصمیم بگیریم که به اون سمت حرکت کنیم 🙂
درباره احمد احمدنژاد
من یه برنامه نویس و توسعه دهنده وب هستم که عاشق دنیای صفر و یکم❤️
نوشتههای بیشتر از احمد احمدنژاد






دیدگاهتان را بنویسید