İçeriğe geç

Tanrı Sınıfı (ARCH5189)

Anahtar go.quality.god-struct · Önem warning · Kategori quality

Çok sayıda alan ve metot taşıyan struct’lar birden fazla sorumluluğu üstlenir, uyumu düşürür ve değiştirilmesi zorlaşır. Sorumluluklara göre bölün.

type App struct {
db, cache, mailer, logger, auth, billing, search, queue any
}
func (a *App) CreateUser() {}
func (a *App) SendEmail() {}
func (a *App) Charge() {}
func (a *App) Index() {}
// ... onlarca ilgisiz metot
type UserService struct{ db, cache any }
func (s *UserService) Create() {}
type BillingService struct{ db any }
func (s *BillingService) Charge() {}

Tek sorumluluk ilkesine göre struct’ı odaklı, daha küçük tiplere bölün.