۶ میلیون تومن هدیه🎁 + کلی آفر جذاب در کمپین تابستون🔥 تابستون کوتاهه پس بزن بریم 👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ محسن محمدخانی
تضاد بین تکرار کد و loosely coupling  
کیوان علی محمدی حل شده توسط کیوان علی محمدی

سلام 
فرض کنید برنامه ما ماژول‌های متفاوتی داره  و  (... و user , ticket ,product)  
اگر ما بخواهیم کد‌های بنویسیم که بصورت helper باشن و ماژول‌های از اون‌ها استفاده کنن , ما از تکرار کد‌ها در برنامه جلوگیری کردیم و helper‌های ما داینامیک   هستن  , اما ما دچار یک مشکل به نام loosely coupling  خواهیم شد کد‌های ما به شدت به هم وابسته هستن و مستقل نیستن , و customization  برای هر ماژول نداریم
چون اگر بخواهیم یک تغییر برای یک helper یک ماژول بدیم بقیه ماژول‌ها دچار تغییر و ایراد میشن
اما اگر برای هر ماژول helper تعریف کنیم و اکثر helper  ها , هم در ماژول‌ها شبیه هم باشن ما می‌تونیم در آینده هر helper هر ماژول اختصاصی تغییر بدیم و این جا ما customization داریم و مشکل loosely coupling   نخواهیم داشت اما تکرار کد خواهیم داشت و کد‌های ما داینامیک نیستن 
مثلا در reactJS کامپونت pagination  میسازیم برای همه جداول پروژه اینجا ما مشکل اول داریم
اما اگر برای جداول بخش user یک کامپونت pagination  داشته باشیم و برای  ticket  و product بصورت جدا کامپونت pagination داشته باشیم مشکل دوم  داریم 
اینجا ما باید چیکار کنیم؟
سطح پروژه بزرگ هستش و همش در حال اضافه شدن ویژگی‌های جدید به پروژه هستیم

این میتونه در پروژه‌های nodeJS  و laravel هم رخ بده و در هر جایی  که ما  , برنامه بخش‌های مختلفی تقسیم می‌کنیم

 

سلام خدمت شما. تا جایی که می‌تونید سعی کنید dependency‌های یک ماژول یا کلاس رو در زمان ایجاد اون بهش پاس بدید و از فرخوانی کردن کدهای global اجتناب کنید. سعی کنید ماژول هایی که مشترک هستند رو طوری در نظر بگیرید که حداقل اشتراک‌ها در اون در نظر گرفته شده باشه، مثلا برای همون pagination می‌دونیم حداقل رفتن به یک صفحه قبل یا بعد جز قابلیت‌های اصلی اون هست. می‌تونیم تمام این موارد رو به صورت ورودی‌های اون Component در نظر بگیریم. حالا اگر نیاز باشه یه جایی سفارشی سازی کنه اون Component رو اگر بشه از Composition استفاده کرد که چه بهتر در غیر این صورت باید یک Component سفارشی براش ایجاد کرد. فکر کنم منظور شما tight coupling بود چون lossly coupling یک مزیت محسوب میشه.

بهترین پاسخ
کیوان علی محمدی ۲۲ مرداد ۱۳۹۹، ۱۲:۱۳