如何快速画出一幅漂亮的架构图
这篇文章总结了常用的架构图类型,可以借鉴笔者提供的模板,快速地产出符合业务需要的架构图。 为什么要画好一幅架构图?一幅漂亮的架构图既是创作者的深度结构化思考和表达,对于读者来说也更加容易理解架构所要表达的意思。 然而不擅长画图的程序员,在大脑里已经有了思路,如何快速能够产出精美的架构图呢?这篇文章帮 ...阅读全文
这篇文章总结了常用的架构图类型,可以借鉴笔者提供的模板,快速地产出符合业务需要的架构图。 为什么要画好一幅架构图?一幅漂亮的架构图既是创作者的深度结构化思考和表达,对于读者来说也更加容易理解架构所要表达的意思。 然而不擅长画图的程序员,在大脑里已经有了思路,如何快速能够产出精美的架构图呢?这篇文章帮 ...阅读全文
![](https://img2023.cnblogs.com/blog/3076680/202308/3076680-20230816164601035-688425072.png) # 1. 变化就是软件的特性 ## 1.1. 变化保证天天有,存活保障无处寻 ## 1.2. 非每一款软件每天都需 ...阅读全文
1. 概述 对于分布式系统,人们首先对现实中的分布式系统进行高层抽象,然后做出各种假设,发展了诸如CAP, FLP 等理论,提出了很多一致性模型,Paxos 是其中最璀璨的明珠。我们对分布式系统的时序,复制模式,一致性等基础理论特别关注。 在共识算法的基础上衍生了选举算法,并且为分布式事务提供了部分 ...阅读全文
##一、前言 **工厂模式常见的词:简单工厂、工厂方法、抽象工厂。简单工厂不属于23种经典设计模式,但通常将它作为学习其他工厂模式的基础。** ##二、简单工厂 ###1、定义 **定义一个工厂类,它可以根据参数的不同返回不同类型的实例,被创建的实例通常都具有共同的父类。由于简单的工厂模式中用于创建 ...阅读全文
1.3 分层架构演进 1.3.1 传统四层架构 将领域模型和业务逻辑分离出来,并减少对基础设施、用户界面甚至应用层逻辑的依赖,因为它们不属业务逻辑。将一个夏杂的系统分为不同的层,每层都应该具有良好的内聚性,并且只依赖于比其自身更低的层。 传统分层架构的基础设施层位于底层,持久化和消息机制便位于该层。 ...阅读全文
CQRS也叫命令查询职责分离,是近年来非常流行的应用程序架构模式。本文将重点介绍如何通过MediatR的管道功能将FluentValidation集成到CQRS项目中实现验证功能。 ...阅读全文
获取byte中每一位的值 byte byData = 0x36; int n0, n1, n2, n3, n4, n5, n6, n7; n0 = (byData & 0x01) == 0x01 ? 1 : 0; n1 = (byData & 0x02) == 0x02 ? 1 : 0; n2 = ...阅读全文
获取byte中每一位的值 byte byData = 0x36; int n0, n1, n2, n3, n4, n5, n6, n7; n0 = (byData & 0x01) == 0x01 ? 1 : 0; n1 = (byData & 0x02) == 0x02 ? 1 : 0; n2 = ...阅读全文
背景:在linux环境下,很多服务我们都使用docker来跑,很是方便,容器服务独立,配置独立,数据独立等等,但是有个问题,就是如果某个服务异常了,暂停了,停止了,一直重启中,我们要怎么及时的知道是哪个服务,并进行处理,保证业务正常运行。 本文主要介绍使用docker服务自带的一些命令来实现一个基本 ...阅读全文
最近前辈推荐我读《设计模式之禅》这本书,原因是我写的代码质量实在是一言难尽,开发速度很快,但是bug数就很多了,设计原则这种知识就需要掌握 写这篇文主要是记录自己的学习以及督促自己 第一章【单一职责】 从我理解的层面来谈谈单一原则:明确每个类每个方法的任务,只做一件事,不能一法两用 这也是我最大的一 ...阅读全文
# 加油站圈存机系统 对于加油卡而言,圈存是将`用户账户`中已存入的资金划转到所持的加油卡上后方可使用。通俗一点的说法就是您在网点把钱存入主卡中,再分配到下面的副卡,由于副卡都在使用车辆的驾驶员手中,需要在加油的时候在加油站让加油站员工划一下即可,就是所谓的圈存。 #### 圈存操作流程 如 ...阅读全文
电商系统中秒杀是一种常见的业务场景需求,其中核心设计之一就是如何扣减库存。本篇主要分享一些常见库存扣减技术方案,库存扣减设计选择并非一味追求性能更佳,更多的应该考虑根据实际情况来进行架构取舍... ...阅读全文
![](https://img2023.cnblogs.com/blog/3076680/202308/3076680-20230812234533249-1035884507.png) # 1. 在软件与外部环境之间的许多交汇点上,版本控制基本上处于混乱状态 ## 1.1. 不应该为了更新自身系统 ...阅读全文
CQRS是Command Query Responsibility Segregation的缩写,一般称作命令查询职责分离。从字面意思理解,就是将命令(写入)和查询(读取)的责任划分到不同的模型中。 对比一下常用的 CRUD 模式(创建-读取-更新-删除),通常我们会让用户界面与负责所有四种操作的数... ...阅读全文
![](https://img2023.cnblogs.com/blog/3076680/202308/3076680-20230811224443622-1444719159.png) # 1. 部署行为是系统生命的重要组成部分 ## 1.1. 只编写代码是不够的,只要没有在生产环境中运行,一切都 ...阅读全文
这是一个讲解DDD落地的文章系列,作者是《实现领域驱动设计》的译者滕云。本文章系列以一个真实的并已成功上线的软件项目——码如云(https://www.mryqr.com)为例,系统性地讲解DDD在落地实施过程中的各种典型实践,以及在面临实际业务场景时的诸多取舍。 本系列包含以下文章: DDD入门( ...阅读全文
本文主要做推荐系统浅析,主要介绍推荐系统的定义,推荐系统的基础框架,简单介绍设计推荐的相关方法以及架构。适用于部分对推荐系统感兴趣的同学以及有相关基础的同学,本人水平有限,欢迎大家指正。 ...阅读全文
不知道大家在开发的时候,有没有想过(遇到)这些问题: 1、大家都是按需要开发,都是一个职级的同事,为什么有些人的思路就很清晰,代码也很整洁、易懂;而自己开发,往往不知道怎么下手设计,写完了也是bug一堆,codeReview的时候更是频频被怼... 2、感觉每天都是CURD,写重复的代码,做类似的需... ...阅读全文
说到 Hybrid App(混合应用)大家都不陌生,因为这种开发模式大行其道发展的这些年取代了很多原生和 Web 应用,为什么大家对这种「Native + HTML5」的开发模式额外偏爱呢? 因为一方面在一定程度上兼顾了原生应用的优质体验,另一方面又兼顾到了 HTML5 灵活的开发模式。 这种模式的 ...阅读全文
系统要求 C/S架构的单体桌面应用,可以满足客户个性化需求,易于升级和维护。相比于一代Winform,界面要求美观,控件丰富可定制。 解决方案 依托.Net6开发平台,采用模块化思想设计(即分而治之的策略),每个模块采用DDD分层设计。前端选用WPF + Prism 框架,后端选用ABP + EF框 ...阅读全文