handbookНаписать

раздел · 8 тем

Принципы ​

Принципы проектирования, которые стоят за паттернами и архитектурными стилями. Код в темах показывает, как выглядит решение, когда принцип соблюдён, а вариант «до» лежит в статье.

Группы ​

  • solid/ - SOLID: пять принципов объектного проектирования

Темы ​

SOLID ​

Общая статья: SOLID.

Общие ​

solid/SOLID

  • dependency-inversion/Принцип инверсии зависимостей Dependency Inversion PrincipleМодули верхнего уровня зависят от абстракций, а не от деталей: сервис уведомлений знает порт Mailer, а SMTP - деталь, которая подключается снаружи.
  • interface-segregation/Принцип разделения интерфейсов Interface Segregation PrincipleКлиент не должен зависеть от методов, которыми не пользуется: печать и сканирование - отдельные узкие интерфейсы, а не одно "устройство".
  • liskov-substitution/Принцип подстановки Лисков Liskov Substitution PrincipleПодтип должен работать везде, где ждут базовый тип: хранилище только для чтения не наследует запись, которую не умеет выполнять.
  • open-closed/Принцип открытости/закрытости Open/Closed PrincipleМодуль открыт для расширения и закрыт для изменения: новый способ оплаты подключается к кассе без правки её кода.
  • single-responsibility/Принцип единственной ответственности Single Responsibility PrincipleУ модуля одна причина для изменения: подсчёт продаж и форматирование отчёта меняются по разным причинам, поэтому живут порознь.

Темы

  • composition-over-inheritance/Композиция вместо наследования Composition over InheritanceПоведение собирается из небольших частей, а не наследуется: новый набор каналов уведомлений - это новый список, а не новый класс.
  • dry-kiss-yagni/Не повторяйся, не усложняй, не делай впрок DRY, KISS, YAGNIТри коротких правила против лишнего кода: одно знание - в одном месте, простое решение вместо хитрого, и ничего "на будущее".
  • law-of-demeter/Закон Деметры Law of DemeterОбъект общается только с ближайшими соседями: спрашивает заказ, куда его везти, а не лезет через заказ в покупателя и его адрес.
© 2014-2026 Тимур ТурдыевСайт и справочник работают на VPS от AdminVPS