Sobes.tech
Junior — Middle

Vai jūs varat izskaidrot kontroliera lomu tīras arhitektūras struktūrā?

sobes.tech AI

Atbilde no AI

Tīrā arhitektūrā kontrolieris spēlē starpnieka lomu starp ārējo pasauli (piemēram, HTTP pieprasījumiem) un lietojumprogrammas iekšējiem slāņiem.

Galvenās kontroliera funkcijas:

  • Saņem ienākošos pieprasījumus.
  • Izvelk nepieciešamos datus no pieprasījuma.
  • Izsauc atbilstošos lietošanas gadījumus vai interaktorus.
  • Sagatavo atbildi klientam.

Kontrolieris nesatur biznesa loģiku, tas tikai virza datus un komandas uz vajadzīgajām sistēmas daļām.

Piemērs Go valodā (vienkāršots):

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, "Lietotājs nav atrasts", http.StatusNotFound)
        return
    }
    json.NewEncoder(w).Encode(user)
}

Šeit kontrolieris saņem pieprasījumu, izsauc biznesa loģiku un atgriež rezultātu klientam.