Hexagonal architecture

معماریHexagonal:

نام دیگر و اصلی این معماریPorts and Adaptors می باشد. زیرا پورت ها و آداپتورهای مختلف و خاص باعث شده که بتوان لایه‌ها را از همدیگر تفکیک کرده و برای هر ارتباطی در هر وجه پورت و آداپتور مجزایی در نظر گرفت. این نوع معماری یک لایه انتزاعی ایجاد می‌کند که از هسته برنامه محافظت کرده و آن را از ابزارها و تکنولوژی‌های خارجی و به نوعی نامربوط جدا کند. پورت ها و آداپتورها هنگامی‌که به‌درستی پیاده‌سازی و با سایر متدولوژی ها مانندDomain Driven Design جفت شوند ، می‌توانند پایداری و توسعه پذیری طولانی مدتی برنامه را تضمین کنند و ارزش زیادی برای سیستم و سازمان به ارمغان بیاورند. این معماری قابلیت تست پذیری و قابلیت تغییر در کد را افزایش می‌دهد و قابلیت تغییر و یا جایگزینی بخشی از کد ماژول ها و یا شی ها را برای برنامه‌نویس ساده‌تر می‌کند.

به‌طورکلی معماری تنها یک هدف دارد: جدا کردن منطق تجارت از سازوکار ارتباط با رابط کاربری و همچنین ابزارهای استفاده‌شده توسط سیستم. معماری Hexagonal این کار را با استفاده از یک ساختار مشترک زبان برنامه‌نویسی به نام رابط‌ها انجام می‌دهد. در کل در این معماری در سمت کنترل کننده‌ها در زیرساخت ، آداپتورهایی ایجاد می‌کنیم که رابط های برنامه ما را اجرا می‌کنند و از این طریق معماری لایه‌ای چند وجه خواهیم داشت.

Hexagonal Archtecture
Hexagonal Archtecture


فواید معماری Hexagonal :

1- معماری Hexagonalاین قابلیت را می‌دهد که پیاده‌سازی فناوری‌ها را به‌صورت ایزوله انجام دهیم.

2- با استفاده از این معماری برنامه ما که در واقع در مرکز سیستم قرار گرفته به ما این امکان را می‌دهد تا از جزئیات پیاده‌سازی ها فناوری‌های زودگذر و منقضی شدن مکانیزم‌های بیرونی که در اطراف آن وجود دارد در امان بماند.

3- همچنین تست نویسی نرم‌افزار آسان‌تر می‌شود.


منابع:

https://medium.com/ssense-tech/hexagonal-architecture-there-are-always-two-sides-to-every-story-bc0780ed7d9c

https://fideloper.com/hexagonal-architecture