Принципы SOLID - лучшие практики

RedDeveloper
05.01.2023 11:19
Принципы SOLID - лучшие практики

Принципы SOLID - лучшие практики

"Ожидается, что программное обеспечение будет модульным, удобным в использовании, обслуживаемым и отвечающим требованиям".

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

Принцип единой ответственности (SRP) - класс должен иметь только одну ответственность и только одну причину для изменений. Соберите/определите изменения, чтобы разделить ответственность, т.е. разделите вещи по разным причинам и сгруппируйте вещи по одной причине.

Некоторые симптомы нарушения SPR:

  • Коллизия в управлении изменениями - Конфликт кода.
  • Побочный ущерб - внесенные изменения имеют множество последствий.
  • Громоздкие классы - ненужные дополнительные методы могут переполнить класс.

Принцип открытости-закрытости (OCP) - Открыт для расширения, но закрыт для модификации. Возможность расширить поведение без изменения существующего кода. Например: использование интерфейса.

Некоторые симптомы нарушения OCP:

  • Влияет на стабильность кода - повторное тестирование, повторное развертывание требует времени.
  • Сложность кода - код становится неуправляемым.

Принцип подстановки Лискова (LSP) - если для каждого объекта o1 типа S существует объект o2 типа T такой, что для всех программ P, определенных в терминах T, поведение P не изменяется при замене o1 на o2, то S является подтипом T - Барбара Лисков. : ).

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

Некоторые симптомы нарушения LSP:

  • Базовые классы и объекты базовых классов должны знать о своих подклассах.

Принцип разделения интерфейсов (ISP) - Объекты не должны быть вынуждены реализовывать интерфейс, который они не используют. Вместо одного большого интерфейса он должен состоять из более мелких интерфейсов, основанных на группах методов, каждый из которых обслуживает один подмодуль. Т.е. при создании объекта интерфейса не должно быть неиспользуемого метода.

Некоторые симптомы нарушения ISP:

  • Дизайн не является модульным.
  • Одно изменение может повлиять на все.

Принцип инверсии зависимостей (DIP) - политика высокого уровня не должна зависеть от деталей низкого уровня. Зависит от абстракции/интерфейса, а не от конкретных классов.

Некоторые симптомы нарушения DIP:

  • Код становится переполнен деталями реализации.
  • Новые функции в существующей структуре приводят к изменению существующей структуры.
"Любой дурак может написать код, понятный компьютеру, но хорошие программисты пишут код, понятный людям". - Мартин Фаулер.
Некоторые симптомы нарушения DIP
Руководство для начинающих по веб-разработке на React.js
Руководство для начинающих по веб-разработке на React.js

21.03.2023 12:23

Веб-разработка - это захватывающая и постоянно меняющаяся область, которая постоянно развивается благодаря новым технологиям и тенденциям. Одним из самых популярных фреймворков для веб-разработки сегодня является React.js. Если вы начинающий веб-разработчик и хотите узнать больше о React.js, это...

Разница между Angular и React
Разница между Angular и React

21.03.2023 07:56

React и AngularJS - это два самых популярных фреймворка для веб-разработки. Оба фреймворка имеют свои уникальные особенности и преимущества, которые делают их подходящими для различных проектов веб-разработки.

Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit

20.03.2023 14:01

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

Калькулятор CGPA 12 для семестра
Калькулятор CGPA 12 для семестра

20.03.2023 12:24

Чтобы запустить этот код и рассчитать CGPA, необходимо сохранить код как HTML-файл, а затем открыть его в веб-браузере. Для этого выполните следующие действия:

ONLBest Online HTML CSS JAVASCRIPT Training In INDIA 2023
ONLBest Online HTML CSS JAVASCRIPT Training In INDIA 2023

20.03.2023 11:15

О тренинге HTML JavaScript :HTML (язык гипертекстовой разметки) и CSS (каскадные таблицы стилей) - две основные технологии для создания веб-страниц. HTML обеспечивает структуру страницы CSS (визуальное и звуковое) оформление для различных устройств. Наряду с графикой и сценариями HTML и CSS являются...

Как собрать/развернуть часть вашего приложения Angular
Как собрать/развернуть часть вашего приложения Angular

20.03.2023 08:46

Вам когда-нибудь требовалось собрать/развернуть только часть вашего приложения Angular или, возможно, скрыть некоторые маршруты в определенных средах?