架构模式与系统形态¶
本页用于整理分层架构、C/S、B/S、单体、SOA 和微服务。
对象状态的存储与传输¶
对象不仅包含属性数据,还可能包含对象身份、类型信息以及与其他对象的关联。把对象状态持久化,是将内存中的对象表示转换为数据库记录、文档、键值或文件等长期表示;把对象状态传输,是将状态转换为适合网络交换的消息表示,再在接收端解析、校验并重建为对象或 DTO。这个转换过程通常称为序列化/反序列化,或在持久化场景称为对象-关系/文档映射。
存储过程一般包括:选择要保存的字段,处理对象标识和关联关系,转换日期、枚举、二进制等类型,写入事务边界内的数据存储,并在读取时恢复对象状态。传输过程则通常是对象状态→序列化格式(如 JSON、XML、Protobuf)→字节流→网络协议→接收端反序列化。传输 DTO 而非直接暴露领域对象,有助于控制字段、保持接口稳定并避免循环引用。
需要区分“状态”和“行为”:序列化通常保存可重建状态,不会把运行时线程、打开的文件句柄、数据库连接、锁或函数执行现场直接安全地带走。跨版本传输还要考虑字段缺失、未知字段、默认值和兼容策略;跨不可信边界必须校验长度、类型、权限和内容,避免反序列化漏洞。持久化关注长期可靠恢复,网络传输关注协议契约、兼容性和安全,两者都涉及表示转换但目标不同。
来源:补充知识点1.md
常见架构形态¶
单体架构将主要功能集中在一个可部署单元中,部署和运维相对简单,但模块边界、独立扩展和局部变更隔离可能受限。分层架构通常划分表现层、业务层和数据层,通过职责分离降低复杂度。SOA 以服务化和契约复用为核心架构思想;微服务进一步强调服务的相对独立部署与演进,扩展性和团队自治较强,但会引入分布式事务、服务治理、链路追踪等复杂性。事件驱动架构通过发布、订阅或事件队列解耦生产者与消费者,适合异步处理和跨模块协作。
来源:专业课速记/05_软件工程与系统架构.md