Какие знаешь принципы программирования

Ответ

SOLID — основные принципы ООП:

  1. Single Responsibility — класс должен решать только одну задачу.
  2. Open-Closed — классы должны быть открыты для расширения, но закрыты для изменений.
  3. Liskov Substitution — подклассы должны заменять родительские классы без ошибок.
  4. Interface Segregation — лучше много узких интерфейсов, чем один универсальный.
  5. Dependency Inversion — зависимости должны строиться на абстракциях, а не на конкретных классах.

DRY (Don’t Repeat Yourself) — избегай дублирования кода.

KISS (Keep It Simple, Stupid) — простота важнее избыточной сложности.

YAGNI (You Aren’t Gonna Need It) — не добавляй функциональность "на будущее".

Пример SOLID (TypeScript):

// Принцип единственной ответственности
class Logger {
  log(message: string) {
    console.log(message);
  }
}

class UserService {
  constructor(private logger: Logger) {}

  saveUser(user: User) {
    // логика сохранения
    this.logger.log(`User saved: ${user.name}`);
  }
}