Встречается на 1% собеседований по Python
Какие принципы 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
интервью вопросы и ответы