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.
Hatalı
Bölüm başlığı “Hatalı”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 metottype UserService struct{ db, cache any }func (s *UserService) Create() {}
type BillingService struct{ db any }func (s *BillingService) Charge() {}Düzeltme
Bölüm başlığı “Düzeltme”Tek sorumluluk ilkesine göre struct’ı odaklı, daha küçük tiplere bölün.