فرق بین معماری های مختلفِ طراحی نرم افزار
سلام،
میخواستم بدونم فرق یه معماری Monolith و Modular و معماری Microservice چیه دقیقا؟
و اینکه این پروژه ای که الان داریم برای سِکشِن Web API میزنیم که با معماری Clean Architecture هم هست، کلا با اون 3 تای دیگه فرق داره؟ اونا هر کدوم یه معماری دیگه هستند؟
من سرچ کردم تو اینترنت ولی درست متوجه نشدم واقعا، یجایی گفته بود کلین آرکیتکچر یه معماری ماژولارِ مونولیث هست فک کنم، یه همچین چیزایی، ولی من نفهمیدم اصلا،
یه توضیحی اگر بدید خیلی ممنون میشم.
پاسخ ها
محمد اشرافی
سلام
مقایسه اتون باید به این شکل باشه Microservice vs Monolith
و
Clearn Arch vs Onion Arch vs Hexagon vs NLayer و…
معماری میکروسرویس توی Process View داره پیاده سازی میشه
و معماری های Clean , Onion و… توی Logical View داره پیاده سازی میشه ( به اصطلاح میشه گفت معماری داخلی سیستم هستن )
-----------------
معماری های Logical View خیلی تفاوتی با هم ندارن فقط نحوه پیاده سازی ، ارتباط بین لایه ها و طرز فکر توشون فرق داره
این بحث Modular Monolith هم به این شکله که ما هر بخش از سیستم رو از هم جدا میکنیم ، جدا توسعه میدیم و بعضا ممکنه هر Module یک معماری logical view متفاوت داشته باشه و در آخر همه ی این module ها یک جا به هم وصل میشن و یک Application رو میسازن (همشون توی یک Process اجرا میشن)
توی Microsevice این بحث Module یا به اصطلاح Service رو هم داریم ولی هر کدوم از Service ها توی یک Process جدا اجرا میشن و هر کدوم برای خودشون یک پروژه کاملا جدا هست ( بحث Microservice منطق خاص خود اش رو داره ولی کلیات کار این بود )
bzmind
آها، خیلی ممنون بابت توضیح، بعد واسه یادگیری معماری مایکروسرویس منبع خوبی میشناسید که پیشنهاد کنید؟ خیلی ممنون.
محمد اشرافی
فارسی من خودم دوره سایت Nikamooz رو دیدم خوب بود ( پروژه محور نیست ، بیشتر مفهومی ه )
bzmind
ممنون، منبع انگلیسی هم میشناسید چیزی؟ من یخورده سرچ زدم ولی زیاد مطلب پیدا نکردم.
محمد اشرافی
نه متاسفانه ، ولی آموزش های Udemy اکثرا خیلی خلاصه و مفید هستند می تونید از اونا استفاده کنید
bzmind
ممنون استاد.