设计模式(十八)备忘录
一、定义 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样就可以在以后将对象恢复到原先保存的状态。备忘录模式是一种对象行为型模式,其别名为标记(Token)模式。 二、描述 备忘录模式的核心在于备忘录类以及...阅读全文
一、定义 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样就可以在以后将对象恢复到原先保存的状态。备忘录模式是一种对象行为型模式,其别名为标记(Token)模式。 二、描述 备忘录模式的核心在于备忘录类以及...阅读全文
1. 可演进的API 1.1. 随着需求的变化,你需要改变你的API,即代码之间的共享接口 1.2. 改变API很容易,但很难做到正确 1.3. 保持API小巧 1.3.1. 小巧的AP...阅读全文
1. 行为准则 2. 需求的不确定性 2.1. 不断变化的客户需求 2.2. 软件项目无法避免的挑战 2.3. 产品需求和环境会随着时间的推移而改变,你的应用程序也必须随之改变 2.4....阅读全文
一、定义 义一个对象来封装一系列的对象交互。中介者模式使各对象不需要显示地相互引用,从而使其耦合松散,而且可以让你相对独立地改变它们之间的交互。中介者模式又称为调停模式,它是一种对象说行为型模式。 二、描述 在中介者模式中,引入了用于协...阅读全文
面向对象编程是一种强大而灵活的编程范式,它可以帮助我们更好地组织和管理代码,提高代码的可读性和可维护性,这使得它特别适合用在大型工程项目中。然而,我们也需要注意其可能带来的问题,尤其是在并发和复杂系统中。 ...阅读全文
本文重点为管道模式的抽象与应用,上述示例仅为个人理解。实际应用中,此案例长于应对各种规则冗杂的业务场景,便于规则编排。 ...阅读全文
一、定义 提供一种方法顺序访问一个聚合对象中的各个元素,且不用暴露该对象的内部表示。迭代器模式是一种对象行为型模式,又称为游标(Cursor)模式。 二、描述 在软件系统中,聚合对象拥有两个职责:一是存储数据,二是遍历数据。从依赖性来看...阅读全文
一、前言 我们需要对4个规格的kafka能力进行探底,即其可以承载的最大吞吐;4个规格对应的单节点的配置如下: 标准版: 2C4G 铂金版: 4C8G 专业版: 8C16G 企业版: 16C32G 另外,一般来讲,在同配置下,kafka...阅读全文
2.7Python(目前ArcGIS使用)代码转化为3.5Python(目前ArcGIS Pro使用)代码 Analyze Tools For Pro (2to3命令) 基本操作 调用ArcToolbox的两种形式 #arcpy.Too...阅读全文
我们有时候也会看到一些博客看到或者听到一些同事在说:这个业务有什么难的,不就是CRUD么?在软件生命周期初期,我们通过CRUD这种方式我们可以快速的实现业务规则,交付项目,但随着业务逐渐复杂,通过CRUD这种粗暴方式不可避免地会淹没业务...阅读全文
公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。 概述 随着科技的进步,软件系统的部署架构也在不断演进,从以前传统的物理机到虚拟机、Docker和Kubernetes,我们经历了一系列变化。 这些技术的引入给...阅读全文
Batrix企业能力库,是京东物流战略级项目-技术中台架构升级项目的基础底座。致力于建立企业级业务复用能力平台,依托能力复用业务框架Batrix,通过通用能力/扩展能力的定义及复用,灵活支持业务差异化场景的快速能力编排组装,从而通过技术...阅读全文
一、定义 定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,这里的“语言”是指使用规定格式和语法的代码。解释器模式是一种行为型模式。 二、描述 解释器模式是一种使用频率相对较低但学习难度较大的设计模式,它主要用于描述如何使用面...阅读全文
UML是软件工程的重要工具,但维护成本过高,导致实践中表现不佳。本文提出在人工智能支持下实现UML由“表达工具”向“认知工具”转型的路径,使之摆脱过高的人工学习和维护成本,重现辅助软件开发的效用。 ...阅读全文
这是一本比较冷门的书《设计规则:模块化的力量》,虽然豆瓣上只有58个评价,但是确实能学到很多东西。 这本书对我非常深远。不是是投资,创业,还是其他领域,模块化思想都能帮上你。这本书告诉我们生万物的规则。 书籍电子版PDF(建议及时保存,...阅读全文
如果在IT行业的时间够长的话,可能还记得大约10几年前,设计模式风靡一时的时候,有过一段反 "if" 的运动。 所谓的反"if"运动,其实是夸大了"if"语句带来的问题,比如当...阅读全文
公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。 数据库和Redis如何保持强一致性,这篇文章告诉你 目的 Redis和Msql来保持数据同步,并且强一致,以此来提高对应接口的响应速度,刚开始考虑是用myba...阅读全文
UDP 分片 与 丢包,UDP 真的比 TCP 高效吗?UDP(用户数据报协议)和TCP(传输控制协议)在很多方面都有显著的区别。总体来说,TCP更适合需要可靠传输的应用,例如网页浏览、电子邮件等,而UDP则更适合对速度有高要求,但对数...阅读全文
我们在刚开始架构设计时手足无措,但是随着我们完成一个又一个的系统架构设计以后,发现架构设计是有章法可循的,只要我们学习这些章法和套路,并且在工作过程中不断的积累与沉淀,就会行成一个完整的架构设计方法论,面对新的大型系统架构设计,也会一步...阅读全文
银行账户转账案例 银行账户转账案例是一个经典的领域驱动设计(DDD)应用场景。接下来我们通过一个简单的银行账户转账案例,来了解如何使用 Wow 进行领域驱动设计以及服务开发。 银行转账流程 准备转账(Prepare): 用户发起转账请求...阅读全文