617просмотров
14 октября 2022 г.
Score: 679
Начальный уровень. Общие вопросы. Принципы SOLID. Алоха друзья! Сегодня мы разберём один из базовых вопросов на собеседовании. Итак, SOLID - это мнемонический акроним для первых пяти принципов, названных Робертом Мартином в начале 2000-х, которые означали 5 основных принципов объектно-ориентированного программирования и проектирования. Использование принципов SOLID способствует созданию системы, которую будет легко поддерживать и расширять в течение долгого времени. Разберём подробнее каждую букву: • S - Single-responsibility principle/ Принцип единственной ответственности Для каждого класса должно быть определено единственное назначение. Все ресурсы, необходимые для его осуществления, должны быть инкапсулированы в этот класс и подчинены только этой задаче • O - Open–closed principle / Принцип открытости-закрытости Программные сущности должны быть открыты для расширения, но закрыты для модификации • L - Liskov substitution principle / Принцип подстановки Лисков Объекты родительских классов должны быть заменимы объектами подклассов без изменения поведения приложения • I - Interface segregation principle / Принцип разделения интерфейсов Слишком «толстые» интерфейсы необходимо разделять на более маленькие и специфические, чтобы программные сущности маленьких интерфейсов знали только о методах, которые необходимы им в работе. В итоге, при изменении метода интерфейса не должны меняться программные сущности, которые этот метод не используют • D - Dependency inversion principle / Принцип инверсии зависимостей При разработке нужно полагаться на абстракции, а не на конкретные реализации. Компоненты ПО должны иметь низкую связность и высокую согласованность. Часто спрашивают не все принципы, а какой-то один, например, чаще почему-то именно принцип подстановки Лисков. Иногда просят привести пример нарушения принципов SOLID, в стандартных библиотеках, фреймворках от Apple. Тут можно указать, что в языке Swift есть механизм переопределения функции (override func), который нарушает принцип Принцип открытости-закрытости. Так же можно привести пример UIStackview, который игнорирует backgroundColor, тем самым нарушается принцип подстановки Лисков. Более наглядно в статье по принципам SOLID 👇👇👇 #SwiftInterviewBeginner
#SwiftInterviewGeneral https://habr.com/ru/company/productivity_inside/blog/505430/