Sobes.tech
Junior — Middle

Ar galite paaiškinti SOLID principus ir kaip juos taikyti programinės įrangos kūrime?

sobes.tech AI

Atsakymas iš AI

SOLID principai — tai penki pagrindiniai objektinio programavimo taisyklės, kurios padeda kurti lankstų, išplečiamą ir palaikomą kodą:

  1. S — Vieno atsakomybės principas Klasė turi turėti tik vieną priežastį keistis, tai yra atsakyti už vieną užduotį.

  2. O — Atvirumo/Uždarymo principas Klasės turi būti atviros plėtrai, bet uždarytos modifikacijai.

  3. L — Barbos Liskov pakeitimo principas Subklasių objektai turi būti pakeičiami su bazinio klases objektais be programos teisingumo pažeidimo.

  4. I — Sąsajos segregacijos principas Klientai neturi priklausyti nuo sąsajų, kurių jie nenaudoja. Geriau turėti keletą specializuotų sąsajų nei vieną universalią.

  5. D — Priklausomybės inversijos principas Aukštesnio lygio moduliai neturi priklausyti nuo žemesnio lygio modulių. Abu turi priklausyti nuo abstrakcijų.

Pavyzdys, kaip taikyti Go:

// Vieno atsakomybės principas
// Klasė (struktūra) atsako tik už vartotojų valdymą

type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Priklausomybės inversijos principas
// Paslauga priklauso nuo sąsajos, o ne nuo konkrečios įgyvendinimo

type UserService struct {
    repo UserRepository
}

func (s *UserService) GetUserName(id int) (string, error) {
    user, err := s.repo.GetUser(id)
    if err != nil {
        return "", err
    }
    return user.Name, nil
}

SOLID taikymas padeda rašyti kodą, kuris yra lengviau testuojamas, išplečiamas ir palaikomas.