Встречается на собеседованиях • сегодня
Какие принципы SOLID использовал во время рефакторинга кода
При рефакторинге кода на Python я чаще всего применяю следующие принципы SOLID:
- Single Responsibility (SRP) — каждый класс должен иметь одну ответственность. Например, разделяю логику обработки данных и их сохранения в разные классы.
python
# До рефакторинга
class Report:
def generate_report(self, data):
# генерация отчета
pass
def save_to_file(self, report, filename):
# сохранение в файл
pass
После рефакторинга
class ReportGenerator:
def generate(self, data):
pass
class ReportSaver:
def save(self, report, filename):
pass
text
2. **Open/Closed (OCP)** — классы должны быть открыты для расширения, но закрыты для модификации. Использую абстрактные классы или интерфейсы.
3. **Liskov Substitution (LSP)** — подклассы должны заменять родительские классы без изменения поведения. Например, если `Duck` наследует `Bird`, то он должен поддерживать все методы `Bird`.
4. **Interface Segregation (ISP)** — клиенты не должны зависеть от интерфейсов, которые они не используют. Разделяю большие интерфейсы на более мелкие.
5. **Dependency Inversion (DIP)** — зависимости должны строиться на абстракциях, а не на конкретных реализациях. Вместо прямого создания объектов использую DI.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы