
架构设计
文章平均质量分 95
Solomon_肖哥弹架构
Solomon(肖爱良) - 前百度环境音乐CTO&架构师、微服务专家 - 中国机械出版社签约作家,《深入理解Dubbo工业级架构设计》图书的作者 - 分享高并发、高可用、高性能的分布式(微服务、存储、事务、限流)架构设计原理
展开
-
低耦合的黄金法则:好莱坞原则的实践指南
好莱坞原则(Hollywood Principle)是一种软件设计哲学,核心理念是“别调用我们,我们会调用你”(Don't call us, we'll call you)。这个原则鼓励创建松耦合的系统,其中组件不主动调用依赖的服务,而是通过回调、事件订阅或依赖注入等方式等待被调用。这种设计提高了系统的灵活性和可维护性,使得组件更容易独立扩展和测试。通过反转控制权,好莱坞原则帮助构建了更易于管理和适应变化的软件架构。原创 2025-02-16 11:04:31 · 816 阅读 · 0 评论 -
配置驱动的微服务:架构灵活性的新篇章
在快速变化的业务环境中,微服务架构的灵活性成为了系统设计的核心要求。配置化策略允许系统行为通过外部配置来调整,而不是硬编码在应用程序中,从而提高了系统的适应性和可维护性。原创 2025-02-15 10:50:33 · 961 阅读 · 0 评论 -
灵活架构的秘诀:GRASP多功能原则的深度解析
在软件设计中,控制对象的创建和管理对象的生命周期是常见的挑战。GRASP中的多功能(Multiton)原则提供了一种模式,用于在多个地方需要访问同一对象实例的场景。多功能原则建议创建有限数量的实例,并且这些实例可以在不同的地方被访问,同时保持了控制和封装。原创 2025-01-27 12:36:57 · 1184 阅读 · 0 评论 -
架构师妙用:充血模型行为与状态管理类设计(设计篇)
在充血模型中,领域对象负责管理自己的状态,这意味着它们不仅拥有数据(状态),还拥有改变这些数据的逻辑(行为)。领域对象的状态管理包括确保状态的完整性、一致性,以及在状态变化时执行任何必要的业务规则或约束。原创 2025-01-26 23:45:37 · 548 阅读 · 0 评论 -
软件设计的巧夺天工:GRASP间接原则的精妙实践
在软件系统的设计和开发过程中,组件之间的交互是不可避免的。随着系统规模的扩大和功能的增加,这些交互可能变得复杂且难以管理。直接的组件间交互可能导致紧耦合,使得系统难以维护、扩展和理解。间接原则作为GRASP的一部分,提供了一种解决方案。它建议在组件之间引入一个或多个中间层,以减少它们之间的直接依赖。这种中间层充当客户端和服务器之间的代理,处理请求并转发它们到适当的组件。原创 2025-01-26 23:26:36 · 706 阅读 · 0 评论 -
创建者原则:GRASP中提升软件设计质量的关键
依赖者也叫创建者原则作为GRASP的一部分,关注于对象创建的职责分配。它建议将对象的创建逻辑放在最了解如何创建该对象的类中,也就是让创建对象的类负责维护该对象。原创 2025-01-26 14:24:55 · 860 阅读 · 0 评论 -
多态原则:GRASP中的软件设计灵活性和扩展性
多态是GRASP原则中的核心概念之一,它允许以统一的方式处理不同类型的对象,从而提高软件设计的灵活性和可扩展性。原创 2025-01-26 14:23:08 · 899 阅读 · 0 评论 -
打造坚如磐石的代码:18种高内聚原则精解
高内聚原则是GRASP(General Responsibility Assignment Software Principles)中的一个重要原则,它强调一个类或模块应该只包含与其功能紧密相关的操作和数据,从而提高代码的可读性和可维护性。原创 2025-01-26 14:21:20 · 580 阅读 · 0 评论 -
精雕细琢:单一职责原则在电商架构中的运用(设计篇)
软件开发中单一职责原则(SRP)是SOLID五大设计原则中的第一个,由Robert C. Martin在21世纪初提出。它主张一个类应该仅有一个职责,并且该职责应该被完全封装在类中。这一原则的目的是减少类间的耦合,增加代码的可维护性和可扩展性。原创 2024-11-09 14:56:32 · 635 阅读 · 0 评论 -
高性能连接池之HikariCP框架分析:高性能逐条分解(架构师篇)
HikariCP,以其卓越的性能和低延迟连接池技术,正成为Java开发者的优选。在这篇文章中,我将深入探讨其核心特性、最佳实践以及如何通过HikariCP优化数据库连接。无论您是数据库专家还是新手,HikariCP都能为您的项目带来显著的性能提升。原创 2024-10-02 14:45:18 · 1795 阅读 · 0 评论 -
17个SpringSecurity业务场景案例,全面掌握安全框架(高级篇)
Spring Security 通过一系列注解简化了安全配置,我们将深入探讨Spring Security框架的17个关键应用场景,包括认证、授权、OAuth2、CSRF保护等。每个案例都配有详细的时序图和代码示例,旨在帮助开发者全面理解并有效利用Spring Security的强大功能,以构建更安全、更可靠的应用程序。原创 2024-10-01 13:16:18 · 1210 阅读 · 0 评论 -
架构师妙用:充血模型行为与状态管理类设计(架构篇)
在充血模型中,领域对象负责管理自己的状态,这意味着它们不仅拥有数据(状态),还拥有改变这些数据的逻辑(行为)。领域对象的状态管理包括确保状态的完整性、一致性,以及在状态变化时执行任何必要的业务规则或约束。原创 2024-09-29 20:20:25 · 508 阅读 · 0 评论 -
合成复用原则:桌面系统与电商系统中构建灵活的软件设计方案
合成复用原则(Composite Reuse Principle, CRP),也被称作组合/聚合复用原则,它建议优先使用对象组合,而不是通过继承来复用代码。这个原则强调通过将对象组合成树形结构来实现代码复用,从而提供更大的灵活性。原创 2024-09-28 19:16:41 · 983 阅读 · 0 评论 -
精进RocketMQ:深入剖析推拉消费模式与实战案例
在分布式消息传递系统中,消息消费策略是确保数据一致性和系统可靠性的关键。RocketMQ,作为业界领先的分布式消息中间件,提供了灵活的消息消费模式,以适应不同的业务需求。本文将深入探讨RocketMQ的推(Push)模式和拉(Pull)模式,并通过实际业务案例,展示如何根据具体场景选择最佳消费策略。原创 2024-09-14 11:50:24 · 768 阅读 · 0 评论 -
Spring Security 4大核心架构图与21种安全验证策略场景分析
Spring Security 是一个功能强大且高度可定制的 Java 安全框架,用于保护基于 Spring 的应用程序。它提供全面的安全服务,包括认证、授权、防止 CSRF 攻击、会话管理等。通过灵活的配置选项和多种认证机制,Spring Security 帮助开发者构建安全、健壮的应用系统,支持从简单的表单登录到复杂的 OAuth2 和 OpenID Connect 认证。原创 2024-09-14 11:34:22 · 1349 阅读 · 0 评论 -
静态工厂模式(Static Factory Method Pattern):支付接口封装实战案例分析
在电商平台中,需要集成多种支付方式,如支付宝、微信支付、银行卡支付等。为了简化支付流程并统一支付接口,静态工厂模式提供了一种实例优雅的解决方案。原创 2024-08-01 15:55:13 · 428 阅读 · 0 评论 -
对象池模式(Object Pool Pattern):连接池管理实战案例分析
在许多互联网项目中,频繁创建和销毁数据库连接会导致性能问题。使用连接池可以复用已经创建的连接,从而提高资源利用率和系统性能。原创 2024-07-31 16:40:28 · 448 阅读 · 0 评论 -
空对象模式(Null Object Pattern)实战案例分析 —— 电商平台库存管理
在电商平台中,库存管理是一个关键环节。每个商品都应该有一个库存对象,但有时某些商品可能暂时无货或不存在,这时使用空对象模式可以避免空指针异常并简化业务逻辑。原创 2024-07-30 13:30:41 · 505 阅读 · 0 评论 -
规格模式(Specification Pattern): 电商平台商品筛选实战案例分析
在电商平台中,用户经常需要根据各种条件筛选商品,例如价格范围、品牌、评价等级等。规格模式提供了一种灵活的方式来构建复杂的筛选逻辑。原创 2024-07-28 12:03:58 · 518 阅读 · 0 评论 -
KISS原则(Keep It Simple, Stupid):可以用来Dis 架构师的过度设计
KISS(Keep It Simple, Stupid)原则,即“保持简单,愚蠢”原则,是一种提倡在设计过程中保持简洁性的软件开发理念。这个原则鼓励开发者避免不必要的复杂性,专注于最直接、最清晰的解决方案。原创 2024-07-14 14:00:56 · 1201 阅读 · 0 评论 -
合成复用原则:桌面系统与电商系统中构建灵活的软件设计方案
合成复用原则(Composite Reuse Principle, CRP),也被称作组合/聚合复用原则,它建议优先使用对象组合,而不是通过继承来复用代码。这个原则强调通过将对象组合成树形结构来实现代码复用,从而提供更大的灵活性。原创 2024-07-12 14:23:32 · 1253 阅读 · 0 评论 -
迪米特法则:电子商务库存管理应用案例,并不属于过度设计
迪米特法则(Law of Demeter, LoD)是一种软件设计原则,它要求一个对象应该对其他对象有最少的了解,只与直接的朋友(即直接的依赖关系)交互。当系统中的对象之间存在复杂的交互关系,或者一个对象需要了解太多其他对象的内部细节时。原创 2024-07-12 12:28:59 · 1270 阅读 · 0 评论 -
写代码总被Dis:5个项目案例带你掌握SOLID技巧,代码有架构风格
* 单一职责原则是基础,确保每个类只关注一件事情。* 开闭原则建立在单一职责原则之上,强调通过扩展而不是修改现有代码来添加新功能。* 里氏替换原则确保继承体系的健全性,让派生类可以安全地替换基类。* 接口隔离原则避免让客户端依赖于它们不需要的接口,提高了接口的可用性。* 依赖倒置原则将高层策略性业务规则与低层细节解耦,使系统更加灵活。文本通过ERP案例、支付系统集成案例、订单案例、折扣案例、汽车租赁项目案例代码片段来讲解SOLID设计原则如何落地到业务项目来提高项目整体的质量原创 2024-07-10 23:25:31 · 973 阅读 · 0 评论 -
依赖倒置原则:支付网关设计应用案例
依赖倒置原则解决了在支付网关设计中,业务逻辑层与具体支付实现之间的紧密耦合问题。依赖倒置原则(Dependency Inversion Principle, DIP)是SOLID原则的一部分,它提倡在设计时依赖于抽象(接口或抽象类),而不是具体的实现。这有助于降低模块间的耦合度,提高系统的可扩展性和可维护性。原创 2024-07-10 18:44:18 · 1009 阅读 · 0 评论 -
接口隔离原则:精简接口,专注职责,多环境配置管理案例
接口隔离原则解决了因为接口设计过于庞大而导致的低内聚和高耦合问题,使得使用接口的类实现了许多它们不需要的方法。原创 2024-07-10 18:03:28 · 830 阅读 · 0 评论 -
里氏替换原则在金融交易系统中的实践,再不懂你咬我
里氏替换原则解决了继承关系中的脆弱性问题,确保子类能够安全地替换基类,避免因继承带来的风险和错误。例如:在金融交易系统中,需要处理不同类型的交易,每种交易都有其特定的执行和撤销逻辑。LSP确保这些不同的交易类型可以安全地使用基类接口进行操作。原创 2024-07-10 14:14:45 · 937 阅读 · 0 评论 -
开闭原则:软件设计的弹性与稳健性,项目代码讲解
开闭原则(Open-Closed Principle, OCP)是SOLID设计原则中的第二原则。由Bertrand Meyer在1988年提出,并由Robert C. Martin进一步推广。开闭原则指出,软件实体应对扩展开放,对修改关闭。这意味着设计时应该允许轻松添加新功能,而不需要修改现有代码。原创 2024-07-10 14:00:42 · 678 阅读 · 0 评论 -
精雕细琢:单一职责原则在电商架构中的运用 ,代码讲解
软件开发中单一职责原则(SRP)是SOLID五大设计原则中的第一个,由Robert C. Martin在21世纪初提出。它主张一个类应该仅有一个职责,并且该职责应该被完全封装在类中。这一原则的目的是减少类间的耦合,增加代码的可维护性和可扩展性。原创 2024-07-09 23:04:31 · 955 阅读 · 0 评论 -
一个项目代码讲清楚DO/PO/BO/AO/E/DTO/DAO/ POJO/VO
在现代软件架构中,不同类型的类扮演着不同的角色,共同构成了一个清晰、模块化和可维护的系统。以下是对实体类(Entity)、数据传输对象(DTO)、领域对象(Domain Object)、持久化对象(Persistent Object)、业务对象(Business Object)、应用对象(Application Object)、数据访问对象(Data Access Object, DAO)、服务层(Service Layer)和控制器层(Controller Layer)的总体介绍:原创 2024-07-09 11:59:27 · 1422 阅读 · 0 评论