بسم الله الرحمن الرحیم
به مدد الهی در این کانال درباره کلود و تکنولوژی های مرتبط مطالبی را به اشتراک خواهم گذاشت.
@cloudnativecommunity
C4 Model (Software Architecture)
مدل سی۴ در معماری نرم افزار یکی از روشهای مدلسازی و معماری نرم افزار است که از ۴ لایه تشکیل شده است:
Context, Containers, Components, Code
این ۴ لایه دارای جزئیات متفاوت هستند که از مدل نقشه های دیجیتالی مانند Google Map الهام گرفته شده است. به این صورت که لایه های بالایی نمای کلی تر را نشان می دهند و با زوم کردم روی هر قسمت جزئیات فنی تر و دقیق تر ظاهر می شوند.
لایه Context (یا زمینه) یک نمای کامل از کل سیستم را نشان می دهد که شامل توصیف کلی سیستم است و اینکه چه کار میکند و چه کسی از این سیستم استفاده می کند و چه ارتباطی بین این سیستم و بقیه سیستم ها وجود دارد. این لایه برای به اشتراک گذاری با مخاطبان غیر فنی خوب هستند. آنها می توانند به مخاطبان شما کمک کنند تا محدوده پروژه، کاربران و مشکلی که می خواهید حل کنید را درک کنند.
لایه Container دارای جزئیات بیشتر برای هر قسمت از لایه قبل است. (این لایه داکر کانتینر نیست). یک کانتینتر واحدی از سیستم است که دارای مجموعه ای کدها یا اطلاعات یا فایلهاست. مانند یک اپ موبایل یا یک برنامه دسکتاپ یا یک برنامه تحت وب. این لایه نشان می دهد که هر کانتینر چه کاری انجام می دهد و از چه تکنولوژی ها و زبان هایی استفاده می کند. این لایه برای مخاطبان فنی تر مانند توسعه دهندگان مناسب است.
با زوم کردن روی هر کانتینر لایه بعدی مربوط به آن کانتینر یعنی لایه Components ظاهر می شود که اجزای تشکیل دهنده آن کانتینر را نشان می دهد. مانند کتابخانه ها و یا واحدهای مختلف تشکیل دهنده و نحوه ارتباط آنها با یکدیگر.
و در نهایت با زوم کردن روی هر Component لایه بعدی یعنی Code ظاهر می شود که همان UML Class Diagram است که جزئیات پیاده سازی هر کامپاننت را به صورت کد نشان می دهد. مبدع این مدل توصیه میکند که لایه چهارم را دستی انجام ندهید و از ابزارهایی استفاده کنید که اتوماتیک از روی کد پیاده سازی شده آن را رسم می کند.
مبدع این مدل، نرم افزار تحت وبی هم مخصوص آن ساخته است که structurizr نام دارد.
@MojtabaInFrance
@CloudNativeCommunity