Sobes.tech
Middle — Middle+

Máte skúsenosti s vývojom alebo implementáciou aplikácií s použitím hexagonálnej architektúry?

sobes.tech AI

Odpoveď od AI

Šesťuholníková architektúra (Hexagonal Architecture), známa tiež ako architektúra portov a adaptérov, je zameraná na oddelenie obchodnej logiky od externých systémov a infraštruktúry.

V mojich skúsenostiach s vývojom v Go som tento prístup použil na vytváranie modulárnych a ľahko testovateľných aplikácií. Hlavná myšlienka je izolovať jadro aplikácie (obchodnú logiku) a komunikovať s vonkajším svetom cez porty (rozhrania), ktoré sú implementované adaptérmi (napríklad databázy, webové služby, UI).

Príklad štruktúry:

  • Core (domena): obchodná logika, rozhrania portov
  • Adaptéry: implementácie portov (repozitáre, API, UI)
  • Aplikácia: spája jadro s adaptérmi

Tento prístup uľahčuje testovanie, výmenu komponentov a udržiava čistotu kódu. V Go je to ľahko realizovateľné cez rozhrania a kompozíciu.

Príklad rozhrania portu a adaptéra:

// Port
type UserRepository interface {
    GetUser(id string) (*User, error)
}

// Adaptér
type PostgresUserRepo struct {
    db *sql.DB
}

func (r *PostgresUserRepo) GetUser(id string) (*User, error) {
    // implementácia prístupu k databáze
}

Týmto spôsobom závisí obchodná logika iba od rozhraní, a konkrétne implementácie je možné meniť bez ovplyvnenia jadra.