系统设计的 15 个核心概念。请保存以备将来参考!01 需求收集需求收集是从利益相关者、用户和其他相关方那里收集特定需求和期望的过程,以清晰地定义系统的目标。02 系统架构 系统架构是定义系统结构、行为和更多视图的概念模型。它作为系统的蓝图,概述了组件、它们之间的关系以及指导它们设计和演变的准则。良好的架构支持系统的需求,是实现可扩展性、可靠性和性能的基础。我们需要选择一个合适的架构风格,比如前后端通信使用 REST ,服务间通信使用 gRPC等。03 数据设计 数据设计专注于数据元素的结构化以及高效存储、管理和检索数据的模式定义。它涉及定义数据类型、关系和约束,以确保数据完整性并与系统的需求保持一致。 04 领域设计 领域设计,或领域驱动设计(DDD),涉及对系统的业务领域进行建模,以创建对问题空间的丰富、可理解的模型。降低系统整体复杂性尤为重要,好的设计使得领域之间的耦合降低,而领域内部高聚合。05 可扩展性可扩展性是系统在不影响性能的情况下处理增加负载的能力,可以通过增加单个节点的资源(Scale Up)或增加更多节点(Scale Out)来实现。设计可扩展性涉及无状态架构、分布式系统原则和数据分区策略等考虑因素。为了更好地管理增加的节点,我们通常需要使用负载均衡,并且处理好节点的冷启动。06 可靠性可靠性指的是系统正确且持续运行的能力。它包括容错、冗余和故障转移机制,以确保系统在硬件故障、软件缺陷或外部干扰的情况下仍然运行且数据完整性得到维护。07 可用性可用性衡量系统正确运行的情况。通过冗余、故障转移系统和强大的基础设施实现高可用性,这些措施最大限度地减少停机时间,并确保用户在需要时可以访问系统。它通常以正常运行时间的百分比来量化。08 性能系统设计中的性能指的是系统在给定负载下的响应性和吞吐量。它涉及优化代码、高效的数据访问模式、缓存策略以及选择合适的硬件和软件以满足速度和效率要求。09 安全性系统设计中的安全性确保数据的保密性、完整性和可用性。它包括采取措施防止未经授权的访问、数据泄露和其他网络威胁。这包括加密、认证、授权和定期的安全评估。10 可维护性可维护性是指系统易于修改以添加功能、修复缺陷或改善性能的程度。通过清晰、良好文档化的代码、遵循设计原则和模块化架构来实现高可维护性,这允许轻松进行更新和升级。11 测试。12 用户体验设计用户体验设计(UX)