Sobes.tech
Junior — Middle

Ar galite paaiškinti kontrolerio vaidmenį švarios architektūros struktūroje?

sobes.tech AI

Atsakymas iš AI

Švarioje architektūroje valdiklis atlieka tarpininko vaidmenį tarp išorinio pasaulio (pavyzdžiui, HTTP užklausų) ir programos vidinių sluoksnių.

Pagrindinės valdiklio funkcijos:

  • Priima įeinančias užklausas.
  • Ištraukia reikalingus duomenis iš užklausos.
  • Kviečia atitinkamus naudojimo atvejus arba interaktorius.
  • Sudaro atsakymą klientui.

Valdiklis neapima verslo logikos, jis tik nukreipia duomenis ir komandas į reikiamas sistemos dalis.

Pavyzdys Go kalba (supaprastintas):

func UserController(w http.ResponseWriter, r *http.Request) {
    userID := r.URL.Query().Get("id")
    user, err := userUseCase.GetUserByID(userID)
    if err != nil {
        http.Error(w, "Vartotojas nerastas", http.StatusNotFound)
        return
    }
    json.NewEncoder(w).Encode(user)
}

Čia valdiklis gauna užklausą, kviečia verslo logiką ir grąžina rezultatą klientui.