من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

Single responsibility principle

Single responsibility principle
Single responsibility principle

Single responsibility principle

کلمه‌ی SRP از سر واژه‌ی Single responsibility principle گرفته شده است؛ مفهوم srp به این موضوع دلالت دارد که هر کامپوننت باید یک وظیفه رو انجام دهد. مثلا داشتن یک کامپوننت که هم یک درخواست به Rest Api می‌دهد و هم داده‌ی برگشتی را نمایش می‌دهد در اینجا یک آنومالی محسوب می‌شود.

 

Single responsibility principle

شیوه‌ی صحیح این هست که یک کامپوننت درخواست خود رو بفرستد و داده‌ی مورد نظر خود رو بگیرد و به یک کامپوننت فرزند از طریق Prop یا State Management که ریداکس یا کانتکست است، پاس داده شود. توی حالت بالا ۲ وظیفه وجود دارد و ۲ کامپوننت.

هر کامپوننت تنها یک دلیل برای تغییر وضعیت دارد. باز هم مفهوم تک وظیفه‌ای بودن هر کامپوننت مطرح شده است.

 

حالا دلیل این تک وظیفه‌ای بودن کامپوننت‌ها چیست‌؟

زمانی که شما چندین و چند کامپوننت تک وظیفه‌ای دارید، دیباگ کردن پروژه خیلی ساده‌تر خواهد بود چون طبق مشکل پیش آمده مشخص است که کدام کامپوننت وظیفه‌ی خودش را به درستی انجام نمی‌دهد. مزیت تک وظیفه‌ای بودن کامپوننت‌ها این است که کاملا تحت کنترل ما هستند و تمامی تغییرات داخل محیطی کاملا ایزوله اتفاق خواهد افتاد (این تغییرات نباید کامپوننت دیگری را تحت تاثیر قرار دهد) تک وظیفه‌ای بودن کامپوننت‌ها سایز هر کامپوننت را محدود نگه می‌دارد و باعث تمرکز بیش‌تر روی کلیت پروژه خواهد شد. علاوه بر این موضوع کامپوننت‌های تک وظیفه‌ای فرآیند کدنویسی راحت‌تری دارند و در آینده برای تغییرات در کد و تست نویسی پیچیدگی چندانی نخواهند داشت. اگر کامپوننتی داریم که بیش از ۱ وظیفه رو انجام میده باید بر اساس و اولویت اجرای کد به بخش‌های کوچک‌تری تقسیم بشن.

 

کپسوله سازی کامپوننت‌ها

یک کامپوننت کپسوله سازی شده از propها برای کنترل رفتار خودشون استفاده می‌کنند و این در حالییست که ساختار این کامپوننت تحت تاثیر مقادیر دریافت شده prop از کامپوننت والد خودش قرار نمی‌گیرد. Coupling یک سیستم ویژگی کامپوننت است که درجه یا میزان وابستگی بین کامپوننت‌ها را مشخص می‌کند و ۲ نوع مختلف دارد:

  • Loose Coupling: حالتی از ارتباط کامپوننت‌ها با هم است که کم‌ترین میزان ارتباط وجود دارد و کامپوننت‌ها در حالت ایده‌‌آل کاملا مستقل از هم کار می‌کنند.
  • Tight Coupling: در این حالت هر کامپوننت ارتباط‌های بسیار و تنگاتنگی با کامپونتت‌های دیگه دارد و در این حالت استقلال کامپوننت‌ها از هم در پایین ترین حد و گاها صفر قرار دارد. استاندارد طراحی ساختار کامپوننت‌ها loose coupling  رو ترجیح می‌دهد چرا که این مورد توصیف ذاتی واضحی از SRP دارد.

 

پیشنهاد نویسنده: کتاب Universal Principles of Design

 

نظرات خود را در ارتباط با این مقاله برای ما بنویسید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 2 میانگین: 5]