Ежедневно разработчикам приходится писать десятки классов для разного рода функционала. Этот функционал может быть связан между собой или иметь разные функции. Нередко, сопровождая чужой код, программист, который более или менее понимает как должен реализовываться класс, видит картину, где, к примеру, класс «Товар» изменяет баланс клиента. По сути это в корне неверно! Доклад будет рассматривать такую проблему как правильного написания классов. Данные 5 принципов можно применять к любому объектно-ориентированному языку, но в рамках Python meetup примеры будут продемонстрированы на python. Данный доклад рассматривает 5 основных принципов, где каждая буква в аббревиатуре обозначает свой принцип. S – Single responsibility principle (Принцип единой обязанности): O – Open/Closed principle (Принцип Открытости/Закрытости) L – Liskov substitution principle (Принцип постановки Барбары Лисков) I – Interface segregation principle (Принцип разделения интерфейса) D – Dependency inversion principle (Принцип инверсий зависимостей)