
设计规则
文章平均质量分 85
Solomon_肖哥弹架构
Solomon(肖爱良) - 前百度环境音乐CTO&架构师、微服务专家 - 中国机械出版社签约作家,《深入理解Dubbo工业级架构设计》图书的作者 - 分享高并发、高可用、高性能的分布式(微服务、存储、事务、限流)架构设计原理
展开
-
68种架构可扩展性设计:从类到服务治理(成就架构师必备,收藏金典)
在现代软件工程中,可扩展性是确保软件系统能够适应未来增长的关键特性。本文将全方位探讨可扩展性的多个方面,包括类设计、插件化、框架设计、架构设计、中间件集成扩展和服务治理。主要传递给大家扩展性设计的思路与涉足的范围。具体完善的细节,可以参考各中间件与业务架构。不了解的可以关注肖哥,提问。68种架构可扩展性设计:从类到服务治理(成就架构师必备,收藏金典)原创 2024-08-16 12:31:56 · 1290 阅读 · 0 评论 -
关注点分离:提升软件设计的清晰度与灵活性
在软件架构中,关注点分离(Separation of Concerns, SoC)是一种至关重要的设计原则,它帮助开发者构建更加模块化、灵活且易于维护的系统。通过将不同的功能和业务逻辑分离到不同的组件中,我们可以降低系统的复杂性,提高代码的可读性和可维护性。原创 2024-08-03 14:00:32 · 831 阅读 · 0 评论 -
信息专家原则:电子商务订单管理系统的实践(架构师篇)
信息专家原则是GRASP(General Responsibility Assignment Software Principles)原则之一,它建议将处理特定数据的责任分配给最了解这些数据的类。这有助于提高代码的内聚性和降低耦合度。原创 2024-07-27 17:29:34 · 324 阅读 · 0 评论 -
多例模式(Multiton Pattern):互联网应用配置管理实战案例分析
在一个高可用的互联网应用中,常常需要根据不同的配置组来创建多个具有特定配置的实例,例如数据库连接池、缓存实例等。这些实例的数量是已知的,并且在应用启动时就需要确定。原创 2024-07-24 13:56:16 · 915 阅读 · 0 评论 -
赋予领域模型生命力:充血模型在现代软件架构中的崛起(架构篇)
充血模型是一种软件设计方法,它将业务逻辑和决策能力赋予领域对象本身,而不是将它们放置在外部的业务逻辑层或服务层中。这种方法强调领域对象的完整性和自足性,使得每个领域对象都能够独立地执行其业务规则。原创 2024-07-22 12:25:21 · 1266 阅读 · 0 评论 -
贫血模型:简化设计还是过度简化(架构篇)?
贫血模型是一种软件设计模式,其中业务逻辑被放置在服务层或管理类中,而领域模型仅包含数据和访问这些数据的方法。这种模式有时被认为是反模式,因为它可能导致领域模型过于简单,缺乏业务逻辑。原创 2024-07-21 11:07:15 · 1090 阅读 · 0 评论 -
稳定依赖原则(Stable Dependencies Principle):构建健壮系统的黄金法则
稳定依赖原则是软件设计中的关键原则之一,它强调依赖于稳定的抽象,而不是依赖于易变的具体实现。这一原则有助于提高软件系统的稳定性和可维护性。原创 2024-07-18 17:40:55 · 1154 阅读 · 0 评论 -
DeferredResultProcessingInterceptor 和 CallableProcessingInterceptor 异步业务场景选择方案
`DeferredResultProcessingInterceptor` 和 `CallableProcessingInterceptor` 在于异步请求处理的拦截器接口,但它们适用于不同的场景和需求。原创 2024-07-17 13:24:45 · 290 阅读 · 0 评论 -
CallableProcessingInterceptor 异步处理订单应用场景说明
`CallableProcessingInterceptor` 拦截器用于处理基于 `Callable` 的异步请求。这种拦截器特别适用于处理那些可能需要很长时间来完成的任务,比如执行数据库查询、调用外部服务、进行文件读写操作等,而不会阻塞服务器的线程。原创 2024-07-17 13:23:25 · 269 阅读 · 0 评论 -
AsyncWebRequestInterceptor 异步处理应用场景说明
`AsyncWebRequestInterceptor` 接口继承自 `WebRequestInterceptor` 并添加了一个新方法 `afterConcurrentHandlingStarted`,这表明它的设计目的是在Spring Web应用程序中处理异步请求时提供拦截能力。以下是设计思路和业务场景的思路提供:原创 2024-07-17 13:21:58 · 313 阅读 · 0 评论 -
WebRequestInterceptor 认证信息应用案例说明
`WebRequestInterceptor` 用于表示在Spring Web应用程序中拦截和处理Web请求的组件。基于这个概念,我们可以构建一个业务场景和关键处理代码示例。原创 2024-07-17 13:17:25 · 188 阅读 · 0 评论 -
ServerWebExchangeContextFilter 过滤器之间共享 `ServerWebExchange`应用案例说明
`ServerWebExchangeContextFilter` 是一个 Spring WebFlux 过滤器,它的主要作用是将当前的 `ServerWebExchange` 实例放入到 Reactor 的 `Context` 中,这样就可以在不需要显式传递 `ServerWebExchange` 的情况下,让参与请求处理的组件能够访问到它。原创 2024-07-17 13:15:18 · 544 阅读 · 0 评论 -
DelegatingFilterProxy 应用案例说明
`DelegatingFilterProxy`过滤器用于将请求委派给 Spring 应用程序上下文中的一个或多个其他过滤器 Bean 进行处理。这种委派机制允许开发者利用 Servlet 过滤器的丰富生态系统,同时保持 Spring 的依赖注入和其他特性。原创 2024-07-17 13:10:26 · 410 阅读 · 0 评论 -
CommonsRequestLoggingFilter 应用案例说明
`CommonsRequestLoggingFilter` 过滤器用于记录HTTP请求的详细信息,通常用于日志记录和问题诊断。这个过滤器是Apache Commons Logging库的一部分,Spring在内部使用它来实现请求日志记录的功能。原创 2024-07-17 13:08:40 · 457 阅读 · 0 评论 -
稳定抽象原则(Stable Abstractions Principle):构建可靠软件的基石
稳定抽象原则是软件设计中的一个重要概念,它强调在设计软件时应该依赖于稳定的抽象,而不是依赖于变化的具体实现。这个原则有助于提高软件的可维护性和可扩展性。原创 2024-07-17 12:45:57 · 876 阅读 · 0 评论 -
项目初期:架构师不要炫技,3大设计原则你不懂
架构师避免过度设计的关键在于理解真实业务需求,采用迭代和敏捷开发方法,专注于核心功能实现。通过遵循SOLID和GRASP原则、适度使用设计模式、保持设计简洁(KISS原则)、避免过早优化,以及进行持续的代码重构,架构师可以确保系统的灵活性和可维护性。同时,建立快速反馈循环、管理技术债务、进行风险评估和原型验证,都是确保设计适度且实用的重要策略。原创 2024-07-16 21:40:22 · 723 阅读 · 0 评论 -
最少知识原则(LKP) :构建低耦合系统的秘诀
最少知识原则,也称为迪米特法则(Law of Demeter, LoD),是一种软件设计原则,它指导我们减少对象之间的交互,使得每个对象只需与其直接的合作伙伴通信,而不必关心合作伙伴的内部细节。原创 2024-07-16 17:48:56 · 814 阅读 · 0 评论 -
YAGNI(You Aren‘t Gonna Need It)原则:让你专注当下,未来不必预设
YAGNI(You Aren't Gonna Need It)原则是极限编程(XP)中的一项核心实践,它告诫开发者只实现当前需要的功能,避免过度设计和提前优化。这个原则帮助团队集中精力解决实际问题,而不是预测未来可能的需求。原创 2024-07-16 15:52:27 · 659 阅读 · 0 评论 -
DRY(Don‘t Repeat Yourself)原则:拒绝重复,拥抱简洁软件黄金法则
DRY(Don't Repeat Yourself)原则是软件开发中的一个基本原则,它强调在代码库中避免重复代码,以减少维护成本和提高代码质量。原创 2024-07-16 12:25:40 · 1000 阅读 · 0 评论 -
KISS原则(Keep It Simple, Stupid):可以用来Dis 架构师的过度设计
KISS(Keep It Simple, Stupid)原则,即“保持简单,愚蠢”原则,是一种提倡在设计过程中保持简洁性的软件开发理念。这个原则鼓励开发者避免不必要的复杂性,专注于最直接、最清晰的解决方案。原创 2024-07-14 14:00:56 · 1150 阅读 · 0 评论