سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ MohammadMoghadasi
منظور از برنامه modular بندی شده چیه؟
جامعه لاراول ایجاد شده در ۰۸ مرداد ۱۳۹۸

سلام استاد یک جا به ما گفتن برنامه modular شده نیاز بازار کار هست این مفهمومش چیه؟ یعنی ما از این https://github.com/nWidart/laravel-modules براش استفاده کردیم . آیا این درسته ؟ یا همون سرویس که میزنیم خودش modular شده هست ؟

استاد دقیقا راجب ماژول بندی کردن برنامه و اینکه کی استفاده میشه؟ و اینکه چرا تو این دوره هر قسمت رو به اون شکل ننوشتید هم توضیح بدید.

ممنون

MohammadMoghadasi ۰۸ مرداد ۱۳۹۸، ۲۱:۰۱

سلام ... 

یک نوع طراحی وجود داره به نام Modular design که شما تمامی قسمت‌های یک برنامتون شامل فایل‌های مربوط به routing , controllers , views و همه رو داخل یک دایکتوری یا اصطلاحا ماژول قرار میدید و مثلا برای اون قسمت به خصوص اگه مشکلی یا هر اتفاق خاص دیگه ای بیوفته توی همون قسمت حل میشه ... 

اون اکانت گیت هاب هم یک پکیج هستش که شما با استفاده از اون میتونید این معماری رو راحت‌تر پیاده سازی کنید .. یکسری دستورات artisan داره که برای ساخت ماژول‌ها کار شما رو راحتتر میکنه ... 

این موضوع هم که الان نیاز بازار کار این نوع طراحی هست .. خیر به اینصورت نیست ... تقریبا من جایی ندیدم از این نوع طراحی استفاده کنند ... موضوع دیگه ای که در مورد طراحی وجود داره اینه که شما باید با توجه به حجم کاری که میخواید انجام بدید یک نوع طراحی رو انتخاب کنید ... به عنوان مثال معماری میکروسرویس باید در جای درست استفاده بشه و زمانی استفاده بشه که قسمت‌های مختلف و بزرگی دارید که بنا به دلایل امنیتی و یا performance اون‌ها رو جدا کردید .. معماری میکروسرویس معماری خیلی خوبی هستش ولی در جای درست  ... چون اون هم دردسر نگه داری و خیلی مسائل دیگش زیاد هست ... تعداد خیلی زیادی طراحی وجود داره که میتونید راجع به اون‌ها بخونید و در جای درست استفاده کنید ... 

این معماری که ما در حال حاضر داریم استفاده میکنیم معماری MVC هستش یا یک مقدار تغییرات که ما به جای اینکه منطق برنامه خودمون رو داخل Model‌ها پیاده سازی کنیم داخل Service پیاده سازی میکنیم و تا حدود کمی نزدیکش میکنیم به SOA ... این روش برای برنامه‌های لاراول تقریبا بیشترین استفاده رو داره .... 

در مجموع طراحی‌های زیادی وجود داره که میتونید ازشون استفاده بکنید و داخل پروژه پیاده سازی بکنید ... لینک زیر یک سری از پروژه‌های open source لاراول هستش که هرکدوم طراحی خاص خودشون رو دارن ... میتونید اون‌ها رو مشاهده کنید تا با طراحی‌های مختلف آشنا بشید .. 

https://github.com/goodnesskay/Laravel-Open-Source-Projects

 

 

مهرداد سامی ۰۹ مرداد ۱۳۹۸، ۱۱:۵۱

ما قراره تو شرکت n عدد بروژه داشته باشیم و n عدد ماژول بینشون مشترکه مثلا برای سرویس auth خودش یک ماژول که بین همه بروژه‌ها مشترکه و بعدا که بخوایم هز بروژه ای بزنیم از این ماژول‌ها استفاده می‌کنیم. آیا چنین کاری معقوله ؟

MohammadMoghadasi ۰۹ مرداد ۱۳۹۸، ۱۲:۵۳

توی این حالت اکثرا رو میارن به میکروسرویس ... شما پروژه auth رو به صورت میکروسرویس در میارید و با هر زبان یا فریمورکی که میخواید پیاده سازی میکنید ... بعد به صورت API داخل سازمانی اون رو فراخوانی میکنید هرجایی که خواستید ... 

مهرداد سامی ۰۹ مرداد ۱۳۹۸، ۱۴:۵۷