Встречается на собеседованиях • сегодня

Применял ли SOLID в JS

SOLID принципы применимы и в JavaScript, хотя язык не строго типизирован.

  1. Single Responsibility - каждый класс/функция должны решать одну задачу.
javascript
// Плохо
class User {
  saveToDB() { /* ... */ }
  sendEmail() { /* ... */ }
}

// Хорошо
class User {
  // только логика пользователя
}
class UserRepository {
  saveToDB(user) { /* ... */ }
}
class EmailService {
  sendEmail(user) { /* ... */ }
}
  1. Open-Closed - сущности открыты для расширения, но закрыты для изменений. Используем композицию.

  2. Liskov Substitution - наследники должны заменять родителей без ошибок.

  3. Interface Segregation - в JS нет интерфейсов, но можно разделять методы.

  4. Dependency Inversion - зависимости через абстракции (например, передача сервисов в конструктор).

Пример с DI:

javascript
class AuthService {
  constructor(userRepository) {
    this.userRepository = userRepository;
  }
}

Используется реже, чем в ООП-языках, но помогает писать поддерживаемый код.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы