В настоящее время сложно найти краткое и понятное определение таким понятиям, как «прикладной уровень» и «уровень абстракции».
Это влечет за собой различия в понимании одного и того же или непонимание этого понятия среди разработчиков.
А непонимание приводит к разногласиям.
Цель этой статьи: совместно добиться уверенности, создать общее понимание для всех и разработать краткое, четкое и практическое определение концепции.
Архитектурный слой в области корпоративных приложений.
Все, что дано в статье, вы можете обсудить и дополнить в комментариях, а я буду обновлять материал статьи в соответствии с комментариями.
Разделение архитектуры корпоративного приложения на уровни позволяет
- лучше выполнять декомпозицию задач
- легче ориентироваться внутри проекта
- разработчики получают возможность вносить изменения в определенный уровень вместо того, чтобы переделывать все приложение.
- помогает структурировать приложения путем декомпозиции на группы подзадач, расположенных на определенных архитектурных уровнях
- в зависимости от уровня сложности слоя могут быть разные требования к опыту разработчиков, что позволяет распределять разработчиков по слоям в зависимости от опыта
- Принято считать, что слоев должно быть 3: данные, бизнес-логика, интерфейс — но на самом деле слоев может быть любое необходимое количество.
- отсутствуют критерии принадлежности тех или иных задач к тому или иному слою, что часто приводит к созданию одного большого прикладного уровня, либо один из слоев модифицируется под задачи, не характерные для него
- нет конкретного краткого определения
- Существуют пересечения понятий слоя, уровня и яруса, для которых также нет точных определений.
По мнению Фаулера, уровни связаны, подразумевая физическое разделение, но на практике такой уверенности нет.
Уровень архитектуры (корпоративное приложение) - это определенный (ограниченный по назначению, закрытый) набор ресурсов (инструментов для работы с ресурсами, деталями, компонентами), с помощью которого реализуются разнообразные (ограниченные по критериям) прикладные задачи, характерные для данного слоя.
Верхний уровень реализует свои компоненты (ресурсы) на основе ресурсов нижнего уровня.
Ресурсы определенного слоя совместимы друг с другом и используются только внутри этого слоя (в идеале).
Более высокий уровень может создавать свои собственные ресурсы, используя ресурсы нескольких уровней.
Это может быть связано с абстрактной, идеализированной системой, существующей в виде диаграмм, а может быть больше связано с реализацией — это определяет компоненты слоя.
Компоненты слоя:
- если уровень относится к реализации: классы, объекты, контекст, сервисы, контроллеры, прокси, сборки.
- если слой относится к абстракции: модели данных (идеализированные), действия.
- назначение приложения, конкретное, логическое, определяет множество задач, которые можно отнести к определенному слою
- определенный набор задач, реализованный на данном слое
- ресурсы и инструменты, с помощью которых реализуются задачи: данные, объекты и действия, которые можно выполнять над данными и объектами.
- данные и логика внутри определенного уровня внутренне согласованы
- последовательность определяет предсказуемость и предопределенность во взаимодействии ресурсов определенного слоя, иными словами, части, из которых формируется слой, совместимы друг с другом
- отдельный слой может восприниматься как единое самодостаточное целое
- зависимости между слоями могут быть минимизированы
- созданный слой может быть основой для нескольких различных более высоких слоев
- При переходе с одного слоя на другой моделируемые объекты обычно претерпевают трансформацию из одного представления в другое.
- Все бизнес-требования идентифицированы и структурированы по категориям.
- Требования разбиты на задачи, которые должно решить приложение.
- Задачи классифицируются и группируются по схожести их предметного назначения.
- На основе этих категорий определяется общее назначение архитектурного слоя, в котором будут решаться задачи.
- Решение проблем можно рассматривать как алгоритм или процесс, который дает желаемый результат. Среди всех задач выявлены общие компоненты (детали), из которых они реализуются.
(модели и действия по ним).
О том, как это делается, будет дополнительная статья.
- На основе выбранных компонентов реализуются классы соответствующего слоя и, как правило, объединяются в одну отдельную сборку.
- выполнение основных действий с различными типами документов: подписание, утверждение, отправка и т.д.
- автоматическая фоновая работа в нескольких потоках
- быстрое управление потоками через пользовательский интерфейс
- обмен данными с другими системами (прием, отправка, конвертация документов)
Пример 3. Офисное строительство Уровень 1 - задания на строительство здания, фундамента, возведение стен, кирпич, цемент. 2 уровень - отделка мебели, детали - обои, мебель.
Уровень 3 - логическое распределение помещений, людей, разделение на отделы - детали: отделения, рабочие места, помещения.
К компонентам (ресурсам) слоя относятся объекты (кирпичи, плиты, цемент) и действия над ними (уложить, установить).
Один слой предоставляет только набор тех ресурсов, которые ему логически свойственны.
3-й слой (места, офисы, отделы) работает только в рамках этих сущностей и действий.
Если мест недостаточно, то офис не достроен, но его можно достроить, отделав нижний слой.
Теги: #программирование #Управление разработкой #Системный анализ и проектирование #архитектура приложений #проектирование и рефакторинг #методология разработки #процесс разработки #архитектурные концепции #уровни абстракций #многоуровневая архитектура #многослойность
-
Платина
19 Oct, 24 -
Минимализм И Анимация В Веб-Дизайне
19 Oct, 24 -
Персонажи Современного Онлайн-Проекта
19 Oct, 24 -
Заседание Днепровского Гтуг 14 Января
19 Oct, 24 -
Криптография В Java
19 Oct, 24