软件开发原则
## 软件开发原则 | 原则 | 介绍 | | | | | 单一职责原则 | 一个类或模块应该只负责一项任务或功能 | | 开闭原则 | 软件实体(类、模块、函数等)应该对扩展开放,对修改关闭 | | 里氏替换原则 | 子类应该能够替换...阅读全文
## 软件开发原则 | 原则 | 介绍 | | | | | 单一职责原则 | 一个类或模块应该只负责一项任务或功能 | | 开闭原则 | 软件实体(类、模块、函数等)应该对扩展开放,对修改关闭 | | 里氏替换原则 | 子类应该能够替换...阅读全文
本文希望能够通过总结过去自己对领域建模的一点粗浅经验给需要的同学能有些许启发,少走弯路。 背景 软件工程师做的核心事情就是对现实世界的问题进行抽象然后用计算机的语言对其进行重新刻画,在通过信息化来提高生产力。而这其中一个关键环节就是如何...阅读全文
分类 懒汉式:实例对象在第一次被使用时才进行初始化。 饿汉式:实例在定义时就被初始化。 特点 1、构造函数和析构函数私有化,不允许外部创建实例对象。 2、拷贝构造函数和复制运算符重载被delete,不允许产生新的实例。 3、内部定义一个...阅读全文
注:单点登录原理是一个重要知识点,也常被问及,很多童鞋照葫芦画瓢搭建过单点登录,但是被问到原理时可能说不出来,下面简单介绍,抛砖引玉,希望对大家有所帮助。 单点登录在现在的系统架构中广泛存在,他将多个子系统的认证体系打通,实现了一个入...阅读全文
导语 一开始我们就说过Kafka是一款开源的高吞吐、分布式的消息队列系统,那么今天我们就来说下它的分布式架构和高可用性以及双/多中心部署。 Kafka 体系架构简介 以下是 Kafka 的软件架构,整个 Kafka 体系结构由 Prod...阅读全文
今天给大家介绍下扫码登录功能是怎么设计的。 扫码登录功能主要分为三个阶段:待扫描、已扫描待确认、已确认。 整体流程图如图。 下面分阶段来看看设计原理。 1、待扫描阶段 首先是待扫描阶段,这个阶段是 PC 端跟服务端的交互过程。 每次用户...阅读全文
#2 封底估算 在系统设计面试中,有时会要求你使用 "封底估算"(back-of-the-envelope estimation)来估算系统容量或性能需求。根据谷歌高级研究员杰夫-迪恩(Jeff Dean)的说法,&...阅读全文
#1 从零扩展到百万用户 设计支持数百万用户的系统是一项挑战,是需要不断完善和无止境改进的过程。在本章中,我们将构建一个支持单个用户的系统,并逐步将其扩展到为数百万用户提供服务。 ## 1.1 单服务器设置 下图展示了单服务器设置的示意...阅读全文
前言 前面说了很多Kafka的性能优点,有些童鞋要说了,这Kafka在企业开发或者企业级应用中要怎么用呢?今天咱们就来简单探究一下。 1、 使用 Kafka 进行消息的异步处理 Kafka 提供了一个可靠的消息传递机制,使得企业能够将不...阅读全文
# 核心原理 长链接转为短链接的核心原理是: 将短链接与原始长链接做一个映射,访问短链接的时候,通过重定向的方式转到长链接。 # 应用场景 比如分享功能,查看分享信息的原始链接通常是很长的,直接发给用户,体验不是很好,这时候就可以将其映...阅读全文
##一、定义 **讲一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种创建型模式。** ##二、描述 **包含以下四个角色:** ![](https://img2023.cnblogs.com/bl...阅读全文
你想成为一名架构师,对吗?别对我撒谎,我知道你想成为架构师。即使你不想,你还是想成为一名更好的开发者。否则,你就不会花时间阅读这篇文章。 这种态度值得赞赏。毕竟,我们都希望在自己所从事的领域变得更好,即使不能称为最好。我在这里就是为了帮...阅读全文
这是一个讲解DDD落地的文章系列,作者是《实现领域驱动设计》的译者滕云。本文章系列以一个真实的并已成功上线的软件项目——码如云(https://www.mryqr.com)为例,系统性地讲解DDD在落地实施过程中的各种典型实践,以及在面...阅读全文
系统设计-经典场景电商业务之下单上图我们看到,针对电商系统的架构设计考虑点,提到了许多重要的方面。以下是对每个关注点的详细描述: 1. **API网关**: API网关作为系统的入口,负责将客户端的请求转发给后端服务。它可以集中处理安全...阅读全文
##一、定义 **提供一个创建一系列相关或互相依赖对象的接口,而无须指定他们具体的类,抽象工厂模式是一种创建型模式。** ##二、描述 **抽象工厂比工厂方法的抽象程度更高,通过引入了工厂等级结构,解决了简单工厂模式中工厂类职责太重的原...阅读全文
伴随物流行业的迅猛发展,一体化供应链模式的落地,对系统吞吐、系统稳定发出巨大挑战,库存作为供应链的重中之重表现更为明显。 ...阅读全文
在 Infinispan 配置文件中切换发现协议从广播到组播,需要修改 JGroups 的配置,因为 Infinispan 使用 JGroups 来处理集群通信和发现。下面是一个示例,展示如何将配置从广播切换到组播。 首先,确保您已经有...阅读全文
Lora芯片的PCB板受力接收信号有问题可能有电路板设计问题、电路板受潮或受损、外部干扰、设备兼容性问题等原因及其解决办法... ...阅读全文
小程序平台是怎么保证商家业务的稳定、健康发展,服务好这些外部商家的呢?这里面非常重要的是我们平台对小程序基本流量的运营与监控。如何不让业务的小程序在线上裸奔?如何帮助业务对自身小程序流量的冲高回落有一种直观的把握和监测?如何基于海量数据...阅读全文
## 直连 直连模式下,选择一个玩家充当服务器(房主)。如果游戏出现不同步,那么均按房主的世界来,玩家1可以作弊修改其游戏来影响其他玩家的世界 针对两个玩家来说,直连连接质量更好,延迟小 如果玩家数量很多,不同玩家间的通信则需要靠房主为...阅读全文