Altıgen memarlıq istifadə edərək tətbiqlərin hazırlanması və ya tətbiqi təcrübəniz varmı?
sobes.tech Süni İntellekt
AI-dan cavab
Altıgen Arxitektura (Hexagonal Architecture), həmçinin portlar və adaptörlər arxitekturası kimi də tanınır, biznes məntiqini xarici sistemlər və infrastrukturdan ayırmağa yönəlib.
Go ilə inkişaf təcrübəmdə, bu yanaşmanı modul və asan test edilə bilən tətbiqlər yaratmaq üçün tətbiq etmişəm. Əsas fikir, tətbiqin nüvəsini (biznes məntiqini) izolyasiya etmək və xarici dünya ilə portlar (interfeyslər) vasitəsilə əlaqə qurmaqdır; bunlar adaptörlər (məsələn, verilənlər bazaları, veb xidmətlər, UI) tərəfindən həyata keçirilir.
Struktura nümunəsi:
- Core (domen): biznes məntiqi, port interfeysləri
- Adaptörlər: portların həyata keçirilməsi (repositorylər, API, UI)
- Tətbiq: nüvəni adaptörlərlə bağlayır
Bu yanaşma testləri asanlaşdırır, komponentlərin dəyişdirilməsini təmin edir və kodun təmiz qalmasını dəstəkləyir. Go-da bu, interfeyslər və kompozisiya vasitəsilə asanlıqla həyata keçirilir.
Port və adaptör interfeysi nümunəsi:
// 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) {
// verilənlər bazasına girişin həyata keçirilməsi
}
Beləliklə, biznes məntiq yalnız interfeyslərə bağlıdır və konkret həyata keçirmələr nüvəyə təsir etmədən dəyişdirilə bilər.