Встречается на собеседованиях • сегодня
Какие используешь принципы SOLID
**S**ingle Responsibility (единая ответственность) — класс/компонент должен решать одну задачу.
Пример:
```jsx
// Плохо: компонент и рендерит, и обрабатывает данные
const UserProfile = ({ user }) => {
const formattedData = processUserData(user);
return
{formattedData}
;
};
// Хорошо: разделение логики и представления
const UserProfile = ({ formattedData }) => {formattedData}
;
```
**O**pen/Closed (открыт для расширения, закрыт для изменений) — расширяй функционал через композицию, а не правки кода.
**L**iskov Substitution (подстановки Лисков) — наследники должны работать вместо родителя без сбоев.
**I**nterface Segregation (разделение интерфейсов) — много специализированных интерфейсов лучше одного общего.
**D**ependency Inversion (инверсия зависимостей) — зависимости от абстракций, а не конкретных реализаций.
Пример:
```jsx
// Плохо: жесткая привязка к API
const UserService = () => fetch('/api/users');
// Хорошо: зависимость через интерфейс
const UserService = (httpClient) => httpClient.get('/api/users');
```
Во фронтенде чаще применяются **S**, **I**, **D**, особенно в компонентном подходе.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы