复杂业务系统的通用架构设计法则

生活中我们经常谈及 “架构”,那么到底什么是 “架构”,Robert C.Martin《架构整洁之道》中的定义:软件架构是指设计软件的人为软件赋予的形状,这个形状是指系统如何被划分为组件 (Components),各个组件如何排列(Arrangement),组件之间如何沟通(Communicatio... ...阅读全文

C++ 单例模式的各种坑及最佳实践

单例模式是设计模式中最简单、常见的一种。其主要目的是确保整个进程中,只有一个类的实例,并且提供一个统一的访问接口。常用于 Logger 类、通信接口类等。 # 基本原理 限制用户直接访问类的构造函数,提供一个统一的 public 接口获取单例对象。 这会有一个“先有鸡还是先有蛋”的问题: - 因为用 ...阅读全文

策 略 模 式「指 鼠 为 鸭」

大家好,我是 god23bin,今天我们来介绍下设计模式中的一个重要的设计模式——策略模式。 当涉及到某个行为或算法有多个变体时,策略模式是一种常见的设计模式。它允许在运行时选择使用不同的策略,而无需修改现有代码。 现在就使用设计模式中经常出现的鸭子模型来介绍吧! ...阅读全文

驱动开发:内核文件读写系列函数

在应用层下的文件操作只需要调用微软应用层下的`API`函数及`C库`标准函数即可,而如果在内核中读写文件则应用层的API显然是无法被使用的,内核层需要使用内核专有API,某些应用层下的API只需要增加Zw开头即可在内核中使用,例如本章要讲解的文件与目录操作相关函数,多数ARK反内核工具都具有对文件的... ...阅读全文

详解驱动开发中内核PE结构VA与FOA转换

摘要:本文将探索内核中解析PE文件的相关内容。 本文分享自华为云社区《驱动开发:内核PE结构VA与FOA转换》,作者: LyShark 。 本章将探索内核中解析PE文件的相关内容,PE文件中FOA与VA、RVA之间的转换也是很重要的,所谓的FOA是文件中的地址,VA则是内存装入后的虚拟地址,RVA是 ...阅读全文

驱动开发:内核封装WFP防火墙入门

WFP框架是微软推出来替代TDIHOOK传输层驱动接口网络通信的方案,其默认被设计为分层结构,该框架分别提供了用户态与内核态相同的AIP函数,在两种模式下均可以开发防火墙产品,以下代码我实现了一个简单的驱动过滤防火墙。WFP 框架分为两大层次模块,用户态基础过滤引擎`BFE (BaseFilteri... ...阅读全文

移动应用架构新思路——WePY+小程序容器

WePY(微信小程序开发框架)是一个基于组件化开发思想的微信小程序开发框架。它类似于Vue.js框架,通过封装小程序原生的API,提供了更加简洁、高效的开发方式。 WePY的主要特点包括: 组件化开发:WePY将页面拆分为多个组件,每个组件有自己的样式、模板和逻辑。这种组件化的开发方式能够提高代码的 ...阅读全文

如何做架构设计?

我们要寻求更好的技术方案,推动架构的良性演进,每一步都是经过深度思考的,而架构设计方法就是帮助我们思考的框架。通过做架构设计,我们应该提升软件的质量和效率,降低风险和成本。 ...阅读全文

当“代码农”遇上“码农”:揭秘主干开发的那些事儿

前段时期我负责部门内部主干开发落地相关事宜,这个过程中,也真真切切的体会到了多人开发过程中,面对特性分支管理中,大家遇到的一些困扰,尤其面对敏捷迭代的开发方式,合并冲突,集成测试,代码重用等方面,都与高效两个字背离。当然,我在推进主干开发过程中,也遇到了一些问题和坎坷,在这里,集中的做一次分享。 ...阅读全文

C#设计模式19——装饰器模式的写法

装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许你动态地给一个对象添加一些额外的职责,而不需要修改这个对象的代码。 What(什么) 装饰器模式是一种结构型设计模式,它允许你动态地给一个对象添加一些额外的职责,而不需要修改这个对象的代码。 在装饰器模式中,你可以定义一个装 ...阅读全文

C++程序开发技巧

## 引言 > 类(class)的使用分为两种——基于对象(object Based)和面向对象(object oriented) > > 基于对象是指,程序设计中单一的类,和其他类没有任何关系 > > 单一的类又分为:不带指针的类(class without pointer members)和带指 ...阅读全文

设计模式详解之抽象工厂模式--企业的运行模式

# 前言 本文主要讲述设计模式中的**抽象工厂模式**,文中使用通俗易懂的案例,使你更好的学习本章知识点并理解原理,做到有道无术。 # 一.什么是抽象工厂模式 抽象工厂是23种设计模式中**创建型模式**的一种,抽象工厂是由多个工厂组合而成。 上一章我们提到的工厂模式只存在一个抽象角色,而抽象工厂是 ...阅读全文

微服务架构基本原理学习笔记(二)

上一篇:微服务架构基本原理学习笔记(一) 三、微服务架构 从一个已有的单体架构的应用程序开始进行微服务架构的重构往往是一个不错的选择。随着业务量和功能的增加,我们可以考虑使用微服务架构来扩充应用程序中原有的功能,或者每次添加新功能时,都为其创建一个新的微服务。这比从一开始就选择使用微服务架构进行设计 ...阅读全文

03.外观模式

### 外观式定义 为子系统中的一组接口提供一个一致的界面,Facade 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 #### 界面 在这里提到的界面,主要指的是从一个组件外部来看这个组件,能够看到什么,这就是这个组件的界面,也就是所说的外观。 #### 接口 在这里提到的接口,主 ...阅读全文

Java课堂|餐饮的本质(设计模式之工厂模式)

# 前言 本文主要讲述**工厂模式**,文中使用通俗易懂的案例,使你更好的学习本章知识点并理解原理,做到有道无术。 # 一.什么是工厂模式 工厂模式是23种设计模式中**创建型模式**的一种,它是一个最简单的对象创建管理方式,根据调用方传递的类型来创建对象并返回。封装了对象创建的过程,降低了程序模块 ...阅读全文

解释器模式(Interpreter Pattern)

### 解释器模式(Interpreter Pattern) #### 一、定义 解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。 给定一 ...阅读全文

缓存击穿、穿透、雪崩及常用解决方案

# 缓存击穿、穿透、雪崩及解决方案 Redis是一种高性能的键值型数据库,它可以用来实现缓存功能,提高应用的响应速度和承载能力。但是,使用Redis缓存也会遇到一些常见的问题,比如缓存击穿、缓存穿透、缓存雪崩。这些问题都会影响缓存的效率和稳定性,所以需要了解它们的原因和解决方案,保障Redis能够正 ...阅读全文