Встречается на собеседованиях • сегодня
Какие принципы SOLID применял
1. **Single Responsibility (SRP)**
Каждый компонент/класс должен решать одну задачу. Например, `Button` только рендерит кнопку, а логику клика выносим в проп `onClick`.
2. **Open-Closed (OCP)**
Компоненты должны быть открыты для расширения, но закрыты для модификации. Используем композицию:
```jsx
const withTooltip = (Component) => (props) => (
);
```
3. **Liskov Substitution (LSP)**
Дочерние компоненты должны работать вместо родительских. Например, `PrimaryButton` и `SecondaryButton` оба расширяют базовый `Button`.
4. **Interface Segregation (ISP)**
Не заставляем компоненты зависеть от ненужных пропсов. Разбиваем интерфейсы:
```ts
interface BaseInputProps { value: string; }
interface DateInputProps extends BaseInputProps { minDate?: Date; }
```
5. **Dependency Inversion (DIP)**
Зависим от абстракций (интерфейсов), а не конкретных реализаций. Например, `useApi` принимает общий клиент `HttpClient`, а не `Axios` напрямую.
Примеры: React-компоненты, хуки, сервисы.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы