Hexagonal Architecture
Hexagonal Architecture nima?
Section titled “Hexagonal Architecture nima?”Hexagonal Architecture (yoki Ports and Adapters) — bu Alistair Cockburn tomonidan taklif qilingan arxitektura bo’lib, uning maqsadi dasturiy ta’minotning yadrosini (biznes logikani) tashqi texnologiyalardan (database, web framework, external API) ajratishdir.
Bu arxitektura Clean Architecture bilan juda o’xshash, lekin u asosiy e’tiborni Portlar va Adapterlarga qaratadi.
Asosiy Tushunchalar
Section titled “Asosiy Tushunchalar”1. Core (Yadro)
Section titled “1. Core (Yadro)”Eng o’rtada biznes logika joylashgan. U tashqi dunyo haqida hech narsa bilmaydi.
2. Ports (Portlar)
Section titled “2. Ports (Portlar)”Biznes logika bilan muloqot qilish uchun “kirish” va “chiqish” eshiklari. Bular odatda Interfacelardir.
- Driving Ports (Inbound): Dasturga buyruq berish uchun (masalan,
UserServiceInterface). - Driven Ports (Outbound): Dastur tashqi dunyodan nimanidir so’rashi uchun (masalan,
UserRepositoryInterface).
3. Adapters (Adapterlar)
Section titled “3. Adapters (Adapterlar)”Portlarni konkret texnologiyalar bilan bog’lovchi qism.
- Driving Adapters: Web Controller, CLI, Test cases. (Ular
UserServiceni chaqiradi). - Driven Adapters: PostgreSQL, Redis, MailService. (Ular
UserRepositoryni implement qiladi).
Diagramma
Section titled “Diagramma”graph TD subgraph "Hexagon (Core)" Logic[Business Logic] PortIn((Driving Port)) PortOut((Driven Port)) end
Web[Web Controller] --> PortIn PortIn --> Logic Logic --> PortOut PortOut -.-> DB[Database Adapter]