Sobes.tech
Junior — Middle

SOLID ilkelerini açıklayabilir misiniz ve bunları yazılım geliştirmede nasıl uygularsınız?

sobes.tech yapay zeka

AI'dan gelen yanıt

SOLID ilkeleri, esnek, genişletilebilir ve sürdürülebilir kodlar oluşturmaya yardımcı olan nesne yönelimli tasarımın beş temel kuralıdır:

  1. S — Tek Sorumluluk Prensibi Her sınıfın sadece bir değişiklik nedeni olmalı, yani tek bir görevi üstlenmelidir.

  2. O — Açık/Kapalı Prensibi Sınıflar genişletilmeye açık, fakat değişikliğe kapalı olmalıdır.

  3. L — Liskov Yerine Koyma Prensibi Alt sınıfların nesneleri, temel sınıfın nesneleriyle yer değiştirebildiğinde, programın doğruluğu bozulmamalıdır.

  4. I — Arayüz Ayırma Prensibi Müşteriler, kullanmadıkları arayüzlere bağlı olmamalıdır. Birden fazla uzmanlaşmış arayüz kullanmak, tek bir genel arayüzden daha iyidir.

  5. D — Bağımlılıkların Tersine Çevrilmesi Prensibi Üst düzey modüller, alt düzey modüllere bağlı olmamalıdır. Her ikisi de soyutlamalara bağlı olmalıdır.

Go dilinde uygulama örneği:

// Tek Sorumluluk Prensibi
// Yapısı (sınıf) sadece kullanıcılarla ilgili işlemlerden sorumludur

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

// Bağımlılıkların Tersine Çevrilmesi Prensibi
// Servis, somut bir uygulamadan çok, arayüze bağlıdır

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 ilkelerinin uygulanması, kodun test edilmesini, genişletilmesini ve bakımını kolaylaştırır.