Sobes.tech
Middle — Middle+

Have you had experience developing or implementing applications using hexagonal architecture?

sobes.tech AI

Answer from AI

Hexagonal Architecture, also known as Ports and Adapters architecture, aims to separate business logic from external systems and infrastructure.

In my experience developing in Go, I have applied this approach to create modular and easily testable applications. The main idea is to isolate the application's core (business logic) and interact with the outside world through ports (interfaces), implemented by adapters (such as databases, web services, UI).

Example structure:

  • Core (domain): business logic, port interfaces
  • Adapters: implementations of ports (repositories, APIs, UI)
  • Application: connects the core with adapters

This approach facilitates testing, component replacement, and maintains code cleanliness. In Go, it is conveniently implemented through interfaces and composition.

Example of a port interface and adapter:

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

// Adapter
type PostgresUserRepo struct {
    db *sql.DB
}

func (r *PostgresUserRepo) GetUser(id string) (*User, error) {
    // implementation of database access
}

Thus, the business logic depends only on interfaces, and specific implementations can be changed without affecting the core.

Have you had experience developing or implementing… - sobes.tech