کلاً معماری های نامبرده شده هر کدام جزئی از الگوی معماری نرمافزار می باشند. الگوهای معماری نرمافزار روشهای طراحی استانداردی هستند که با استفاده از آنها یک نرمافزار ساخته می شود.
با در نظر گرفتن این روشها تا جای ممکن ریسک طراحی پایین آمده و از طرفی در آینده درک ساختار و … راحتتر است. البته در نظر بگیرید که بر روی این معماری ها ساعتها توسط مهندسان نرمافزار فکر شده و در نتیجه performance بهتری خواهند داشت.
طبیعتاً یک پروژه scalable نیاز زیادی به طراحی دارد. وگرنه در اواسط پروژه نقاط ضعف طراحی چنان دیده میشود که چند بار اجرا پروژه را فرسایشی میکند و در نهایت به مقصد رسیده نمی شود.
از طرفی ساخت یک Scalabel application نیاز مند مجموعهای از decouple هاست تا ساختار تکه شدهای داشته باشید.
با استفاده از طراحی های مناسب کد شما بیشتر re-usable خواهد بود و از طرفی به علت decouple شدن و تکهتکه بود قسمتهای مختلف امکان test شدن و mock کردن دارند. با به مشکل خوردن یک قسمت بقیه قسمتها کار خود را به خوبی انجام می دهند. در زمان طراحی هم کار به صورت کپسوله شده به دیگران داده می شود.
کلاً معماری های نامبرده شده هر کدام جزئی از الگوی معماری نرمافزار می باشند. الگوهای معماری نرمافزار روشهای طراحی استانداردی هستند که با استفاده از آنها یک نرمافزار ساخته می شود.
با در نظر گرفتن این روشها تا جای ممکن ریسک طراحی پایین آمده و از طرفی در آینده درک ساختار و … راحتتر است. البته در نظر بگیرید که بر روی این معماری ها ساعتها توسط مهندسان نرمافزار فکر شده و در نتیجه performance بهتری خواهند داشت.
طبیعتاً یک پروژه scalable نیاز زیادی به طراحی دارد. وگرنه در اواسط پروژه نقاط ضعف طراحی چنان دیده میشود که چند بار اجرا پروژه را فرسایشی میکند و در نهایت به مقصد رسیده نمی شود.
از طرفی ساخت یک Scalabel application نیاز مند مجموعهای از decouple هاست تا ساختار تکه شدهای داشته باشید.
با استفاده از طراحی های مناسب کد شما بیشتر re-usable خواهد بود و از طرفی به علت decouple شدن و تکهتکه بود قسمتهای مختلف امکان test شدن و mock کردن دارند. با به مشکل خوردن یک قسمت بقیه قسمتها کار خود را به خوبی انجام می دهند. در زمان طراحی هم کار به صورت کپسوله شده به دیگران داده می شود.
MVC
ترکیب model, view و controller که یک module را ایجاد میکند طراحی MVC را ایجاد میکند. Model لایه data را می سازد. هرچیزی که مرتبط به اطلاعات ذخیره شونده هست باید از این لایه بگزرد. View لایهایست که کاربر از طریق آنdata را میبیند و Controller چسب بین این دو لایه خواهد بود.
در این طراحی هر نوع عملگری با استفاده از کارکردش در جای مناسبش قرار می گیرد.
MVVM
طراحی MVVM اولین بار توسطmicrosoft ارایه شد. در ساختار این طراحی Model و View تفاوتی با MVC ندارد. VM یا ViewModel همچون Controller لایه نازکیست بین Model و View iii اما تفاوت هایش عبارت است از:
MVP
این طراحی مشتق شده از MVC است و کاملاً شبیه آن عمل میکند فقط لایه Presenter کمی شبیه ViewModel عمل می کند.
تفاوتی که با MVVM دارد در این است که در این روش بر عکس MVVM ارتباط بین Presenter و View به صورت یک به یک می باشد.
MOVE
چند وقت پیش خبری در hackernew چنان توجه طراحان نرمافزار را به خود جلب کرد که طراحی جدید به لیست طراحی های عمومی اضافه شد.
خبر این بود: MVC is dead, it's time to MOVE on.
در این طراحی که شباهت زیادی با MVP دارد تفاوتی که وجود دارد Operation جای Presenter گرفته است. و از طرفی Model با استفاده از Event میتواند View را دوباره Render کند. یعنی دیگر نیازی نیست که Model به لایه ارتباطی بگوید که فلان data ی من عوض شده در عوض به view می گویید.
منابع