Single responsibility principle چیست ؟

Single responsibility principle چیست ؟

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

مثلا داشتن یک کامپوننت که هم یک درخواست به Rest Api می دهد و هم داده ی برگشتی را نمایش می دهد در اینجا یک آنومالی محسوب می شود.

با ادامه ی این مقاله همراه ما باشید.

 

Single responsibility principle چیست ؟

Single responsibility principle چیست ؟
Single responsibility principle چیست ؟

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

توی حالت بالا ۲ وظیفه وجود دارد و ۲ کامپوننت.

نکته بسیار مهم : هر کامپوننت باید تنها یک دلیل برای تغییر وضعیت داشته باشد.

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

 

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

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

مزیت تک وظیفه ای بودن کامپوننت ها این است که کاملا تحت کنترل ما هستند و تمامی تغییرات داخل محیطی کاملا ایزوله اتفاق خواهد افتاد (این تغییرات نباید کامپوننت دیگری را تحت تاثیر قرار دهد)

تک وظیفه ای بودن کامپوننت ها سایز هر کامپوننت را محدود نگه میدارد و باعث تمرکز بیشتر روی کلیت پروژه خواهد شد. علاوه بر این موضوع کامپوننت های تک وظیفه ای فرآیند کد نویسی راحت تری دارند و در آینده برای تغییرات در کد و تست نویسی پیچیدگی چندانی نخواهند داشت.

اگر کامپوننتی داریم که بیش از ۱ وظیفه رو انجام میده باید بر اساس و اولویت اجرای کد به بخش های کوچک تری تقسیم بشن.

 

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

یک کامپوننت کپسوله سازی شده از propها برای کنترل رفتار خودشون استفاده میکنند و این در حالییست که ساختار این کامپوننت تحت تاثیر مقادیر دریافت شده prop از کامپوننت والد خودش قرار نمیگیرد.

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

  • Loose Coupling

    حالتی از ارتباط کامپوننت ها با هم می باشد که کمترین میزان ارتباط وجود دارد و کامپوننت ها در حالت ایده آل کاملا مستقل از هم کار میکنند.

  • Tight Coupling

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

 

کتاب Universal Principles of Design

 

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

موفق باشید.

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

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

code