به طور معمول یک سردرگمی دربارهی دو مضمون معماری و طراحی نرم افزار وجود داراست. درین بخش به توضیح تفاوت این دو میپردازیم.
معماری نرم افزار برای تعریفوتمجید چارچوب و کامپوننتهای سطح بالای یک سیستم و روش همکاری آنها با یکدیگر گزینه استفاده قرار میگیرد. طراحی اپلیکیشن در مشهد از جمله می بایست تصمیم بگیریم آیا به یک معماری بدون سرور نیاز داریم که اپلیکیشن را به دو کامپوننت BAAS یعنی «بکاند به عنوان سرویس» (backend-as-a-service) یا FaaS یعنی «کارکرد به عنوان سرویس» (functions-as-a-service) تقسیم میکند؟ یا این که باید چیزی مانند یک معماری میکرو سرویس داشته باشیم که قابلیت و امکانها و وظایف متعدد در ماژولها و کدبیسهای مختلف قرار گیرند.
گزینش معماری به مواردی از قبیل تلاش، تحمل نادرست، مقیاسپذیری و پایداری مرتبط است.
در سوی دیگر، طراحی اپلیکیشن مسئولیت طراحی در سطح کد را بر عهده دارد. یعنی باید تصمیم بگیریم کدام ماژول چه کاری جاری ساختن دهد، دامنه کلاس، تابعها و اهداف آنان و مورد ها این چنین چهگونه باشند. زمانی که طراحی معماری به روشی راهبردی آیتم به کارگیری قرار گیرد، موجب می گردد که نرم افزارنویس، کوشش بیشتری داشته باشد و روشهایی در مشت وی قرار میگیرد که پیش از اینً از سوی افراد دیگر بازنگری و اصلاح شدهاند. بدین ترتیب از خلاقیت مجدد چرخ غربت میکنیم.
در ضمنً زمانی که با افراد دیگر گفت و گو میکنیم یا در گروههای گران قدر به مدیریت کد میپردازیم، اصول طراحی نرم افزار یک زبان مشترک برای گزینش چارچوب مفهومی مسائل و راهکارهای تکراری مهیا میسازند.
برای دستیابی اطلاعات بیشتر درین خصوص سفارش می کنیم به فراگیری ویدیویی ذیل زیر مراجعه کنید:
یادگرفتن مهندسی اپ ۱
الگوهای معماری نرم افزار
در این نصیب درباره ی الگوهای مختلفی که برای معماری نرم افزار وجود دارا هستند، توضیحاتی ارائه میکنیم.
کلاینت-سرور
این معماری بر مبنای مدل درخواست-پاسخ شغل میکند. کلاینت درخواست برای اطلاعات را به سرور ارسال میکند و سرور به آن پاسخ میدهد.
هر وبسایتی که بازدید میکنید، چه یک وبلاگ وردپرسی باشد و چه یک وباپلیکیشن مانند فیسبوک یا توییتر و یا حتی اپ اینترنت بانک باشد، بر مبنای معماری کلاینت-سرور بنا شدهاست.
همتا به همتا
یک شبکه Peer-to-Peer یا به اختصار P2P به شبکهای گفته میشود که در آن رایانهها که به نام «گره» (Node) نیز نامیده میگردند، میتوانند بدون نیاز به یک سرور مرکزی با هم ارتباط بگیرند. خلا سرور مرکزی، قابلیت وجود «نقطه باخت منفرد» را از بین میبرد. کلیه رایانهها دراین شبکه دارای حقوق و دستمزد برابری می باشند. هر گره قادر است هم زمان به عنوان یک seeder و leecher فعالیت کند. بدین ترتیب حتی درصورتیکه بعضا رایانهها یا گرههای شبکه خموشی شوند، شبکه و ارتباط همچنان برقرار خواهد بود.
معماری P2P مبنای فناوری بلاک چین را تشکیل می دهد.معماری مدل-ویو-کنترلر (MVC)