fix: add solid page
This commit is contained in:
@@ -62,7 +62,7 @@ _Don’t Repeat Yourself / Не повторяйтесь_
|
||||
- Код становится более структурированным и понятным.
|
||||
4. **Экономия времени:**
|
||||
- Не нужно копировать и вставлять код, а также тестировать его в нескольких местах.
|
||||
|
||||
|
||||
### Когда DRY не следует применять слепо:
|
||||
1. **Избыточная абстракция:**
|
||||
- Иногда попытка устранить дублирование может привести к созданию сложных и ненужных абстракций, которые усложняют понимание кода.
|
||||
@@ -127,30 +127,5 @@ _Keep It Simple, Stupid / Будь проще_
|
||||
Применительно к разработке ПО он значит следующее – не придумывайте к задаче более сложного решения, чем ей требуется.\
|
||||
Иногда самое разумное решение оказывается и самым простым. Написание производительного, эффективного и простого кода – это прекрасно.
|
||||
|
||||
## SOLID
|
||||
Принципы SOLID — это набор из пяти ключевых принципов объектно-ориентированного программирования и проектирования, которые помогают создавать гибкие, поддерживаемые и масштабируемые программные системы. Аббревиатура SOLID была введена Робертом Мартином (известным также как Uncle Bob) и расшифровывается следующим образом:
|
||||
|
||||
### Simple responsibility principle (принцип единой ответственности)
|
||||
У класса должна быть только одна причина для изменения, то есть у него должна быть только одна ответственность или работа. Этот принцип помогает сделать занятия более целенаправленными, более понятными и менее подверженными ошибкам.
|
||||
|
||||
### Open – Closed Principle (Принцип открытости/закрытости)
|
||||
Программные сущности должны быть открыты для расширения, но закрыты для модификации. Это означает, что вы должны иметь возможность добавлять новые функции в систему, не изменяя существующий код.
|
||||
Мы можем расширить функциональный компонент и добавить новый компонент пользовательского интерфейса, не затрагивая первый/базовый компонент. Это реализация открытости для расширения, но закрытости для модификации.
|
||||
|
||||
### Liskov Substitution principe (принцип замены Лискова)
|
||||
Объекты суперкласса должны быть заменяемы объектами его подклассов без нарушения корректности программы. Другими словами, подклассы должны иметь возможность заменять свои базовые классы без возникновения ошибок.
|
||||
|
||||
### Interface segregation principle (Принцип разделения интерфейсов)
|
||||
Клиентов не следует заставлять зависеть от интерфейсов, которые они не используют. Вместо этого интерфейсы следует разделить на более мелкие, более целенаправленные интерфейсы, соответствующие потребностям клиента.
|
||||
|
||||
### Dependency inversion principle (Инверсия зависимости)
|
||||
Высокоуровневые модули не должны зависеть от низкоуровневых модулей. Вместо этого, оба должны зависеть от абстракций. Это помогает в разъединении модулей, делая их более пригодными для повторного использования и более простыми для тестирования.
|
||||
|
||||
### Преимущества SOLID:
|
||||
1. **Гибкость:** Код становится проще расширять и модифицировать.
|
||||
2. **Поддерживаемость:** Упрощается понимание и исправление ошибок.
|
||||
3. **Тестируемость:** Код, соответствующий SOLID, легче тестировать.
|
||||
4. **Масштабируемость:** Система становится более устойчивой к изменениям и росту.
|
||||
|
||||
🚀 **_Источник: DeepSeek_**
|
||||
dДополнительный источник: [https://habr.com/ru/companies/itelma/articles/546372/](https://habr.com/ru/companies/itelma/articles/546372/)
|
||||
|
||||
Reference in New Issue
Block a user