随笔分类 - 架构设计类与算法
REST 架构-架构快速进阶教程
摘要:1. 简介 REST 是一种软件架构风格,它依赖于描述如何定义和访问资源的规则。很难想象没有RESTful API的现代互联网。在本文中,我们将深入探讨 REST 和相关 HTTP 概念。 2. REST 架构 正如我们提到的,REST是一种软件架构风格。另一方面,它不是标准化的(如SOAP)。它在
阅读全文
DRY 软件设计原则-架构快速进阶教程
摘要:1. 概述 在本教程中,我们将了解 DRY 软件设计原理。 2. 定义 DRY 代表 不要重复自己。这是一个软件开发原则,目标是消除逻辑重复。 DRY 最初是在《The Pragmatic Programmer》一书中引入的,它确保特定逻辑在代码库中只出现一次。 3. 一个例子 例如,编写一个包含特
阅读全文
面向对象设计的 SOLID 原则-架构快速进阶教程
摘要:1. 概述 在本教程中,我们将讨论面向对象设计的 SOLID 原则。 首先,我们将从探索它们出现的原因以及为什么我们在设计软件时应该考虑它们开始。然后,我们将概述每个原则以及一些示例代码。 2. SOLID 原则的原因 SOLID 原则是由 Robert C. Martin 在他 2000 年的论文
阅读全文
KISS软件设计原理-架构快速进阶教程
摘要:1. 概述 在本教程中,我们将了解 KISS 软件设计原理。 2. 定义 KISS 代表保持简单。该软件设计原则指出,设计、解决方案、系统和产品如果保持简单,效果最好。 这意味着我们应该偏爱简单而不是复杂性,并尽可能避免复杂性。 3. 为什么要使用KISS? 在我们的代码中遵循 KISS 原则的原因
阅读全文
领域驱动架构设计之命令查询职责分离
摘要:本文译自Martin Flower的文件:https://martinfowler.com/bliki/CQRS.html QRS 代表命令查询职责分离。这是我第一次听到Greg Young描述的模式。其核心概念是,您可以使用与用于读取信息的模型不同的模型来更新信息。在某些情况下,这种分离可能很有价
阅读全文
一致性哈希的基本概念
摘要:一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。 一致性hash算法提出了在
阅读全文
关联,依赖,泛化(又称继承分为扩展或包含),实现,聚合(共享),复合(组合)
摘要:从关联—依赖—泛化—实现—聚合—复合是一层比一层对两个类之间的关系描述紧密。 1.关联 一般是指两个类之间有相对松散关系,若双方都知道对方则可用实线[双向箭头]连接,或只其中一方知道则用实线加单向箭头从隐藏方指向暴露方,但某个类是否存在并不影响另一个类的存在与否. 如客户与车子(通过买,租用或其它方
阅读全文
常用设计模式UML图示
摘要:1. 简介 设计模式是常见软件设计问题的可重用解决方案。它们提供了一种描述和记录软件架构的方法,以及开发人员交流软件设计的常用词汇。 一般设计模式按用途可以分成有3种类型,它们分别是创建模式、结构模式和行为模式。 创建模式处理对象创建机制,尝试以恰当的方式创建对象。 结构模式处理对象组合,处理对象之
阅读全文
常用23种设计模式Java经典实现(使用常用电商业务订单、购物车,商户,支付,优惠券为例)
摘要://工厂方法设计模式(Factory Method Pattern) 定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。 它的思想是:在工厂设计模式中,我们创建对象不是直接使用 new 关键字创建,而是将创建对象的行为委托给另一个类,也就是工厂类。把实例化的
阅读全文
数据的水平分片意义
摘要:超大型数据库的大小常常达到数百GB,有时甚至要用TB来计算。而单表的数据量往往会达到上亿的记录,并且记录数会随着时间而增长。这不但影响着数据库的运行效率,也增大数据库的维护难度。除了表的数据量外,对表不同的访问模式也可能会影响性能和可用性。在单个服务器上管理数据存储的解决方案(详见什么是数据的表分区
阅读全文
浙公网安备 33010602011771号