Sobes.tech
Senior

Altıgen Mimari üç öğeden oluşur: adaptör, port ve merkezi uygulama. Gelen isteği handler aracılığıyla domain modeline nasıl işlenir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Altıgen Mimari'de, gelen istek önce bir adaptör (adapter) ile karşılaşır, bu da dış dünya ile uygulama arasında bir arayüz görevi görür. Örneğin, Go'da bir HTTP işleyici (handler) isteği alır ve onu, merkezi uygulama tarafından erişilebilen işlemleri tanımlayan bir arayüze (port) dönüştürür.

Port, iş mantığını kapsüller ve etkileşim sözleşmelerini tanımlar. İşleyici, gerekli verileri geçirerek portun metodlarını çağırır. Merkezi uygulama (alan modeli), porttan gelen verilere dayanarak mantığı uygular ve sonucu döner.

Go'da örnek:

// Port
type UserService interface {
    CreateUser(name string) error
}

// Adaptör (HTTP işleyici)
func CreateUserHandler(svc UserService) http.HandlerFunc {
    return func(w http.ResponseWriter, r *http.Request) {
        name := r.FormValue("name")
        err := svc.CreateUser(name)
        if err != nil {
            http.Error(w, err.Error(), http.StatusInternalServerError)
            return
        }
        w.WriteHeader(http.StatusCreated)
    }
}

Bu şekilde, işleyici dış isteği, merkezi uygulamada (alan modeli) uygulanan porta uygun hale getirir.