Кто и когда впервые сформулировал принципы SOLID?

«Кто и когда впервые сформулировал принципы SOLID?» — вопрос из категории ООП, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Автор: Роберт Мартин (Robert C. Martin) Год: 2000 Документ: Статья "Design Principles and Design Patterns" Популяризация: Майкл Фэзерс (Michael Feathers) ввёл акроним SOLID

Расшифровка принципов:

  1. Single Responsibility — единственная ответственность
  2. Open-Closed — открытость/закрытость
  3. Liskov Substitution — подстановка Лисков
  4. Interface Segregation — разделение интерфейсов
  5. Dependency Inversion — инверсия зависимостей

Пример нарушения и соблюдения SRP в Swift:

// ❌ Нарушение: класс управляет и данными, и уведомлениями
class UserManager {
    func saveUser(_ user: User) { /* Сохранение в БД */ }
    func sendWelcomeEmail(to user: User) { /* Отправка email */ }
}

// ✅ Соблюдение: разделение ответственности
class UserRepository {
    func save(_ user: User) { /* Только сохранение */ }
}

class EmailService {
    func sendWelcome(to user: User) { /* Только отправка */ }
}

Практическая польза: SOLID повышает поддерживаемость, тестируемость и гибкость кода.