Что такое Solid? Что такое принципы твердого программного обеспечения?

RedDeveloper
01.03.2023 11:21
Что такое Solid? Что такое принципы твердого программного обеспечения?

Что такое солид?

Твердые принципы программного обеспечения, впервые представленные Робертом К. Мартином, - это набор принципов программного обеспечения, которые делают код гибким, легко разрабатываемым и сводят к минимуму такие проблемы, как переполненность кода, которая является одной из самых больших проблем.

Что такое принципы Solid?

Фото  James Harrison  на  Unsplash
Фото James Harrison on Unsplash

Принцип единственной ответственности

Класс может иметь только одну ответственность и не должен выполнять более одной различной работы. Если вы хотите добавить классу новую ответственность, следует изменить основную ответственность класса.

Принцип "открыто-закрыто

Класс, который мы определяем, должен быть закрыт для изменений и открыт для развития, то есть он может получить новые возможности, но не может быть изменен от начала до конца. Причина этого заключается в том, что если мы изменим существующие возможности, то в больших проектах возникнут проблемы. Изменение кода может нарушить другие коды, которые зависят от него, и нам может понадобиться изменить весь код.

Принцип замещения Лискова

Не внося никаких изменений в написанный нами код, подкласс(ы) должен иметь возможность использовать свойства верхнего класса(ов), от которого они наследуются. Если раскрыть немного больше, то в суперклассе(ах) не должны определяться неиспользуемые ненужные методы, которые не полезны для подклассов, и должна быть предотвращена переполненность кода.

Принцип разделения интерфейсов

При определении интерфейсов вместо того, чтобы определять методы, выполняющие различные операции в рамках одного интерфейса, следует определять интерфейсы в соответствии с выполняемой операцией. Таким образом, нам не придется использовать методы, выполняющие различные операции для классов, которые мы реализуем, и мы избежим ненужного повторения кода.

Принцип инверсии зависимостей

Зависимости классов, которые мы определяем, должны быть низкими, особенно низкими должны быть зависимости классов верхнего уровня от классов нижнего уровня. Таким образом, когда мы хотим исправить класс, другие связанные классы не будут затронуты.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?

20.08.2023 18:21

Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией

20.08.2023 17:46

В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox

19.08.2023 18:39

Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest

19.08.2023 17:22

В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!

Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️

18.08.2023 20:33

Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL

14.08.2023 14:49

Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.