构建之法阅读笔记01

一、阅读章节概述
本次阅读了《构建之法》的前几章,主要围绕软件架构设计的基本原则、方法以及一些常用的架构模式展开阐述,为后续深入理解软件构建的精髓奠定了基础。
二、核心要点梳理
软件架构的重要性
软件架构是软件系统的蓝图,决定了系统的整体结构、组件划分以及它们之间的交互关系。一个良好的架构能够提高系统的可维护性、可扩展性、可重用性等关键质量属性,降低开发成本和风险。
以 “架构三板斧” 为例,分治法、分层解耦、信息隐藏这三种基本方法是构建软件系统架构的核心思路。
分治法 :将复杂的问题分解成多个相对独立、可管理的小问题来解决。比如在设计一个大型电商平台系统时,可将订单处理模块、商品管理模块、用户管理模块等分开设计和实现,每个模块内部又可以进一步细分功能单元,通过定义清晰的接口进行交互,这样有助于团队协作开发,同时便于后续针对各个模块进行优化和扩展。
分层解耦 :把系统划分为不同的层次,每一层只关注特定的职责,且相邻层次之间通过明确定义的接口进行通信,高层不依赖低层的实现细节。例如经典的三层架构(表现层、业务逻辑层、数据访问层),各层之间相互隔离,方便在不影响其他层的情况下对某一层次进行修改和升级,增强了系统的灵活性和可维护性。
信息隐藏 :隐藏组件或模块内部的实现细节,仅暴露必要的接口给外部调用者。这有助于降低系统的耦合度,保护系统的内部状态和行为不被外部随意修改,从而提高系统的稳定性和安全性,同时也便于对隐藏部分的内部实现进行优化和改进,而无需担心对依赖该组件的其他部分造成影响。
常见的软件架构模式
客户端 - 服务器(C/S)架构 :由客户端和服务器端组成,客户端负责用户交互界面,服务器端负责数据存储和业务逻辑处理。这种架构模式的优点是便于集中管理数据和业务逻辑,但对服务器性能要求较高,且客户端需要安装特定的软件,随着用户数量的增加,维护和升级成本也会相应上升。例如早期的办公软件系统大多采用 C/S 架构。
浏览器 - 服务器(B/S)架构 :客户端只需浏览器即可访问服务器上的应用,无需安装额外的软件,具有良好的跨平台性和易用性。服务器端承担了更多的处理任务,包括页面渲染、业务逻辑处理和数据存储等。如今大多数互联网应用都基于 B/S 架构,如各类在线购物网站、社交媒体平台等。
微服务架构 :将一个大型复杂的应用拆分成多个小型、独立的服务,每个服务专注于特定的业务功能,且可以独立部署、升级和扩展。这些服务之间通过轻量级的通信机制(如 HTTP RESTful API 或消息队列)进行交互。微服务架构能够更好地应对业务的快速变化和系统的高性能、高可用性需求,但同时也带来了分布式系统带来的复杂性,如服务之间的数据一致性、服务治理等问题。像 Netflix 等大型互联网企业就采用了微服务架构来构建其庞大的业务系统。
三、个人感悟与思考
通过阅读这几章内容,深刻认识到软件架构设计在整个软件开发过程中的关键地位。一个优秀的架构可以为项目的提供成功坚实的基础,就像建造一座大厦需要精心设计的蓝图一样。在实际开发项目时,需要根据项目的具体需求、规模、业务特点等因素,合理选择和应用不同的架构原则和模式,而不是盲目跟风采用流行的架构方式。同时,在学习和实践的过程中,要不断深入理解这些架构原则背后的本质和思想,灵活运用分治法、分层解耦和信息隐藏等方法来解决实际遇到的问题,逐步培养自己架构设计的思维和能力。
接下来,在继续阅读本书后续章节时,我将重点关注具体架构设计方法在不同场景下的应用案例,以及如何在实际项目中平衡各种质量属性之间的关系,进一步提升自己对软件架构的全面认识和实战能力。

posted @ 2025-03-12 23:22  头发少的文不识  阅读(6)  评论(0)    收藏  举报