
架构设计
文章平均质量分 85
pumpkin84514
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
PlantUML 总结
是一个开源工具,允许用户通过简单的文本描述来生成各种UML图表。它支持多种图表类型,包括但不限于序列图、用例图、类图、活动图等。除了活动图,PlantUML还支持其他多种图表类型,如用例图、类图、时序图等。你可以通过设置皮肤参数来自定义图表的外观。原创 2025-02-10 00:10:28 · 888 阅读 · 0 评论 -
PlantUml常用语法
PlantUml常用语法,将从类图、流程图和序列图这三种最常用的图表类型开始。原创 2025-02-10 00:01:26 · 2631 阅读 · 0 评论 -
CAAS 和 IAAS
和是两种云服务模式,分别代表不同层次的云计算服务。原创 2024-11-20 23:22:26 · 1194 阅读 · 0 评论 -
如何拆解问题
在解决复杂技术问题时,系统化的拆解方法至关重要。以下以“电商场景中的全局分布式事务问题”为例,展示如何通过三步拆解问题,逐步明确抽象、角色职责、边界与实现细节。当用户下单时,可能涉及以下关键操作:通过将全局事务拆解为分支事务,可以独立设计每个模块,降低耦合。在事务拆解完成后,需要进一步明确角色、边界与功能,确保职责划分清晰。在电商场景中,全局事务的主要角色包括:各模块的边界是问题域的重要划分依据:每个模块的功能进一步拆解,确保模块内的职责单一性:明确角色、边界和功能后,模块间的交互和责任更加清晰,有助于后续原创 2024-11-20 23:13:09 · 884 阅读 · 0 评论 -
架构立方体
架构立方体模型提供了一种从。原创 2024-11-18 21:33:55 · 1130 阅读 · 0 评论 -
需求驱动学习
需求驱动方法确实强调三种主要的需求类型,它们对软件系统的设计和开发至关重要。原创 2024-11-17 00:02:57 · 780 阅读 · 0 评论 -
AT方法论
AT方法论在这里指的是 Architecture Thinking(架构思维)。它是一种帮助软件架构师和团队在设计复杂系统时,以系统化和战略性的方式进行思考和决策的方法论。Architecture Thinking 强调从全局视角考虑系统的结构、组件、技术和流程,以确保系统的整体性、灵活性和可维护性。Architecture Thinking 强调从业务需求到技术实现的全面考虑,涵盖从系统的高层次设计到低层次实现的各个方面。以下是 AT 方法论的一些核心原则:从业务驱动架构:关注全局视角和局部细节:权衡和决原创 2024-11-17 00:01:57 · 1009 阅读 · 0 评论 -
ABSD 和 DSSA对比
ABSD 和 DSSA 都是架构设计方法,适用的开发场景和目标不同。ABSD 更适合特定项目的应用开发,而 DSSA 则适合在同一领域内建立标准化架构,实现复用。原创 2024-10-25 23:07:57 · 1236 阅读 · 0 评论 -
什么是DSSA?
DSSA通过对领域需求的深入理解,提供了一种高度复用的架构模式,使得架构更贴合领域需求并具备通用性。这种方法尤其适合那些在同一领域内开发多个项目或系统的团队,从而实现高效的领域专用解决方案。原创 2024-10-25 22:57:39 · 1641 阅读 · 0 评论 -
ABSD四大基石
ADSD 的四大基石——原创 2024-10-24 23:39:54 · 1158 阅读 · 0 评论 -
Windows 操作系统中事件驱动架构与注册表
这意味着,当用户通过 GUI 修改某些系统设置时,系统能够立即将新的设置写入注册表,并根据事件驱动的机制来应用这些设置。例如,用户修改了键盘布局,Windows 会立即在注册表中更新相关键值,确保在下一个键盘输入事件发生时,系统能够使用新的键盘布局。事件处理器接收这个事件后,会查询注册表中的相应条目(例如显示设置的分辨率或刷新率),根据用户的新选择进行更新,并写入注册表。例如,当你插入一个新硬件设备时,操作系统会生成一个事件,系统会在注册表中查找与该设备相关的驱动程序或设置,确保设备能够正常工作。原创 2024-10-23 22:57:13 · 1071 阅读 · 0 评论 -
仓库风格架构
仓库风格,也称为,是以数据的存储和共享为核心的设计模式。这种风格的关键在于和。在这种架构中,所有数据都存放在一个中央数据单元中,负责管理和维护数据,而各个独立的处理单元通过和这个中央数据单元交互来执行业务逻辑。仓库风格主要适合那些对数据共享要求高的场景。原创 2024-10-23 22:49:07 · 1241 阅读 · 0 评论 -
虚拟机风格
虚拟机风格通过人为构建的虚拟环境,提供了灵活性和抽象层次,使系统能够在不同平台、不同环境中运行自定义的程序或规则。解释器风格通过逐行解释代码实现硬件仿真或应用执行,而基于规则的系统则通过规则引擎来解析和执行复杂的业务逻辑。两者在不同的场景下都具有广泛的应用,尤其是在现代的编程语言、业务决策和大数据分析领域。原创 2024-10-22 23:07:57 · 1306 阅读 · 0 评论 -
独立构件风格
独立构件风格是指在系统架构中,所有的构件(也就是系统的各个部分)都是相对独立的,它们之间不会直接进行通信,而是通过一些机制(比如消息传递或事件触发)来协调工作。这个设计的主要目的是降低系统各部分之间的耦合度,使得系统更加灵活和易于扩展。通过让各个构件独立运作,系统可以更容易地应对变化、扩展功能,并且在出现问题时也能减少影响范围。进程通信和事件驱动系统风格。原创 2024-10-22 23:00:49 · 847 阅读 · 0 评论 -
调用返回风格
主程序/子程序风格是一种经典的面向过程的架构风格。它将复杂的任务分解为多个子程序,主程序负责控制执行流程,并通过调用子程序来完成具体任务。子程序在执行后会返回结果,主程序使用这些结果来继续处理。面向对象风格是主程序/子程序风格的扩展,它引入了面向对象的设计理念,将数据和操作封装在类中,通过对象之间的相互调用来实现功能。对象不仅具有自己的状态(成员变量),还负责操作自己的数据(方法)。这使得模块之间的耦合度更低,系统更加灵活和可扩展。层次结构风格将应用程序设计为多个层次,每个层次只与相邻的层次进行交互。原创 2024-10-21 23:41:41 · 1372 阅读 · 0 评论 -
数据流风格
数据流风格是一种软件架构风格,强调数据在系统中的流动和处理。它关注如何将数据从一个处理单元传递到另一个,并对数据进行变换和处理。批处理序列是一种数据处理模式,所有数据处理任务按顺序执行,前一步处理必须完成后才能开始后一步。管道过滤器架构将数据处理任务分解为多个独立的过滤器,通过管道将数据从一个过滤器传递到另一个。过滤器负责具体的数据处理。数据流风格通过强调数据的处理和传输,提供了一种有效的架构模式。批处理序列和管道过滤器是其主要子风格,各自具有独特的优点和适用场景。原创 2024-10-21 23:06:29 · 990 阅读 · 0 评论 -
EDA系统的性能
EDA(事件驱动架构)的在于它的能力,也就是任务可以并行处理,不需要每个任务都等待前一个任务完成。这种异步方式可以提高系统的,尤其是在面对大量请求时,系统能更灵活地处理工作负载,比如用户发出请求后,系统可以立刻返回处理成功的响应,实际的工作(比如订单处理、支付等)可以放在后台慢慢处理。原创 2024-10-20 11:08:49 · 373 阅读 · 0 评论 -
EDA模式的可扩展性优点
横向扩展是通过增加更多的计算机或服务器来分担工作。纵向扩展是通过增加现有服务器的性能(比如更好的 CPU、内存等)来提升处理能力。EDA 的一个关键优点就是可以轻松扩展。如果事件量增大,可以横向扩展(加更多机器),也可以纵向扩展(增强机器性能),从而确保系统的高性能和稳定性。原创 2024-10-19 21:47:36 · 461 阅读 · 0 评论 -
Broker 模式
Broker 模式Broker 模式是一种用于处理分布式系统中的消息传递的架构模式。它的核心思想是通过一个中介层 (Broker) 来协调消息的发送和接收,从而解耦消息生产者 (Producer) 和消费者 (Consumer)。Broker本质上是一个轻量级代理,它不直接参与业务逻辑,只负责将消息从生产者转发给相应的消费者。这样做的好处是,生产者和消费者可以独立开发、部署和扩展,而无需了解对方的具体实现。Event.java通过这个例子,我们看到了Broker 模式。原创 2024-10-18 23:08:32 · 1757 阅读 · 0 评论 -
中介者模式 (Mediator Pattern)
好的,我们来深入探讨,并结合和的场景进行详细的讲解。原创 2024-10-18 22:18:56 · 936 阅读 · 0 评论 -
EDA常见的拓扑结构
特性MediatorBroker角色中介者,管理消息和事件的转发代理,负责传递消息,但不控制流程控制由 Mediator 控制事件的流转和处理无中心控制,消息由发布者和消费者直接交互组件交互组件之间的交互通过 Mediator 进行,遵循明确的交互流程发布者和消费者通过 Broker 注册和订阅消息,没有固定的处理流程适用场景适合较小范围的组件协调,UI 系统、复杂的内部交互等适合大规模的异步系统,事件驱动的分布式系统Mediator模式的流程(举例)原创 2024-10-17 06:45:45 · 1250 阅读 · 0 评论 -
NGINX 的 Event Loop
事件循环(Event Loop)是 NGINX 的核心,它使得 NGINX 在处理高并发时更加高效。非阻塞 I/O是 NGINX 的关键优势,能够同时处理大量连接而不会造成资源浪费。异步事件通知机制(如epoll或kqueue)帮助 NGINX 在事件发生时及时响应,提高了性能和响应速度。通过事件驱动模型,NGINX 能够在多个连接中有效地分配资源,保证高效、低延迟地处理客户端请求。原创 2024-10-17 06:45:11 · 911 阅读 · 0 评论 -
NIO(Non-blocking I/O)处理机制
NIO 的核心优势在于通过Selector的事件轮询,可以减少线程的创建与切换,提高系统并发处理能力。在 NIO 中,通道与 Selector 的配合使用使得事件处理变得清晰且高效。原创 2024-10-16 21:58:28 · 869 阅读 · 0 评论 -
贝佐斯的“两个披萨”原则(Two-Pizza Rule)
两个披萨”原则强调了团队规模对效率和沟通的影响。贝佐斯认为,团队不应过大,因为过大的团队会导致沟通障碍、决策滞后和责任分散,而小团队更能保持高效的运作、紧密的合作和灵活的应变能力。这一原则已经被广泛应用于现代企业的团队管理,特别是在需要高效协作和快速创新的环境中。原创 2024-10-16 21:24:38 · 1302 阅读 · 0 评论 -
系统的质量属性
在架构设计中,扩展性、性能、可用性、安全性和耦合性是最核心的质量属性,它们决定了系统的灵活性、效率和稳定性。伸缩性、易用性、可维护性、可移植性、可操作性、可重用性也是不可忽视的重要属性,确保系统不仅满足当前需求,还能适应未来的演进和维护。这些属性共同构成了高质量系统的基础,通过合理的架构设计,确保系统不仅能承受当前业务负载,还能灵活应对未来的变化和挑战。原创 2024-10-15 22:34:32 · 1277 阅读 · 0 评论 -
RASIC 决策矩阵
是一种常用的项目管理工具,帮助团队在项目或任务中明确各个成员的角色和职责,确保工作责任分配清晰,避免混淆。RASIC 矩阵通过五个角色定义了每个团队成员在特定任务中的职责,从而确保任务顺利完成。原创 2024-10-15 22:33:32 · 5067 阅读 · 0 评论 -
RAID 矩阵
RAID 矩阵(Risk, Assumption, Issue, Dependency)是项目管理中的强大工具,帮助团队系统性地识别和管理项目中的风险、假设、问题和依赖。通过使用 RAID 矩阵,架构师和项目经理可以清晰跟踪项目中可能出现的挑战,确保及时采取措施进行应对,从而提高项目的成功几率。原创 2024-10-14 23:22:13 · 1479 阅读 · 0 评论 -
ADMEMS矩阵
ADMEMS矩阵是架构设计中的一种需求分析工具,它的目标是通过系统化的方式分析和整理架构设计中的多层次需求,确保业务需求、用户需求、技术实现、约束条件等都能够得到合理的平衡。矩阵的核心是将广义功能、质量要求和约束条件这三个关键维度,结合到不同层次的需求分析中,如业务层、用户层、开发层等。在架构设计中,ADMEMS矩阵是一种将业务目标、用户需求和技术约束有效结合的工具,帮助架构师分析和设计出满足多方需求的系统解决方案。原创 2024-10-14 22:57:45 · 1377 阅读 · 0 评论 -
架构演进的方式
架构演进过程中,常用的三种模式是和。它们代表了三种不同的演进路径,适用于不同的业务环境和技术场景。下面详细解释每种模式的内容、使用场景,并对比它们的差异。原创 2024-10-13 21:56:56 · 1664 阅读 · 0 评论 -
SWOT分析
SWOT分析是一个强大的工具,能够帮助企业或个人通过全面分析内部和外部因素,制定切实可行的战略。:SWOT分析的真正价值在于它的后续行动,必须通过策略将分析结果转化为实际的行动计划。SWOT分析的核心目的是通过识别这些因素,帮助组织做出更明智的决策,制定合适的战略,充分利用优势,规避劣势,抓住机会,并应对威胁。:避免使用泛泛的描述,越具体的分析越容易得出可执行的结论。:SWOT分析应当从多角度考虑,包括内部各个部门、外部市场、客户需求、技术趋势等,确保信息的全面性和准确性。原创 2024-10-13 21:49:29 · 1984 阅读 · 0 评论 -
如何利用UML进行领域建模
利用UML进行领域建模时,识别核心实体、定义实体间的关联关系、处理复杂的多对多关系都是非常重要的步骤。通过引入中间实体,复杂的多对多关系可以被拆分成两个简单的一对多关系。此外,完善业务规则和建立领域词汇表对模型的准确性至关重要。领域建模是一项需要不断实践的技能,建议将这些概念应用到实际项目中,通过反复练习来提升掌握度。原创 2024-09-15 21:32:34 · 1073 阅读 · 0 评论 -
DDD的主要流程
DDD 开发流程分为和两大部分,接下来是具体的流程讲解以及流程图。原创 2024-09-15 15:13:46 · 406 阅读 · 0 评论 -
Mermaid说明
在 Mermaid 中,注释使用%%符号添加。这些注释在生成的图形中不会显示,它们仅用于在 Mermaid 源代码中添加额外的说明或文档。可以根据具体的图类型在适当的位置添加注释,以提高代码的可读性和可维护性。原创 2024-09-12 00:12:51 · 7971 阅读 · 0 评论 -
SEELE 框架是
SEELESensing(感知)Experimenting(实验)Evaluating(评估)Learning(学习)和Executing(执行)。它强调通过不断的感知、实验、评估和学习来推动组织的执行,实现持续优化和进步。SEELE 框架特别适用于不确定性高、变化快的环境,通过快速的反馈循环帮助组织更好地应对挑战。SEELE 框架是一种面向持续改进和创新的管理工具。通过感知、实验、评估、学习和执行的循环,它帮助团队不断优化,适应快速变化的环境。原创 2024-09-11 00:05:56 · 1581 阅读 · 0 评论 -
软件开发如何利用LLM提效
LLM 在软件开发中提高效率的方式取决于认知模式。清晰认知模式下,LLM 能通过自动化任务和知识复用显著提高效率。复杂认知模式下,虽然 LLM 的效率提升可能不如预期,但在团队环境中,LLM 的应用能通过优化知识传递和缩短反馈周期来提升整体效率。通过合理选择 LLM 的使用场景和交互模式,可以全面提升知识工程中的效率。原创 2024-09-10 00:01:50 · 585 阅读 · 0 评论 -
如何使用 LLM 辅助用户故事编写
利用 LLM 辅助用户故事编写可以大大提升工作效率和准确性。通过提供整体解决方案和用户旅程作为业务背景,LLM 可以生成基础用户故事卡,并通过主动提问和回答进一步细化用户故事及其验收条件。针对 LLM 提出的问题,可以通过重新定义业务背景、修改用户故事或回答细节问题来优化用户故事。自动化实现 TQA 还可以通过定义明确的任务、设计提问策略和使用自动化工具来提高效率和精度。这样,团队可以更好地理解用户需求,并将其转化为具体的功能要求和验收标准。原创 2024-09-10 00:01:00 · 664 阅读 · 0 评论 -
如何编写用户故事
在 LLM 时代,用户故事的编写应始终优先聚焦于问题定义,即角色-价值对,避免直接陷入解决方案的细节。通过有效地拆分用户故事,设计合理的整体解决方案和用户旅程,能够确保开发工作始终围绕用户的核心需求展开。原创 2024-09-09 00:05:27 · 1268 阅读 · 0 评论 -
LLM辅助建模
在最开始的时候,我们完全使用复杂认知模式(Complex),依靠反馈循环辅助我们完成建模的过程。我们知道在建模的过程中,最重要的就是发掘系统中的存在的概念,并建立概念与概念之间的关联。那么在实际建模的过程中,对于概念的提炼就是重中之重了。通常在建模的过程中,我们会维护一个概念字典(Glossary),其中包含对于系统非常重要的业务概念,以及对于这些概念的基本解释。当然我们也可以使用其他的建模方法,比如催化剂方法(Catalysis)、实体目标法、事件风暴法(Event Storming)等等。原创 2024-09-07 00:02:05 · 404 阅读 · 0 评论 -
使用 LLM 辅助理解业务知识
通过上述步骤和模板,您可以有效地利用 LLM 辅助理解业务知识。使用领域模型描述业务实体,利用用户故事定义需求,并通过验收场景和任务生成样例数据。结合 Mermaid 图表和自然语言描述,能够为 LLM 提供清晰的上下文,从而帮助它生成符合业务需求的结果。原创 2024-09-07 00:01:28 · 1174 阅读 · 0 评论 -
RAML学习
RAML(RESTful API Modeling Language)是一种基于 YAML 的语言,用于定义 RESTful API。它的主要目的是在编写代码之前定义 API 的结构和行为,从而简化设计、开发和维护 API 的过程。通过 RAML,开发者和设计师可以明确 API 的各个方面,包括资源、方法、请求和响应格式。RAML 是一种基于 YAML 的 API 设计语言,可以帮助团队在开发 API 前就明确其结构和行为。原创 2024-09-06 21:35:54 · 1018 阅读 · 0 评论