领域驱动设计(Domain Driven Design,简称:DDD)设计思想和方法论早在2005年时候就被提出来,但是一直没有被重视和推荐使用,直到2015年之后微服务流行之后,再次被人重视和推荐使用。 下面我来介绍一下DDD设计思想和方法论,同时结合我们在实际项目中应用总结和思考。 目录 1、为 ...
## 一、案例背景 计算机包含内存(RAM),CPU 等硬件设备,根据如图所示的“产品等级结构-产品族示意图”,使用抽象工厂模式实现计算机设备创建过程并绘制类图 ![image](https://img2023.cnblogs.com/blog/3143233/202303/3143233-2023 ...
六大原则是设计模式的基石, 是后面所提具体的二十三种设计模式的指导思想 总则: 开放封闭原则 对扩展开放, 对修改封闭 当我们需要添加新的功能时, 可以通过添加新的代码或者模块来实现, 而不需要修改已有的功能模块, 这样可以避免新增的功能影响到原来已经在正常运行的功能 最简单的例子就是函数重载 pu ...
设计模式是个老生常谈的话题, 不同的人对此有不同的看法 新手可能会觉得设计模式难以理解, 并且也只与编程语言有关, 或者只与前端后端有关, 适用范围很窄 或者就干脆觉得这玩意儿没啥卵用, 写了那么一大坨只是让代码变得复杂难懂, 不如直接复制黏贴删删改改来得方便 老手可能会觉得设计模式就是yyds, ...
概述 KCP协议结合了TCP和UDP协议的特点,是一个快速可靠的协议。 引述官方介绍: KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据的 ...
TCP/IP协议中有两个具有代表性的传输层协议,分别是TCP协议和UDP协议。TCP协议全称传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。UDP协议全称用户数据报协议,是 TCP/IP协议模型传输层的无连接协议,它既不建立连接,也不检查目标计算机是否已准备好接收,该协议只是将数... ...
这篇文章主要讨论数据压缩,数据压缩不仅可以节省存储空间,还可以提升网络传输性能,不同的压缩算法有不同的压缩比和压缩耗时,我们需要根据项目需求,选择不同的压缩算法。 ...
设计模式 设计模式是指在软件开发中,经过验证的,⽤于解决在特定环境下,重复出现的,特定问题的解决⽅案; 内存模型 继承Base,和成员变量为Base类型的内存模型 成员变量为Base指针的内存模型-》实际开发常用这种 由于该形式以Base指针的形式存储,展现一种多态的思想 而上一种中Base类型和S ...
前言 近期ChatGPT可以说是太火了,问答、写论文、写诗、写代码,只要输入精确的prompt,他的表现总是让人惊喜。本着打不过就加入的原则。要是把ChatGPT拉入群聊中,会是怎样一番场景?说做就做,花了1个晚上捣鼓了一个小Demo【ChatGPT群聊助手】,凭借它的“聪明才智”,应该可以搞定我的 ...
长期以来,我们一直听说物联网(IoT)将通过将日常设备连接到互联网来改变我们的生活和工作方式。虽然物联网的许多承诺似乎总是 "即将到来",但物联网设备的激增已经创造了大量的数据,需要实时处理、存储和分析。我已经说了很多年--实际上已经超过十年了--如果你的物联网数据不及时、不准确、不具有可操作性,那 ...
这篇文章主要描述硬件同步原语,它是由计算机硬件提供的一组原子操作。 我们常见的原语操作有CAS和FAA两种。在某些情景下,我们可以使用它来替代锁,从而更加安全高效的操作数据。 ...
面向过程(PO) 面向过程是随着VB一起来到我的世界,那个时候会的非常有限,感觉能把程序写出来自己就非常棒了,VB是做那种可视化界面,在工具栏拖个框框放到面板上,然后就在各个事件上写完整的逻辑,什么封装,抽象,继承一概不懂,就有一种一个方法把实现过程需要的逻辑都罗列了,面向过程分析的是步骤。这样说过 ...
这篇文章主要聊一下缓存,如何使用缓存来加速你的系统,减少磁盘 IO。按照读写性质,缓存可以分为读写缓存和只读缓存,两种缓存有各自的适用场景。 ...
这篇文章主要用来讨论Kafka是如何做到高性能的,包括使用批处理方式处理消息,使用顺序读写的方式使用磁盘,利用PageCache缓存数据并减少IO操作,使用零拷贝技术加速消费流程。 ...
三维模型几何纠正方法主要包括以下几种:坐标变换法:通过对三维模型的坐标进行变换,实现几何纠正。常用的坐标变换包括平移、旋转和缩放等。平移和旋转可以通过对模型的平移和旋转矩阵进行计算实现,缩放可以通过对模型的坐标进行缩放系数的计算实现。点云拟合法:将三维模型拟合到点云数据上,通过对拟合误差进行优化,实 ...
# 对于多任务多连接多线程实现限速的实现方法及思考 ## 前言 最近在写毕业设计,我的毕业设计就是用Rust语言实现一个Bittorrent客户端协议及其拓展协议,顺便写个Web让这个玩意能跑起来用。 总之就是要实现一个类似迅雷的下载器。下载器嘛,肯定要有限速功能的,不然吃满带宽导致其他应用饿死(B ...
钉钉单元化从2018年开始到今年已经是第五个年头了,五年的时间,钉钉单元化迭代了三个版本,从最初的毛头小子,到达今年已经小有成就。今天想借这个场来和大家分享我们单元化的心路历程和一些最佳实践。本文要分享的内容只涉及部分内容,无法做到面面俱到,主要是想在同路人中形成共鸣,进而能复用一些架构或者系统。在... ...
什么是策略模式? 在Python中,除了上次介绍的工厂模式,还有一种应用广泛的设计模式,即策略模式。策略模式就是一个策略类,它可以用相同的接口来调用不同的策略类,从而实现不同策略下的算法。 策略模式一般由三个部分组成: Context:上下文类,持有具体策略类的实例,并负责调用相关的算法 Strat ...
说明 今天首先考虑安全角度下个人以及团队密码的存储方案,以及两种情况下的加密解密方式。 个人密码加密 了解了1password等软件的个人加密方式应该是采用2SKD(two-secret key derivation)方式,two-secret key指的是master password(用户主密码 ...