سلام
فرض کنید برنامه ما ماژول های متفاوتی داره و (... و 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 یک مزیت محسوب میشه.