Контракт Теория

 

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

Свойства контракта

  • Контракт появляется на этапе проектирования системы и может рассматриваться как договоренность между разработчиками
  • Контракт должен быть однозначным (не допускающим неоднозначного толкования)

Назначение

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

Этапы проектирования

  • Определение онтологии (описание сущностей)
  • Описание бизнес-логики, выделение компонентов (сервисов) системы на основе требований бизнеса
  • Описание контрактов компонентов
  • Реализация логики компонентов в рамках установленных контрактов

Онтология — это описание сущностей системы и отношений между ними

Реализация онтологии

  • Модели базы данных
  • DataObject

Namespaces

  • \App\Contracts — Контракты компонентов системы
  • \App\Services — Реализация компонентов системы
  • \App\Models Онтология проекта
  • \App\Services\ServiceA — Все, что связано с функционированием сервиса
  • \App\Services\ServiceA\Contracts — Реализация контрактов внутри сервиса
  • \App\Services\ServiceA\Models — онтология сервиса

Конспект создан на основе видео  Автор Артём Прозоров

Комментарии

Популярные сообщения из этого блога

SQLAlchemy: Подключение к уже существующим базам данных

Настройка MSSQL Server 12 Express для доступа из локальной сети к справочникам k3mebel

Отключение запроса на изменение пароля при первом подключении Ошибка 15128 ... MUST_CHANGE is ON.