Чем отличается архитектурный дизайн от дизайна высокого уровня

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

Допустим, я хочу создать простое приложение для онлайн-шоппинга на андроиде, как рисовать архитектурный дизайн и дизайн высокого уровня.

У меня есть следующие требования

Login
Settings
search
cart
Billing

2 ответа

Кажется, вы задаете 2 вопроса:-

  1. Разница между терминами архитектурный дизайн и дизайн высокого уровня
  2. Как бы выглядел дизайн моего приложения для покупок на Android?

Я отвечу на первый, но вы вряд ли кто-то даст вам второй. Лучше всего гуглить за идеи.

Архитектурный дизайн

Вам необходимо получить общее представление об этих различных типах архитектуры, а затем вы поймете, почему этот вопрос слишком общий

  • Архитектура предприятия
  • Архитектура решения
  • Архитектура приложений
  • Сетевая архитектура
  • Архитектура безопасности
  • ... есть еще...

Дизайн высокого уровня

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

  • Основные классы / интерфейсы в коде
  • Какой-то постоянный магазин
  • кэш
  • Удаленные системы, с которыми взаимодействует ваше приложение

Дизайн высокого уровня (HLD) более специфичен, чем архитектура.

Архитектура заключается в рассмотрении различных ограничений и принятии обоснованных решений, таких как:

  • Какую технологию использовать.
  • Атрибуты качества системы (например, производительность, доступность, безопасность, удобство использования и т. Д.) И их относительный приоритет (связан с нефункциональными требованиями).
  • Обеспечение хорошей поддержки решения после того, как оно будет введено в действие.
  • Согласование решения с технологической стратегией организации или архитектурой предприятия и т. Д.

Дизайн высокого уровня собирается сделать архитектуру реальной:

  • Логическое определение компонентов системы, их ролей и взаимосвязей.
  • Обращение к названной технологии, например, вызов определенных частей выбранного вами технологического стека, которые необходимо использовать, какие конкретные фреймворки или сторонние библиотеки вы будете использовать.
  • Вызов конкретных бизнес-систем и их конкретных API, с которыми вам необходимо интегрироваться.

Итак, чтобы взять ваш пример, архитектура может определять:

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

... поэтому ДВУ должен определить:

  • Конкретная версия Android, на которую вы нацеливаетесь / поддерживает, конкретные зависимости и т. Д.
  • Где именно расположены службы данных, какие именно, какие объекты данных и значения они будут предоставлять.
  • Логический дизайн данных (возможно, на уровне полей) для любых данных, которые вам нужно хранить на устройстве.
  • Особенности того, как вы будете выполнять аутентификацию с поставщиками социальных сетей, какие библиотеки кода будут использоваться и т. Д.
Другие вопросы по тегам