Home » Модель C4 для визуализации архитектуры программного обеспечения.

Модель C4 для визуализации архитектуры программного обеспечения.

Абстракции

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

Человек

Человек представляет одного из пользователей вашей программной системы (например, актеров, ролей, персонажей и т. д.).

Система программного обеспечения

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

Контейнер (приложения и хранилища данных)

Не Докер! В модели C4 контейнер представляет собой приложение или хранилище данных. Контейнер — это то, что должно быть запущено для работы всей программной системы. На самом деле контейнер — это что-то вроде:

  • Серверное веб-приложение: веб-приложение Java EE, работающее на Apache Tomcat, приложение ASP.NET MVC, работающее в Microsoft IIS, приложение Ruby on Rails, работающее на WEBrick, приложение Node.js и т. д.
  • Клиентское веб-приложение: приложение JavaScript, работающее в веб-браузере с использованием Angular, Backbone.JS, jQuery и т. д.
  • Клиентское настольное приложение: настольное приложение для Windows, написанное с использованием WPF, настольное приложение для OS X, написанное с использованием Objective-C, кроссплатформенное настольное приложение, написанное с использованием JavaFX и т. д.
  • Мобильное приложение: приложение Apple iOS, приложение Android, приложение Microsoft Windows Phone и т. д.
  • Серверное консольное приложение: автономное приложение (например, «public static void main»), пакетный процесс и т. д.
  • Бессерверная функция: одна бессерверная функция (например, Amazon Lambda, функция Azure и т. д.).
  • База данных: Схема или база данных в системе управления реляционными базами данных, хранилище документов, графовой базе данных и т. д., например MySQL, Microsoft SQL Server, база данных Oracle, MongoDB, Riak, Cassandra, Neo4j и т. д.
  • Большой двоичный объект или хранилище содержимого: хранилище BLOB-объектов (например, Amazon S3, Microsoft Azure Blob Storage и т. д.) или сеть доставки контента (например, Akamai, Amazon CloudFront и т. д.).
  • Файловая система: Полная локальная файловая система или часть более крупной сетевой файловой системы (например, SAN, NAS и т. д.).
  • Сценарий оболочки: отдельный сценарий оболочки, написанный на Bash и т. д.
  • и т. д.
Read more:  Превью Эдварда Оливареса, Реквизит для игроков: Royals vs. Yankees

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

Компонент

Слово «компонент» — чрезвычайно перегруженный термин в индустрии разработки программного обеспечения, но в этом контексте компонент — это группа связанных функций, инкапсулированных за четко определенным интерфейсом. Если вы используете такой язык, как Java или C#, самый простой способ представить компонент — это набор классов реализации, лежащих в основе интерфейса. Такие аспекты, как упаковка этих компонентов (например, один компонент или множество компонентов на файл JAR, DLL, общую библиотеку и т. д.), представляют собой отдельную и ортогональную проблему.

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

2023-10-22 09:36:47


1697999400
#Модель #для #визуализации #архитектуры #программного #обеспечения

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.