SOLID: Принципы, которые спасут ваш код от хаоса
Привет, разработчики! Сегодня у нас на повестке дня загадочная аббревиатура SOLID. Нет, это не новый вид бетона, хотя ваш код действительно станет надёжнее, если будете соблюдать эти принципы. SOLID - это 5 правил, которые помогут вам писать поддерживаемый, расширяемый и приятный для глаз код.
S - Single Responsibility Principle (Принцип единственной ответственности)
Что это значит: Один класс - одна задача. Не надо пытаться сделать из вашего класса швейцарский нож.
Пример:
Что тут не так? Класс Report занимается и генерацией отчёта, и его сохранением. Давайте это исправим:
Теперь Report отвечает за создание отчёта, а ReportSaver - за его сохранение.
O - Open/Closed Principle (Принцип открытости/закрытости)
Что это значит: Код должен быть открыт для расширения, но закрыт для модификации.
Пример:
А если завтра скидка будет 20%? Давайте сделаем гибче:
Теперь добавление новых скидок не требует изменения существующего кода
L - Liskov Substitution Principle (Принцип подстановки Барбары Лисков)
Что это значит: Дочерний класс должен дополнять, а не ломать поведение родительского.
Пример:
Проблема: Пингвины нарушают принцип Лисков, ведь они не умеют летать. Лучше изменить структуру:
Теперь пингвины никого не обманывают.
I - Interface Segregation Principle (Принцип разделения интерфейсов)
Что это значит: Не заставляйте классы реализовывать методы, которые они не используют.
Пример:
Но если у нас есть робот?
Теперь у робота нет ненужного метода eat().
D - Dependency Inversion Principle (Принцип инверсии зависимостей)
Что это значит: Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
Пример:
Проблема: Компьютер напрямую зависит от реализации Keyboard.
Теперь можно подставлять разные клавиатуры без изменения Computer.
Заключение
SOLID - это как пять волшебных ингредиентов для рецепта чистого кода. Если соблюдать их, ваш проект будет масштабироваться без боли. А если не соблюдать... ну, удачи с отладкой! 😁