高级设计与低级设计

2025/05/06

1. 概述

在本教程中,我们将讨论软件工程中的低级和高级设计类型。

2. 什么是高级设计?

建筑物的鸟瞰图展示了其整体结构、住宅楼层、商业空间和配套设施,以及它们如何无缝连接。同样,高层设计(HLD)就像软件系统的鸟瞰图,它定义了整体架构、主要组件及其交互方式,我们可以将其视为奠定软件架构基础的蓝图。

因此,HLD是设计过程初始阶段的成果,在此阶段,架构师、系统设计师或项目经理会在高层次上讨论系统的结构和组件。HLD展示了系统的整体架构和功能,而无需深入探讨实现细节。要了解更多关于系统架构的信息,请参阅我们关于分层架构的文章。

让我们深入了解HLD的一些主要特征:

  • 它指定数据库设计、系统、服务、平台和模块之间的关系
  • 它包含硬件、软件接口以及用户界面的描述
  • 由解决方案架构师创建
  • 它详细说明了用户的典型流程以及性能规格
  • 它描述了系统的重大限制和权衡

就像建筑师在关注建筑预算和工期的同时,也会关注高层设计一样,在这个阶段,我们会权衡软件架构设计方案的成本和收益。虽然关注功能性和可扩展性很重要,但忽视财务和资源方面的影响可能会导致开发周期后期效率低下和预算超支。为了使团队能够做出符合项目目标和约束条件的明智决策,他们还必须考虑这些因素。这涉及开发时间、维护复杂性、基础设施要求以及潜在的可扩展性问题。

3. 什么是低级设计?

进入建筑内部,我们深入了解具体的布局、材料、管道、电线等等。同样,低级设计(LLD)会充实HLD中指定的每个组件的实现细节,例如类图、算法数据库模式和错误处理机制

简单来说,LLD是设计过程的下一个阶段,设计师和开发人员将高级设计转化为详细的技术规范

LLD的一些主要特征是:

  • 它由开发经理和设计师创建
  • 它涉及所有系统组件的实际逻辑
  • 它包括系统实施的分步计划
  • 它可以作为开发人员编码过程中的指南,确保系统功能准确、高效

我们可以说LLD深入研究了技术细节,将高层设计转化为详细的实施计划:

4. HLD与LLD

因此,我们有两种设计类型:

我们来总结一下它们的区别:

方面 低级设计 高级设计
重点 详细实施细节 总体系统架构与设计
涵盖的组件 单个组件/模块 主要系统组件及其相互作用
设计工件 类图、数据结构、算法、数据库模式、错误处理 架构图、组件图、接口定义、数据流图
输入 高级设计(HLD) 业务需求、约束和目标
输出 代码级实现 高级设计(HLD)计划
实施时间 HLD之后,在编码阶段 软件开发生命周期的早期
决策示例 数据结构选择、算法设计、数据库规范化 架构风格(例如微服务、单体架构)、技术栈、集成点
另称 宏观设计 微观设计
结果 评审记录、功能设计、数据库设计 程序规范和单元测试计划

HLD设定软件系统的总体架构和功能,提供满足需求的开发路线图,而LLD则处理实现方面的问题。我们关于需求的文章详细介绍了如何区分功能性需求和非功能性需求。

5. 总结

在本文中,我们解释了低级和高级软件设计。HLD提供了愿景,而LLD提供了详细的执行蓝图,了解如何创建这两种计划对于成功的软件开发至关重要。

Show Disqus Comments

Post Directory

扫码关注公众号:Taketoday
发送 290992
即可立即永久解锁本站全部文章