fix: add solid page

This commit is contained in:
2025-09-29 13:21:53 +03:00
parent 1c8fafad0d
commit cbb96c2a37
2 changed files with 92 additions and 26 deletions

View File

@@ -62,7 +62,7 @@ _Dont 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_**
ополнительный источник: [https://habr.com/ru/companies/itelma/articles/546372/](https://habr.com/ru/companies/itelma/articles/546372/)