什么是建筑设计与高级设计的区别

时间:2016-10-22 06:13:13

标签: design-patterns design-documents

有人可以解释一下建筑设计与高级设计之间的区别。如果你用例子解释会很好。

假设我想构建简单的android在线购物应用程序就是如何绘制建筑设计和高级设计的情况。

我有以下要求

Login
Settings
search
cart
Billing

2 个答案:

答案 0 :(得分:2)

好像你问了两个问题: -

  1. 建筑设计和& 高级设计
  2. 我的Android购物应用程序设计会是什么样子
  3. 我会回答第一个,但你不太可能让别人给你第二个。最好谷歌的想法。

    建筑设计

    您需要对这些不同类型的架构有一个基本的了解,然后您才会意识到为什么这个问题过于通用

    • 企业架构
    • 解决方案架构
    • 应用程序架构
    • 网络架构
    • 安全架构
    • ......还有更多...

    高级设计

    这是一个非常宽泛的术语,您可能会得到无数的定义,但常见的一个设计只是显示系统中的组件(系统可能非常大或非常小)。由于您似乎在使用购物车应用程序询问应用程序架构,这意味着您可能会有一个图表,其中显示了以下内容,但没有详细说明每个应用程序的实现方式: -

    • 代码中的主要类/接口
    • 某种持久性商店
    • 高速缓存
    • 您的应用与
    • 交互的远程系统

答案 1 :(得分:0)

高级设计 (HLD) 比架构更具体。

架构是关于考虑各种限制并做出明智的决定,例如:

  • 使用哪种技术。
  • 系统质量属性(例如性能、可用​​性、安全性、可用性等),以及这些属性的相对优先级是什么(与非功能性需求相关联)。
  • 确保解决方案在运行后得到很好的支持。
  • 使解决方案与组织的技术战略或企业架构等保持一致。

高级设计即将开始使架构成为现实:

  • 逻辑地定义系统的组件,以及它们的作用是什么,以及它们如何相互关联。
  • 指命名技术,例如列出您选择的技术堆栈中需要使用的特定部分,您将使用哪些特定框架或第 3 方库。
  • 指出您需要集成哪些特定业务线系统及其特定 API。

举个例子,架构可能定义:

  • 您正在构建一个用于购物的 Android 应用。
  • 它将显示的数据将来自某些在线服务。
  • 设备上存储了哪些数据(如果有) - 例如用户偏好。
  • 用户可以使用社交媒体进行身份验证,例如谷歌。

...因此HLD应该定义:

  • 您将针对/支持的特定 Android 版本、特定依赖项等。
  • 数据服务的确切位置、具体是哪些服务、它们将提供哪些数据对象和值。
  • 您需要在设备上存储的任何数据的逻辑数据设计(可能是字段级)。
  • 关于您将如何与社交媒体提供商进行身份验证、要使用的代码库等的具体细节。