Чем отличается архитектурный дизайн от дизайна высокого уровня
Может кто-нибудь объяснить мне, в чем разница между архитектурным дизайном и дизайном высокого уровня. будет хорошо, если вы объясните примером.
Допустим, я хочу создать простое приложение для онлайн-шоппинга на андроиде, как рисовать архитектурный дизайн и дизайн высокого уровня.
У меня есть следующие требования
Login
Settings
search
cart
Billing
2 ответа
Кажется, вы задаете 2 вопроса:-
- Разница между терминами архитектурный дизайн и дизайн высокого уровня
- Как бы выглядел дизайн моего приложения для покупок на Android?
Я отвечу на первый, но вы вряд ли кто-то даст вам второй. Лучше всего гуглить за идеи.
Архитектурный дизайн
Вам необходимо получить общее представление об этих различных типах архитектуры, а затем вы поймете, почему этот вопрос слишком общий
- Архитектура предприятия
- Архитектура решения
- Архитектура приложений
- Сетевая архитектура
- Архитектура безопасности
- ... есть еще...
Дизайн высокого уровня
Это очень широкий термин, для которого вы можете получить бесконечное количество определений, но общим может быть дизайн, который просто показывает компоненты в системе (система может быть очень большой или очень маленькой). Поскольку кажется, что вы спрашиваете об архитектуре приложения с приложением корзины покупок, это может означать, что у вас может быть диаграмма, которая показывает такие вещи, как следующие, но не детали того, как каждый из них реализован:
- Основные классы / интерфейсы в коде
- Какой-то постоянный магазин
- кэш
- Удаленные системы, с которыми взаимодействует ваше приложение
Дизайн высокого уровня (HLD) более специфичен, чем архитектура.
Архитектура заключается в рассмотрении различных ограничений и принятии обоснованных решений, таких как:
- Какую технологию использовать.
- Атрибуты качества системы (например, производительность, доступность, безопасность, удобство использования и т. Д.) И их относительный приоритет (связан с нефункциональными требованиями).
- Обеспечение хорошей поддержки решения после того, как оно будет введено в действие.
- Согласование решения с технологической стратегией организации или архитектурой предприятия и т. Д.
Дизайн высокого уровня собирается сделать архитектуру реальной:
- Логическое определение компонентов системы, их ролей и взаимосвязей.
- Обращение к названной технологии, например, вызов определенных частей выбранного вами технологического стека, которые необходимо использовать, какие конкретные фреймворки или сторонние библиотеки вы будете использовать.
- Вызов конкретных бизнес-систем и их конкретных API, с которыми вам необходимо интегрироваться.
Итак, чтобы взять ваш пример, архитектура может определять:
- Что вы создаете приложение для Android, чтобы делать покупки.
- Что данные, которые он обнаружит, будут поступать из некоторых онлайн-сервисов.
- Какие данные хранятся на устройстве, если таковые имеются - например, предпочтения пользователя.
- Пользователи могут аутентифицироваться с помощью социальных сетей, например Google.
... поэтому ДВУ должен определить:
- Конкретная версия Android, на которую вы нацеливаетесь / поддерживает, конкретные зависимости и т. Д.
- Где именно расположены службы данных, какие именно, какие объекты данных и значения они будут предоставлять.
- Логический дизайн данных (возможно, на уровне полей) для любых данных, которые вам нужно хранить на устройстве.
- Особенности того, как вы будете выполнять аутентификацию с поставщиками социальных сетей, какие библиотеки кода будут использоваться и т. Д.