当前位置: 首页 > news >正文

从基础到实习项目:C++后端开发学习指南

在当今技术快速迭代的背景下,后端开发作为软件工程的核心支柱持续发挥着关键作用。C++凭借其卓越的性能表现和系统级控制能力,依然是构建高性能后端服务的首选语言之一。本文将系统性地解析现代C++后端开发的核心技术体系,包括从语言特性精要到架构设计模式的全方位知识图谱,同时结合行业最新趋势,为开发者提供清晰的职业进阶路径和实战能力培养方案。

C++ 后端都是干什么的?

C++ 后端开发主要涉及到构建和维护基于 C++ 的服务器端应用程序。C++ 是一种高性能的编程语言,广泛应用于需要高性能和底层系统访问的场景。C++ 后端开发人员通常专注于以下几个方面:

  1. 性能优化:C++ 具有良好的性能特性,因此后端开发人员通常会关注代码性能优化,以确保应用程序运行得更快、更高效。

  2. 服务器端应用程序开发:C++ 后端开发人员负责构建和维护基于 C++ 的服务器端应用程序,包括处理客户端请求、与数据库交互、实现业务逻辑等。

  3. 分布式系统:构建和维护大规模分布式系统,以支持高并发、高吞吐量的需求。

  4. 网络编程:C++ 后端开发人员需要具备网络编程知识,如套接字编程、TCP/IP、HTTP 等,以便更好地处理服务器端与客户端之间的通信。

  5. 安全性:确保服务器端应用程序和数据的安全,通过加密、安全传输和访问控制等手段来保护数据和应用程序。

  6. 内存管理:C++ 后端开发人员需要关注内存管理,以避免内存泄漏、内存溢出等问题。

C++后端都有哪些工作岗位呢?

在 C++ 后端领域,有以下一些典型的工作岗位:

  • 后端开发工程师:负责服务器端应用程序的开发和维护。

  • 系统架构师:负责设计和规划后端系统的架构,以满足性能、可扩展性和可维护性的要求。

  • 性能工程师:专注于优化代码性能,提升应用程序的运行效率。

  • 网络工程师:负责处理网络相关的问题,如网络通信、协议实现等。

  • 数据库工程师:专注于后端数据存储、检索和优化。

这些岗位可能会有一定的重叠,具体职责可能因公司和项目而异。不同公司可能会有不同的职位名称,但核心技能和职责通常是相似的。

薪资水平

在中国,C++ 开发者的薪资水平通常高于很多其他编程语言的开发者。根据不同城市和经验水平,C++ 后端开发工程师的薪资普遍较为可观。例如,北京、上海等一线城市C++ 后端开发工程师年薪通常在 20 万 - 60万人民币之间。

学习路线

来自零声教育的linux c/c++课程体系,通过原理技术+源码讲解+实战项目,全面解析linux c/c++底层开发技术,15个上线项目,2W+行手写代码。

公开课试听:最全C++后端开发架构师进阶教程,适合校招进大厂、1-5年程序员进阶、跳槽涨薪,一套搞定offer!2025年B站最全C++后端开发架构师进阶教程,适合校招进大厂、1-5年程序员进阶、跳槽涨薪,一套搞定offer!共计48条视频,包括:从腾讯内部C++职级标准来看C++后端技术栈、5种红黑树的用途,从应用到内核场景的优缺点、准备好linux开发环境,基于红黑树,现场手撕高效定时器模块等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV1hedAYkEzT/

1、精进基石专栏

(一)数据结构与算法

随处可见的红黑树

  • 红黑树的应用场景进程调度cfs,内存管理
  • 红黑树的数学证明与推导
  • 手撕红黑树的左旋与右旋
  • 红黑树添加的实现与添加三种情况的证明
  • 红黑树删除的实现与删除四种情况的证明
  • 红黑树的线程安全的做法
  • 分析红黑树工程实用的特点

磁盘存储链式的B树与B+树

  • 磁盘结构分析与数据存储原理
  • 多叉树的运用以及B树的定义证明
  • B树插入的两种分裂
  • B树删除的前后借位与节点合并
  • 手撕B树的插入,删除,遍历,查找
  • B+树的定义与实现
  • B+树叶子节点的前后指针
  • B+树的应用场景与实用特点
  • B+树的线程安全做法

海量数据去重的abhloriter bitap

  • hash的原理与hash函数的实现
  • hash的应用场景
  • 分布式hash的实现原理
  • 海量数据去重布隆过滤器
  • 布隆过滤的数学推导与证明

(二)设计模式

创建型设计模式

  • 单例模式
  • 策略模式
  • 观察者模式
  • 工厂方法模式与抽象工厂模式
  • 原型模式

结构型设计模式

  • 适配器模式
  • 代理模式
  • 责任链模式
  • 状态模式
  • 桥接模式
  • 组合模式

(三)c++新特性

stI容器,智能指针,正则表达式

  • unordered_ _map
  • stl容器
  • hash的用法与原理
  • shared_ ptr,unique_ ptr
  • basic_ regex,sub_ match
  • 函数对象模板function, bind

新特性的线程,协程,原子操作,lamda表达式

  • atomic的用法与原理
  • thread_ local 与condition_ var iable
  • 异常处理exception_ _ptr
  • 错误处理error _ category
  • coroutine的用法与原理

(四)Linux工程管理

Makefi le/ cmake/conf igure

  • Makefile的规则与make的工作原理
  • 单文件编译与多文件编译
  • Makefile的参数传递
  • 多目录文件夹递归编译与嵌套执行make
  • Makefile的通配符,伪目标,文件搜索
  • Makefile的操作函数与特殊语法
  • configure生成makefile的原则
  • cmake的写法

分布式版本控制git

  • git的工作流程
  • 创建操作与基本操作
  • 分支管理,查看提交历史
  • git服务器搭建

Linux系统运行时参数命令

  • 进程间通信设施状态ipcs
  • Linux系统运行时长upt ime
  • CPU平均负载和磁盘活动iostat
  • 监控,收集和汇报系统活动sar
  • 监控多处理器使用情况mpstat
  • 监控进程的内存使用情况pmap
  • 系统管理员调优和基准测量工具nmon
  • 密切关注Linux系统glances
  • 查看系统调用strace
  • ftp服务器基本信息ftptop
  • 电量消耗和电源管理powertop
  • 监控mysq| 的线程和性能mytop
  • 系统运行参数分析htop/top/atop
  • Linux网络统计监控工具netstat
  • 显示和修改网络接口控制器ethtool
  • 网络数据包分析利刃tcpdump
  • 远程登陆服务的标准协议teInet
  • 获取实时网络统计信息iptraf
  • 显示主机上网络接口带宽使用情况iftop

gdb调试

  • vscode远程连接Linux
  • vscode gdb开发环境设置
  • gdb调试概述
  • gdb调试准备
  • gdb调试命令详解
  • gdb多线程调试
  • gdb附加进程调试
  • gdb core fles调试

2、高性能网络设计专栏

(一)网络编程异步网络库zvnet

网络io与io多路复用select/poll/epoll

  • socket与文件描述符的关联
  • 多路复用select/poll
  • 代码实现LT/ET的区别

事件驱动reactor的原理与实现

  • reactor针对业务实现的优点
  • poll封装send_ cb/recv_ _cb/ accept_ _cb
  • reactor多核实现
  • 跨平台(select/epoll/kqueue)的封装reactor
  • redis,memcached, nginx网 络组件

http服务器的实现

  • reactor sendbuffer与recvbuffer封装http协议
  • http协议格式
  • 有限状 态机fsm解析http
  • 其他协议websocket, tcp文件传输

(二)网络原理

服务器百万并发实现(实操)

  • 同步处理与异步处理的数据差异
  • 网络io线程池异步处理
  • ulimit的fd的百万级别支持
  • sysctI. conf的rmem与wmem的调优
  • conntrack的原理分析

Posix API与网络协议栈

  • connect,listen, accept与三次握 手
  • listen参数backlog
  • syn泛洪的解决方案
  • close与四次挥手
  • 11个状态迁移
  • 大量close_ wait与time wait的原因与解决方案
  • tcp keepalive与 应用层心跳包
  • 拥塞控制与滑动窗口

UDP的可靠传输协议QUIC

  • udp的优缺点
  • udp高并发的设计方案
  • qq早期为什么选择udp作为通信协议
  • udp可靠传输原理
  • quic协议的设计原理
  • quic的开源方案quiche
  • kcp的设计方案与算法原理

(三)自研框架:协程框架NtyCo的实现

协程设计原理与汇编实现

  • 协程存在的3个原因
  • 同步与异步性能,服务端异步处理,客户端异步请求
  • 协程原语 switch,resume,yield,
  • 协程切换的三种实现方式,setjmp/longjmp,ucontext,汇编实现
  • 汇编实现 寄存器讲解
  • 协程初始启动 eip寄存器设至
  • 协程栈空间定义,独立模与共享栈的做法
  • 协程结构体定义

协程调度器实现与性能测试

  • 调度器的定义分析
  • 超时集合,就绪队列,io等待集合的实现
  • 协程调度的执行流程
  • 协程接口实现,异步流程实现
  • hook钩子的实现
  • 协程实现mysql请求
  • 协程多核方案分析
  • 协程性能测试

(四)自研框架:基于dpdk的用户态协议栈的实现

用户态协议栈设计实现

  • 用户态协议栈的存在场景与实现原理
  • netmap开源框架
  • eth协议,ip协议, udp协议实现
  • arp协议实现
  • icmp协议实现

tcp的原理实现

  • tcp 11个状态实现
  • 滑动窗口与慢启动
  • 重传定时器,坚持定时器
  • time_wait定时器,keepalive定时器

应用层posix api的具体实现

  • socket/bind/listen的实现
  • accept实现
  • recv/send的实现
  • 滑动窗口/慢启动讲解
  • 重传定时器,坚持定时器,time_ wait定时器,keepalive定时器

手把手设计实现epoll

  • epoll数据结构封装与线程安全实现
  • 协议栈fd就绪回调实现
  • epoll接口实现
  • LT/ET的实现

(五)高性能异步io机制

与epo1l媲美的io_ uring

  • io_ _uring系统调用io_ _uring_ setup, io_ _ur ing_ register, io_ _ur ing_ enter
  • liburng的io_ uring的关系
  • io_ uring与epoll性能对比
  • io_ _uring的共享内存机制

io_ uring的使用场景

  • io_ ur ing的accept, connect, recv, send实现机制
  • io_ uring网络读写
  • io_ uring磁盘读写
  • proactor的实现

windows异步机制iocp

  • iocp完成端口的工作机制
  • iocp的精髓重叠io
  • iocp处理维护连接以及连接上的收发数据
  • iocp多线程处理方案

3、基础组件设计专栏

(一)池式组件

手写线程池与性能分析(项目)

  • 线程池的异步处理使用场景
  • 线程池的组成任务队列执行队列
  • 任务回调与条件等待
  • 线程池的动态防缩
  • 扩展: nginx线程池实现对比分析

内存池的实现与场景分析(项目)

  • 内存池的应用场景与性能分析
  • 内存小块分配与管理
  • 内存大块分配与管理
  • 手写内存池,结构体封装与API实现
  • 避免内存泄漏的两种万能方法
  • 定位内存泄漏的3种工具
  • 扩展:nginx内存池实现

mysq|连接池的实现(项目)

  • 连接池性能的影响的2个因素,top连接和mysq|认证
  • 连接请求归还策略
  • 连接超时未归还策略
  • 链接断开重连策略
  • 连接数量最优策略

(二)高性能组件

原子操作CAS与锁实现(项目)

  • 互斥锁的使用场景与原理
  • 自旋锁的性能分析
  • 原子操作的汇编实现

无锁消息队列实现(项目)

  • 有锁无锁队列性能
  • 内存屏障Barrier
  • 数组无锁队列设计实现
  • 链表无锁队列设计实现

网络缓冲区设计

  • RingBuffer设计
  • 定长消息包
  • ChainBuffer 设计
  • 双缓冲区设计

定时器方案红黑树,时间轮,最小堆(项目)

  • 定时器的使用场景
  • 定时器的红黑树存储
  • 时间轮的实现
  • 最小堆的实现
  • 分布式定时器的实现

手写死锁检测组件(项目)

  • 死锁的现象以及原理
  • pthread_ _mutex_ lock/pthread_ _mutex_ _unlock dIsym的实现
  • 有向图的构建
  • 有向图dfs判断环的存在
  • 三个原语操作 lock before, lock_ after, unlock_ after
  • 死锁检测线程的实现

手写内存泄漏检测组件(项目)

  • 内存泄漏现象
  • 第三方内存泄漏与代码内存泄漏
  • malloc与free的dIsym实现
  • 内存检测策略
  • 应用场景测试

手把手实现分布式锁(项目)

  • 多线程资源竞争互斥锁
  • 自旋锁
  • 加锁的异常情况
  • 非公平锁的实现
  • 公平锁的实现

(三)开源组件

异步日志方案spdlog (项目)

  • 日志库性能瓶颈分析
  • 异步日志库设计与实现
  • 批量写入与双缓存冲机制
  • 奔溃后的日志找回

应用层协议设计ProtoBuf(项目)

  • IM, 云平台,nginx, http, redis协议设计
  • 如何保证消息完整性
  • 手撕protobuf IM通信 协议
  • protobuf序列化与反序列化
  • protobuf编码原理

4、中间件开发专栏

(一)Redis

Redis相关命令详解及其原理

  • string,set, zset, Iist,hash
  • 分布式锁的实现
  • Lua脚本解决ACID原子性
  • Redis事务的ACID性质分析

Redis协议与异步方式

  • Redis协议解析
  • 特殊协议操作订阅发布
  • 手撕异步redis协议

存储原理与数据模型

  • string的三种编码方 式int, raw, embstr
  • 双向链表的list实现
  • 字典的实现,hash函数
  • 解决键冲突与rehash
  • 跳表的实现 与数据论证
  • 整数集合实现
  • 压缩列表原理证明

主从同步与对象模型

  • 对象的类型与编码
  • 广字符串对象
  • 列表对象
  • 哈希对象
  • 集合对象
  • 有序集合
  • 类型检测与命令多态
  • 内存回收
  • 对象共享
  • 对象空转时长
  • redis的3种集群方式主从复制,sentinel, cluster
  • 4种持久化方案

(二)MySQL

SQL语句,索引,视图,存储过程,触发器

  • MySQL体系结构,SQL执行流程.
  • SQL CURD与高 级查询
  • 视图,触发器,存储过程
  • MySQL权限管理

MySQL索引原理以及SQL优化

  • 索引,约束以及之间的区别
  • B+树,聚集索引和辅助索引
  • 最左匹配原则以及覆盖索引
  • 索引失效以及索引优化原则
  • EXPLAIN执行计划以及优化选择过程分析

MySQL事务原理分析

  • 事务的ACID特性
  • MySQL并发问题脏读,不可重复读,幻读
  • 事务隔离级别
  • 锁的类型,锁算法实现以及锁操作对象
  • S锁X锁|S锁IX锁
  • 记录锁,间隙锁,next-key lock
  • 插入意向锁,自增锁
  • MVCC原理剖析

MySQL缓存策略

  • 读写分离,连接池的场景以及其局限a
  • 缓存策略问题分析
  • 缓存策略强一致性解决方案
  • 缓存策略最终一致性解决方案
  • 2种mysql緩存同步方案从数据库与触发器+udf
  • 缓存同步开源方案go-mysql-transfer
  • 缓存同步开源方案canal原理分析
  • 3种缓存故障,缓存击穿,缓存穿透,缓存雪崩

(三)Kafka

Kafka使 用场景与设计原理

  • 发布订阅模式
  • 点对点消息传递
  • Kafka Brokers原理
  • Topi cs和Partition

Kafka存 储机制

  • Partition存储分布
  • Partition文件存储机制
  • Segment文件存储结构
  • offset查找message
  • 高效文件存储设计

(四)微服务之间通信基石gRPC

gRPC的 内部组件关联

  • CI ientS ide与ServerSide, Channel, Ser ivce, Stub的概念
  • 异步gRPC的实现
  • 回调方式的异步调用
  • Server 与CI ient对RPC的实现

基于http2的gRPC通信协议

  • 基于http协 议构造
  • ABNF语法
  • 请求协议Request-Headers
  • gRPC上下文传递

(五)Nginx

Nginx反 向代理与系统参数配置conf原理

  • Nginx静态文件的配置
  • Nginx动态接口代理配置
  • Nginx对Mqtt协议转发
  • Nginx对Rtmp推拉流
  • Openresty对Redis缓存数据代理
  • shmem的三种实现方式
  • 原子操作
  • nginx channel
  • 信号
  • 信号量

Nginx过滤 器模块实现

  • Nginx Filter模块运行原理
  • 过滤链表的顺序
  • 模块开发数据结构 ngx_str_t,ngx_ list_ t,ngx_ buf_ t,ngx_ chain_ t
  • error日志的用法
  • ngx_ comond_ t的讲解
  • ngx_http_module_t的执行流程
  • 文件锁,互斥锁
  • slab共享内存
  • 如何解决 "惊群”问题
  • 如何实现负载均衡

Nginx Handler模块实现

  • Nginx Handler模块运行原理:
  • ngx_ module_ t/ngx_ http_ module_ t的讲解
  • ngx_ http_ top_ body_ filter/ngx_ http_ _top_ header_ filter的 原理
  • ngx_ rbtree_ t的使用方法
  • ngx_ rbtree自定义添加方法
  • Nginx的核心数据结构ngx_ cycle_ t,ngx_ event. _moule_ t
  • http请求的11个处理阶段
  • http包体处理
  • http响应发送
  • Nginx Upstream机制的设计与实现
  • 模块性能测试

5、开源框架专栏

(一)游戏服务器开发skynet

Skynet设计原理

  • 多核并发编程-多线程,多进程,csp模型,actor模型
  • actor模型实现-lua服务和c服务
  • 消息队列实现
  • actor消息调度

skynet网络层封装以及lua/c接口编程

  • skynet reactor 网络模型封装
  • socket/ socketchanne|封装
  • 手撕高性能c服务
  • lua编程以及lua/c接口编程

skynet重要组件以及手撕游戏项目

  • 基础接口 skynet. send, skynet. cal I, skynet. response
  • 广播组件multicastd
  • 数据共享组件 sharedatad datasheet
  • 手撕万人同时在线游戏

(二)分布式API网关

高性能web网关Openresty

  • Nginx与lua模块
  • Openresty访问Redis,MySQL
  • Restful API接口开发
  • Openresty性能分析

Kong 动态负载均衡与服务发现

  • nginx,openresty, Kong之间的“苟且”
  • 动态 负载均衡的原理
  • 服务发现实现的原理
  • Serverless
  • 监控,故障检测与恢复
  • 二代理层缓存与响应服务
  • 系统日志

(三)高性能计算CUDA

gpu并行计算cuda的开发流程

  • cpu+gpu的异构计算
  • 计算机体系结构中的gpu
  • cuda的环境搭建nvcc 与srun的使用
  • cuda的向量加法与矩阵乘法
  • MPI与CUDA

音视频编解码中的并行计算

  • cuda的h264编解码
  • cuda的mpeg编解码
  • ffmpeg的cuda支持

(四)并行计算与异步网络引擎workflow

workflow的应用场景

  • workflow的编程范式与设计理念
  • mysq/redis/kafka/dns的请求实现
  • parallel处理与任务组装

workf low的组件实现

  • 线程池实现
  • DAG图任务
  • msgqueue的实现
  • 纯c的jsonparser实现

(五)物联网通信协议mqtt的实现框架mosquitto

mqtt的高效使用场景

  • mqtt的 发布订阅模式
  • 解决低带宽网络环境的数据传输
  • 3种Qos等级
  • 0Auth与JWT的安全认证

mctt的broker

  • mqtt的遗嘱机制
  • 发布订阅的过滤器.
  • mosqujitto的docker部暑
  • matt的日志实时监控

(六)ZeroMQ

消息队列与ZeroMQ的应用

  • REQ/REP模型原理分析
  • PUB/SUB模型原理分析
  • PUSH/PULL模型原理分析
  • Router/Dealer模型原理分析

ZeroMQ源码分析 :消息模型的实现

  • 消息模型.
  • 消息传递模式
  • 消息分帧
  • 中间层代理
  • 消息丢失处理

ZeroMQ源码分析:网络机制与性能分析

  • 零拷贝技术
  • 消息高水位标记
  • 无锁队列
  • 可靠性设计

6、云原生专栏

(一)Docker

Docker风光下的内核功能

  • 进程namespace
  • UTS namespace
  • IPC namespace
  • 网络namespace
  • 文件系统namesapce
  • cgroup的资源控制

Docker容器管理与镜像操作

  • Docker镜像下载与镜像运行
  • Docker存储管理
  • Docker数据卷
  • Docker与容器安全

Docker网络管理(项目)

  • 5种Docker网络驱动
  • pipework跨主机通信
  • 0vS划分vlan与隧道模式
  • GRE实现跨主机Docker间通信

Docker云与容器编排 (项目)

  • Dockerfile的语法流程
  • 编排神器Fig/Compose
  • FIynn体系 架构
  • Docker改变了什么?

(二)Kubernetes

k8s环境搭建

  • k8s集群安全设置
  • k8s集群网络设置
  • k8s核心服务配置
  • kubectI命令工具.
  • yam|文件语法

Pod与Service的用法

  • Pod的管理配置
  • Pod升级与回滚
  • DNS服务之于k8s
  • http 7层策略与TLS安全设置

k8s集群管理的那些事儿

  • Node的管理
  • namespace隔离机制
  • k8s集群日志管理
  • k8s集群监控

k8s二次开发与k8s API

  • RESTful接口
  • API聚合机制
  • API组
  • Go访问k8s API

7、性能分析专栏

(一)性能与测试工具

测试框架gtest以及内存泄漏检测

  • goog letest与goog lemock文件
  • 函数检测以及类测试
  • test fixture测试夹具
  • 类型参数化
  • 事件测试
  • 内存泄漏
  • 设置期望,期待参数,调用次数,满足期望

性能工具与性能分析

  • MySQL性能测试工具mysqlslap
  • Redis性能测试工具redis-benchmark
  • http性能测试工具wrk
  • Tcp性能测试工具TCPBenchmarks
  • 磁盘,内存,网络性能分析

火焰图的生成原理与构建方式

  • 火焰图工具讲解
  • 火焰图使用场景与原理
  • nginx动态火焰图
  • MySQL火焰图
  • Redis火焰图

(二)观测技术bpf与ebpf

bpftrace的实现原理

  • 跟踪,嗅探,采样,可观测的理解
  • 动态hook : kprobe/uprobe
  • 静态hook : tracepoint和USDT
  • cpu的观测taskset的使用

bpf对tcp请求的监控(项目)

  • bpf对网络流量的统计
  • 网络观测tcp _connect, tcp_accept,tcp _close
  • tcp_v4_ _connect与tp_v6 connect的探测点
  • struct sock的五元获取

bpf实现对goroutine的探测(项目)

  • go webserver的实现
  • uprobe应用层挂载点
  • bpf的ringbuffer原理

bpf探测java的垃圾回收(项目)

  • 运行时进程maps /proc/pid/maps
  • libjvm.so信息
  • bpf的usdt的使用
  • java gc的耗时

(三)内核源码机制

进程调度机制哪些事儿

  • qemu调试内存
  • 进程调度cfs与 其他的四个调度类
  • task_ struct结构体
  • RCU机制与内存优化屏障

内核内存管理运行机制

  • 虚拟内存地址布局
  • SMP/NUMA模型
  • 页表与页表缓存原理
  • 伙伴系统实现
  • 块分配(SIab/SIub/Slob) 原理实现
  • brk/kmalloc/vmalloc系统调用流程

文件系统组件

  • 虚拟文件系统vfs
  • Proc文件系统
  • super_ _block与 inode结构体
  • 文件描述符与挂载流程

8、分布式架构

(一)分布式数据库

不一样的kv存储RocksDB的使用场景

  • 前缀搜索
  • 低优先级写入
  • 生存时间的支持
  • Transact i ons
  • 快照存储
  • 日志结构的数据库引擎

TiDB存储引擎的原理

  • TiKV的Key-Value存储引擎
  • 基于RBAC的权限管理
  • 数据加密

TiDB集群方案与Replication原理

  • 集群三个组件 TiDB Server, PD Server, TiKV Server
  • Raft协议讲解
  • OLTP与0LAP

(二)分布式文件系统

内核级支持的分布式存储Ceph

  • ceph的集群部署
  • monitor与OSD
  • ceph 5个核心组件
  • ceph集群监控
  • ceph性能调调优与benchmark

分布式ceph存储集群部署

  • 同步机制
  • 线性扩容
  • 如何实现高可用
  • 负载均衡

(三)分布式协同

注册服务中心Etcd

  • etcd配置服务、服务发现、集群监控、leader选举、 分布式锁
  • etcd体系结构详解(gRPC, WAL,Snapshot、 BoItDB、 Raft)
  • etcd存储原理深入剖析(B树、B+树)
  • etcd读写机制以及事务的acid特性分析
  • raft共识算法详解(leader选举+日志复制)

协同事件用户态文件系统fuse

  • fuse的使用场景
  • 文件系统读写事件
  • fuse的实现原 理
  • /dev/fuse的 作用

快播核心技术揭秘P2P框架的实现

  • 网关NAT表分析
  • NAT类型,完全锥型NAT,对称NAT,端口限制锥形NAT,IP限制锥型NAT
  • 代码逻辑实现NAT类型检测
  • 网络穿透的原理
  • 网络穿透的3种情况

(三)分布式监控Prometheus

Prometheus监控系统

  • 数据模型: Metric、Time Series、Sample和label
  • 指标类型 : Counter、Gauge、Histogram、Summary
  • 采集规则和警告规则
  • PromQL查询语言

Prometheus对MySQL/Redis的监控

  • Mysql Redis Exporter安装配置
  • go实现自定义应用程序指标
  • PromQL计算Mysq|、 Redis性能指标
  • Prometheus数据远程存储

Prometheus数据采集

  • 6种采集点配置方式
  • 动态重写目标采集点
  • Grafana可视化监控仪表盘

Prometheus构建企微与邮件的状态告警

  • 邮件和企微的接入
  • Alertmanager配置 与容器化运行
  • 警告信息的分组

九、实战项目

一、分布式kvstore(基础架构开发方向)

1 kv存储的架构设计

  • 存储节点定义
  • tcp server/client
  • hash数据存储
  • list数据存储
  • skiptable数据存储
  • rbtree数据存储

2 网络同步与事务序列化

  • 序列化与反序列化格式
  • 建立事务与释放事务
  • 线程安全的处理

3 内存池的使用与LRU的实现

  • 大块与小块分配策略
  • 内存回收机制
  • 数据持久化

4 KV存储的性能测试

  • 网络测试tps
  • 吞吐量测试
  • go, lua, java多语言支持
  • hash/I ist/skiptable/rbtree测试

二、zrpc的实现(基础架构开发方向)

1 rpc使用场景与架构设计

  • 分布式核心调度业务
  • 网络与业务分离
  • 网络选型reactor, 协程,io_ uring

2 rpc的协议与序列化

  • json定义函数
  • 数据序列化
  • rpc处理流程
  • rpc的内存池的特性

3 rpc代码自动生成器的实现

  • 调用接口模式统一化
  • float与double调用的差异
  • 第三方语言的支持
  • 性能测试与业务上线

三、DPDK的数据包测试仪(网络开发方向)

1 测试仪架构设计与使用场景

  • 使用场景与测试方案
  • 多核与多线程亲缘性
  • 测试仪使用的命令行参数

2 协议流组织

  • arp数据组织
  • udp数据包
  • top的syn, rst, fin, ack包
  • icmp协议组织

3 异常情况与测试标准

  • 异常命令行参数的处理
  • 异常网络数据包的处理
  • cpu与内存不足的异常处理

四、openresty的zv_waf的实现(网关防火墙开发)

1 WAF 基础架构与 IP/URL 防御

  • OpenResty 与WAF架构设计
  • IP黑白名单实现
  • URL 基础过滤
  • 日志记录与监控

2 WAF 请求头与基础参数防御

  • User-Agent 智能识别
  • Referer 可信来源验证
  • Cookie 基础过滤
  • HTTP 方法限制

3 WAF CC攻击防护与请求频率控制

  • CC攻击原理与防御策略
  • 人机验证联动机制
  • IP动态好禁与放行
  • CC防护

4 WAF 深度参数过滤与SOL注入/XSS防御

  • Query参数过滤
  • POST数据过滤
  • SQL注入过滤
  • XSS 攻击防御

五、qemu的virtio/vhost虚拟化实现(虚拟化开发)

1 virtio与vhost的工作原理

  • vhost与qemu通信协议
  • vhost通信协议解析get features
  • vhost/virtio通信与reovmsg的作用

2 virtio设备模型实现

  • virtio的setmem与vring的设置
  • gpa.gva.hva.hpa之间的关系
  • ifreq的tap/tun创建

3 vhost的性能优化与多队列网卡

  • vring的物理内存与虚拟内存决射
  • 多队列网卡实现
  • vhost用户空间后端开发
  • vhost/virtio的总结

六、SPDK助力MySQL数据落盘,让性能腾飞 (存储方向)

1 SPDK文件系统设计与实现

  • NVMe与PCle的原理
  • NVMe Controller 与bdev之间的rpc
  • blobstore与blob的关系

2 文件系统的posix api实现

  • 4层结构设计vfs
  • spdk的异步改造posix同步api
  • open/wr ite/read/c lose的实现

3 文件系统的性能测试与承接mysq|业务

  • LD_ PRELOAD更 好mysql系统调用实现
  • iodepth讲解
  • 随机读,随机写,顺序读,顺序写

七、魔兽世界后端TrinityCore(游戏方向)

1 TrinityCore开发调试环境安装

  • linux开发调试环境安装
  • windows开发调试环境安装
  • SRP-6登录协议介绍
  • 基于openresty实现web注册服务

2 TrinityCore 中高性能基础组件应用

  • to高性能定时器方案设计
  • to线程模型以及锁、无锁队列应用
  • 数据库连接池设计
  • 日志库的设计

3 TrinityCore 高性能网络模块设计

  • boost. asio跨平台网络库
  • boost. asio核心命名空间以及异步io接口
  • boost. asio在to中的封装
  • 网络库应用实践

4 TrinityCore 游戏技能模块设计

  • 技能模块设计
  • 技术配置以及数据库表设计
  • 技能模块组成部分
  • 技能生成、处理以及生命周期管理
  • 暴风雪、背利等技能实现详解

5 游戏AI模块设计

  • Al模块实现层次
  • Al模块三种细分方向以及选择
  • 固定Al设计实现以及幼狼AI案例讲解
  • 脚本Al设计实现以及BossAl案例讲解

6 游戏副本模块设计

  • 副本模块:管理、匹配、积分结算逻辑实现
  • 副本模块实现的抽象,层次
  • 战歌峡谷副本实现
  • 阿拉希盆地副本实现

八、网络数据包过滤firewall(网络安全方向)

1 firewall内核空间netfilter架构设计

  • 内核空间设计与实现分析
  • 设计数据包传递参数值
  • 封装端口及IP规则类型
  • 设计检测规则/IP/协议函数

2 firewall内核空间架构实现

  • 检测规则/IP/协议函数实现
  • 检查权限及规则函数实现
  • 数据包出入站过滤器实现
  • 读写规则/检查规则匹配实现
  • 删除规则/模块加载和知裁

3 firewall用户空间架构设计

  • 用户空间设计与实现分析
  • 设计数据包传递参与宏
  • 封装端口及|P规则类型

4 firewall 应用程序调试与上线

  • Hook入口函数设计与实现
  • IP/掩码/端口函教实现
  • 协议类型/解析/删除规则
  • 用户层访问及bug处理
  • 用户程序测试及调试技巧

九、BPF网络数据包探测器(网关开发方向)

1 监控探测仪的场景与架构设计

  • bpf.c实现tcp数据包探测
  • bpf.c解析tcp与http
  • 内核与应用层的通信数据格式

2 tc数据流记录存储

  • kv存储构建发送与按收的key-value
  • http请求实现集中式存储
  • 数据流记录表关系

3 测试上线与前端显示

  • 内核与应用程序的通信测试
  • kv的存储测试
  • 数据流记录表的qps测试
  • 前端显示与上线

十、ROS+gazebo+TurtleBot3项目实践(自动驾驶与机器人方向)

1 ROS 基础认知与框架搭建

  • 一在Ubuntu 系统上安装 ROS 的详细步骤
  • 搭建 ROS 开发环境,配里工作空间
  • ROS 的基本命令行工具

2 TurtleBot3 初步操控

  • TurtlsBot3 的硬件连接与网络设置
  • 启动 TurtleBot3 及相关节点的方法
  • 使用键盘控制 TurtleBot3 运动的指令
  • 在RViz 中显示 TurtlsBot3 模型及运动状态

3 话题蘧信深入

  • 话题遗信的底层原理与数搭流向
  • 自定义控制消息类型及多字段含义
  • 实现从 PC 端到 TurtleBot3 的话题通信与运动指令传输
  • 运用 rostopic 工具进行指令消息监测与分析

4 服务与参数管理

  • 服务通信的架构设计与应用场景
  • 编写用于控制 TurtleBot3 运动的服务端和客户端代码
  • 参数服务器在设至 TurtleBot3 运动参数中的作用
  • 利用 rosservice 工具调用服务实现运动控制

5 导航基础与运动指令

  • 导航功能包中与运动控制的租件
  • 配至导航功能包以核受外部运动指令
  • 苏于导航功能包求送精确的运动指令(如真线、转弯)
  • 实现 TurtleBot3 楼预设路径运动的指令编写

6 高级运动控制与实践

  • 苏于传感器反情调整运动指令的策略
  • 实现 TurtleBot3 在复杂环境下(如避障、循迹》的运动指令逻择
  • 多 TurtleBot3 协同运动的指令规划与通信实现
  • 设计并实现一个基于指令控制的 TurtleBot3 应用场景

十一、图床共享云储存(云原生基础设施开发方向)

1 fastdfs架构分析和配置

  • fastdfs架构分析
  • 快递配查fastdfs
  • 上传文件逻辑分析
  • 下载文件逻辑分析;

2 文件传输和接口设计

  • 数据库设计
  • 图床接口设计
  • reactor网络模型构建
  • 注册/登录/我的文件功能实现

3 分布式fastdfs存储集群部署和HTTP上传

  • storage存储原理分析.
  • 上传下载原理
  • 实现文件上传功能
  • 相同文件内容只保存一份

4 图片分享和短链服务实现

  • 图片分享功能实现
  • 图片分享数据库设计
  • 长链转短链机制
  • Redis缓存优化

5 分布式FastDFS存储集群部署

  • FastDFS集群部署
  • FastDFS同步原理
  • binlog机制
  • 水平扩容
  • 图床功能查漏补缺

6 产品上云公网发布/测试用例

  • 使用云服务器的各种坑分析
  • postman模拟请求
  • wrk测试接口吞吐量
  • jmeter压力测试

十二、分布式推送系统项目实战(互联网产品项目)

1 项目框架分析和部署

  • 分布式推进系统架构
  • 话题聊天家落地
  • 后端服务部署
  • Web部署

2 注册/登录接口设计与实现

  • HTTP RESTful API原理
  • MySQL用户表设计
  • 注册密码加密
  • redis骏存token
  • 客户端缓存token

3 固定话题聊天实现

  • websocket迹接用户校验
  • 话题/用户映射表结构设计
  • 聊天发布到服务器
  • redis缓存房间在线人员
  • 服务器广播新消息

4 聊天记录拉取设计与实现

  • MySQL消息表设计
  • 聊天消息存储
  • 分页拉取聊天消息
  • 鉴录自动拉取最新消息
  • 黑名单实现

5 自定义话题聊天实现

  • MySQL话题表设计
  • 管理员创建聊天话题
  • HTTP拉取所有话题
  • 用户自动加入新话题
  • 用户退出话题

6 单机->分布式架构改进

  • kafka队列削峰
  • Erpc远程调用
  • etcd注册和发现服务
  • job模块
  • nginx负载均衡

7 产品上云发布和性能测试

  • 使用云服务器要点
  • 测试接口性能
  • 数据库素引优化
  • 面试要点总结

十三、k8s二开内网穿透Tunnel(运维部署开发)

1 系统设计以及frp开源项目

  • 项目背景与需求分析
  • 系统设计与数据库设计
  • frp TCPMUX代理与httpconnect复用器
  • frp ssh、http、https 内网穿造
  • frp AuthServerConfig token签权

2 应用管理与应用配置

  • ssh、http、https等类型的应用维护
  • 应用程序端口分配以及配至生成
  • 导出应用配置为yaml格式的配亚文件

3 go客户端实现Kubernetes集群应用部署与更新

  • go客户端追接Kubernetes api server
  • Eo客户端创建配置资源ConfigMap
  • 80苏户端创建部署资源Deployment
  • 20客户端创建服务资源Service

4 vite/vue/elementUI实现前端页面

  • Vue组件化开发与ElementUI
  • Typescript的interface的应用
  • axios实例与拦救器
  • get与post请求好装
  • 配置文件与api词用

5 自动化域名解析与Kubernetes 集群部署tunnel服务

  • 自动化域名解析与域名备注
  • 服务的部景与案户端配置的返回
  • Tunnel服务的容器化部是与更新
  • Tunnel客户端配置部署Tunnel客户端程序
  • certbot 生成通配将证书用于Tunnel应用

十四、零声教学Ai助手一代(AI部署落地开发方向)

1 AI助手架构设计与需求分析

  • chatgpt的构想与需求分析
  • 基于开源项目初步构建项目
  • gin框架实现代理服务

2 接口功能设计

  • grpc与protobu的使用流程
  • token计数器 与tokenizer的服务封装
  • 敏感词识别服务

3 向量数据库与连接池设计

  • redis实现上下文管理
  • 问题记录保存
  • web端协议解析
  • OneBot协议

4 服务部署上线

  • docker stack服务部署
  • wrk接C吞吐量测试
  • 线上节点监控

十五、Linux嵌入式多路监控系统项目实战(基于RV1126)

1 Linux嵌入式多路监控系统项目架构分析和部署

  • 嵌入式多路监控架构分析
  • rv1126部署监控程序
  • 部署C++后端服务器
  • 部署web远程查看实时自击

2 快速掌道Linux驱动开发

  • Linux嵌入式系统架构
  • Linux字符驱动设备
  • Linux块设备驱动
  • 虚拟内存和物理内存决射
  • i2c驱动实战

3 Linux并发和设备材

  • 中断/自旋锁/互斥量
  • 阻塞/非阻塞
  • 异步通知和异步I/O
  • 设备树的特点和组成
  • 设备树语法和节点解析

4 alsa驱动源码分析和应用实践

  • alsa框架分析
  • alsa audio接寸
  • alsa 控制接口
  • alsa采集pom实战
  • aac音频编码

5 v412驱动源码分析和应用实践

  • v412架构分析
  • v412_device
  • vidso_device
  • v412来集yuv实战
  • yuv h264硬件编码

6 RTMP实时推流

  • ffmepg7.1裁剪和交叉编译
  • 采集/编码/推流时间戳转换
  • 推流队列设计
  • 推流音视频同步机制
  • 处理服务器实时任务

相关文章:

从基础到实习项目:C++后端开发学习指南

在当今技术快速迭代的背景下,后端开发作为软件工程的核心支柱持续发挥着关键作用。C凭借其卓越的性能表现和系统级控制能力,依然是构建高性能后端服务的首选语言之一。本文将系统性地解析现代C后端开发的核心技术体系,包括从语言特性精要到架…...

jedis+redis pipeline诡异的链接损坏、数据读取异常问题解决

文章目录 问题现象栈溢出(不断的重连)读取超时未知响应尝试读取损坏的链接读取到的数据和自己要读的无关,导致空指针、类型转换错误,数据读取错乱 问题写法问题分析修复注意点 问题现象 栈溢出(不断的重连&#xff09…...

十、HQL:排序、联合与 CTE 高级查询

作者:IvanCodes 日期:2025年5月15日 专栏:Hive教程 Apache Hive 作为大数据领域主流的数据仓库解决方案,其查询语言 HQL (Hive Query Language) 是数据分析师和工程师日常工作的核心。除了基础的 SELECT-FROM-WHERE,HQ…...

数据结构—排序(斐波那契数列,冒泡,选择,插入,快速,归并,图,广度优先算法)

目录 一 斐波那契数列(递归算法) 定义 原理 二 冒泡排序 定义 排序思路 函数原型 参数详解: 算法分析: 1. 使用函数库的qsort函数 2. 自定义冒泡排序 三 选择排序 定义 排序思路 四 插入排序 定义 排序思路 五 快速…...

NetSuite CSV导入Item Fulfillment的功能测试

上一篇我们说过如何通过CSV导入更新IF上的Department/Class信息,这篇是来测试一下如果SO在Pending Fulfillment的状态下通过CSV导入IF,这个新版本的一个功能,刚好将测试的过程与结果与大家分享~ 准备文件 External ID是外部ID; …...

网络原理 | 网络基础概念复习

目录 网络中的重要概念 IP地址 端口号 协议 五元组 协议分层 OSI七层网络模型 TCP/IP 五层(四层)模型 网络设备所在的分层 封装和分用 网络中的重要概念 IP地址 IP地址主要用于标识网络主机、其他网络设备的网络地址。在网络数据传输中&#…...

Vsan数据恢复——Vsan上虚拟机不可用,虚拟机组件信息破坏的数据恢复

Vsan数据恢复环境: 一台采用VsSAN分布式文件系统的存储设备由于未知原因关机重启。管理员发现上层的虚拟机不可用,存储内的数据丢失。 Vsan数据恢复过程: 1、将故障存储设备断电,将存储内的硬盘编号后取出。硬件工程师检测后没有发…...

V837s-LAN8720A网口phy芯片调试

目录 前言 一、LAN8720A 芯片概述 二、硬件连接 三、设备树配置 四、内核配置 五、网口调试 总结 前言 在嵌入式系统开发中,网络连接是至关重要的一部分。v837s开发板搭载了LAN8720A系列的网口PHY芯片,用于实现以太网连接。在开发过程中,对于网口的稳定性和性能的调试至…...

C++(12):using声明

目录 一、定义 二、核心用法示例 示例 1:单独引入 std::string 和 std::coun 示例 2:在局部作用域中使用 using 声明 三、对比 using namespace std(不推荐) 四、关键注意事项 1. 名称冲突问题 2. 作用域规则 3. 头文件中的陷阱 五、最佳实践总结 六、完整安全示…...

Xinference 命令大全:从模型部署到管理

Xinference 是一个高性能、分布式的模型推理框架,支持多种大语言模型(LLM)、嵌入模型(Embedding)和图像生成模型。本文将详细介绍 Xinference 的常用命令,涵盖模型启动、管理、监控及 API 调用,帮助你快速掌握其核心功能。 1. 安装与启动 Xinference 1.1 安装 Xinferen…...

如何在线免费压缩PDF文档?

PDF文件太大,通常是因为内部嵌入字体和图片。怎么才能将文件大小减减肥呢,主要有降低图片清晰度和去除相关字体两个方向来实现文档效果。接下来介绍三个免费压缩PDF实用工具。 (一)iLoveOFD在线转换工具 iLoveOFD在线转换工具&a…...

在Rocky Linux 9.5上部署MongoDB 8.0.9:从安装到认证的完整指南

mongodb 的部署 #安装依赖 yum -y install libcurl openssl #安装mongodb yum -y install https://repo.mongodb.org/yum/redhat/9/mongodb-org/8.0/x86_64/RPMS/mongodb-org-server-8.0.9-1.el9.x86_64.rpm #启动服务 systemctl start mongod.service && system…...

Unix Bourne Shell

本文来源 : 腾讯元宝 Unix Bourne Shell(简称sh)是Unix系统中最经典的命令行解释器(shell),由Stephen Bourne于1977年在贝尔实验室开发,并成为后续众多shell(如bash、ksh等&#xff…...

如何在 AWS 上构建支持 AVIF 的前端图片优化方案

一、为什么使用 AVIF 图片格式? 优势点 说明 高压缩率 在相似质量下,AVIF 文件比 JPEG/PNG/WebP 更小,能有效节省带宽和存储空间。 更高画质 即使在低码率下也能保持清晰细节,减少压缩带来的马赛克或模糊问题。 支持透明度 …...

Linux系统进行环境开发环境配置

一. 使用fishros(鱼香肉丝)配置开发环境 对于初学者来说,最难的关卡莫非是开发环境的的搭建,特别是在Ubuntu系统上ROS系统安装时后出现的各种报错以及失败,本篇博客讲述了ROS系统的一键安装过程,适用于18.04及以后的Ubuntu系统版本…...

前端npm的核心作用与使用详解

一、npm是什么? npm(Node Package Manager) 是 Node.js 的默认包管理工具,也是全球最大的开源代码库生态系统。虽然它最初是为 Node.js 后端服务设计的,但如今在前端开发中已成为不可或缺的基础设施。通过npm,开发者可以轻松安装、管理和共享代码模块。 特性: 依赖管理…...

软考软件评测师——软件工程之系统维护

一、系统质量属性 可维护性 衡量软件系统适应修改的难易程度,包括修复缺陷、扩展功能或调整规模的效率。计算公式为:系统可用时间占比 1/(1平均修复时间),其中平均修复时间(MTTR)指排除故障所需的平均耗时。 可靠性 vs 可用性 可靠性&…...

CSRF攻击 + 观测iframe加载时间利用时间响应差异侧信道攻击 -- reelfreaks DefCamp 2024

参考: https://0x90r00t.com/2024/09/30/3708/ 题目信息 有些事情最好还是保持低调。当然,除非你是个真正的怪胎。 注意:该网站通过HTTPS提供服务 标志格式:DCTF{}题目实现了一个类似视频网站的东西 在其提供的数据库中…...

火山RTC 8 SDK集成进项目中

一、SDK 集成预备工作 1、SDK下载 https://www.volcengine.com/docs/6348/75707 2、解压后 3、放在自己项目中的位置 1)、include 2)、lib 3)、dll 暂时,只需要VolcEngineRTC.dll RTCFFmpeg.dll openh264-4.dll, 放在intLive2…...

spring boot Controller 和 RestController 的区别

spring boot Controller 和 RestController 的区别 5.3.1常用注解 Spring MVC控制器中常使用的注解有如下几种。 Controller Controller 标记在类上。使用Controller 标记的类表示是Spring MVC的Controller对象。分发处理器将会扫描使用了该注解的类,并检测其中的…...

mavgenerate 在 win11 下环境搭建注意问题

开发随笔 mavgenerate 是mavlink配套的协议生成工具,mavgenerate 在 win11 下环境搭建注意问题: 1、Python 就使用文件包当中的版本,由于python 版本能与 future 及 pip 之间存在特定的组合关系,故不推荐下载使用最新版本 2、安…...

SSM项目集成redis、Linux服务器安装redis

在SSM(Spring Spring MVC MyBatis)项目中引入Redis主要分为以下步骤,确保配置正确并能在业务中灵活使用: 1. 添加Redis依赖​​ 在Maven的pom.xml中添加Spring Data Redis和Jedis(或Lettuce)依赖&#…...

sqli-labs靶场第七关——文件导出注入

一:目标 通过sql注入将php代码写入网站目录,通过这个php文件执行命令 二:确认前置条件 %secure_file_priv% 首先我们需要Mysql是否允许导出文件 先尝试在网页中sql注入,检查导出权限 ?id1)) union select 1,secure_file_pr…...

python使用matplotlib无法显示中文字体报错

python使用matplotlib字体报错 当我们使用python使用matplotlib总是出现报错,图片中文变成方框 findfont: Font family WenQuanYi Micro Hei not found. findfont: Font family Heiti TC not found. findfont: Font family [SimHei] not found. Falling back to De…...

VTEP是什么

VTEP(VXLAN Tunnel Endpoint,VXLAN 隧道端点)是 VXLAN(Virtual Extensible LAN)网络中的关键组件,用于处理 VXLAN 流量的封装和解封装。以下以可读的 Markdown 格式详细解释 VTEP 的定义、功能、实现方式以…...

React Native简介

React Native 是由 Meta(原 Facebook)开源的跨平台移动应用开发框架,基于 React 和 JavaScript,允许开发者使用同一套代码库构建 iOS 和 Android 原生应用。通过 JavaScript 调用原生组件实现高性能渲染。 跨平台开发 共享 80%-9…...

边缘计算模块

本文来源 :腾讯元宝 边缘计算模块是一种部署在网络边缘(靠近数据源)的集成化硬件/软件设备,用于实时处理本地数据,减少云端依赖,提升响应速度与安全性。以下是其核心要点: ​​1. 核心组成​​ …...

策略模式-枚举实现

策略模式的实现方法有很多,可以通过策略类if,else实现。下面是用枚举类实现策略模式的方法。 定义一个枚举类,枚举类有抽象方法,每个枚举都实现抽象方法。这个策略,实现方法是工具类的很实现,代码简单好理解 枚举实现…...

C++算法(22):二维数组参数传递,从内存模型到高效实践

引言 在C程序设计中,二维数组的参数传递是许多开发者面临的棘手问题。不同于一维数组的相对简单性,二维数组在内存结构、类型系统和参数传递机制上都存在独特特性。本文将深入探讨静态数组、动态数组以及STL容器三种实现方式,通过底层原理分…...

LeetCode LCR 015. 找到字符串中所有字母异位词 (Java)

LCR 015. 找到字符串中所有字母异位词 题目描述 给定两个字符串 s 和 p,要求找到 s 中所有是 p 的变位词(字母相同但排列不同)的子串,并返回这些子串的起始索引。例如: 输入 s "cbaebabacd", p "a…...

幼儿学前教育答辩词答辩技巧问题答辩自述稿

### 📘《幼儿园大班活动开展存在的问题及解决策略》📝 我的论文题目是《幼儿园大班活动开展存在的问题及解决策略》📖。我将从论文框架、研究内容、需要解决的问题、研究结论这四部分来阐述我的论文📝。 论文框架由绪论&#x1f4…...

双目立体视觉

文章目录 1,前言2,原理3,组成部分3.1,数字图像采集。3.2 ,相机标定。3.3,图像预处理与特征提取。3.4 ,图像校正。3.5 ,立体匹配。3.6 ,三维重建。 4,主要的算…...

机器人弧焊二八混合气体节约

焊接技术在现代工业生产中作为关键环节之一,其效率和成本直接影响到整个制造流程的经济性与环保性。近年来,随着节能减排理念深入人心,各行业都在积极探索绿色制造方案。在焊接领域,二八混合气体的应用结合WGFACS智能流量调节系统…...

Linux进程通讯和原子性

在Linux系统中,进程间通信(IPC)和原子性是并发编程中的核心问题。以下是对这些概念的详细分步解释: 一、进程间通信(IPC)方法 1. 管道(Pipe) 匿名管道:用于父子进程等有…...

深度学习之用CelebA_Spoof数据集搭建一个活体检测-一些模型训练中的改动带来的改善

实验背景 在前面的深度学习之用CelebA_Spoof数据集搭建一个活体检测-模型搭建和训练,我们基于CelebA_Spoof数据集构建了一个用SqueezeNe框架进行训练的活体2D模型,采用了蒸馏法进行了一些简单的工作。在前面提供的训练参数中,主要用了以下几…...

Oracle APEX IR报表列宽调整

1. 问题:如何调整Oracle APEX IR报表列宽 1-1. 防止因标题长而数据短,导致标题行的文字都立起来了,不好看。 1-2. 防止因数据太长而且中间还没有空格,把列撑开的太宽也不换行,不好看。 2. 解决办法 针对如上问题解…...

6大核心记忆方法

以下是结合脑科学原理和高效学习策略总结的 6大核心记忆方法,帮助你摆脱“学完就忘”的困境: 一、间隔重复与分散学习 遵循艾宾浩斯遗忘曲线:学习后20分钟遗忘58%,1天后遗忘66%。通过设定复习节点(如学后1天、3天、1周…...

conda更换清华源

1、概览 anaconda更换速度更快、更稳定的下载源,在linux环境测试通过。 2、conda源查看 在修改之前可以查看下现有conda源是什么,查看conda配置信息,如下: cat ~/.condarc 可以看到你的conda源,以我的conda源举例&am…...

5月15日星期四今日早报简报微语报早读

5月15日星期四,农历四月十八,早报#微语早读。 1、中国至越南河内国际道路运输线路正式开通; 2、免签国1,中乌(兹别克斯坦)互免签证协定6月生效; 3、杭州“放大招”支持足球发展:足…...

网络损伤仪功能介绍与应用场景剖析

以下是关于 网络损伤仪(Network Impairment Emulator) 的核心功能介绍及其应用场景的详细说明: 一、网络损伤仪的核心功能 带宽限制(Bandwidth Throttling) 模拟不同网络带宽(如从1Mbps到10Gbps&#xff09…...

超时检测机制和心跳包机制(Heartbeat)

一、超时检测机制 1. I/O 函数超时设置 1.1 select/poll/epoll 的超时参数 select c struct timeval timeout {3, 0}; // 3秒超时 int n select(maxfd1, &readfds, NULL, NULL, &timeout); if (n 0) printf("select timeout\n"); // 超时无事件poll c …...

经典卷积神经网络

目录 经典卷积神经网络 一、卷积神经网络基础回顾 二、LeNet:开启 CNN 先河 三、AlexNet:突破性进展 四、ZFNet:继承与优化 五、GoogLeNet:引入 Inception 模块 六、VggNet:深度与简单结构的融合 七、ResNet&a…...

Reactor模型详解与C++实现

Reactor模型详解与C实现 一、Reactor模型核心思想 Reactor模式是一种事件驱动的并发处理模型,核心通过同步I/O多路复用实现对多个I/O源的监听,当有事件触发时,派发给对应处理器进行非阻塞处理。 关键特征: 非阻塞I/O&#xff…...

观测云产品更新 | 安全监测、事件中心、仪表板AI智能分析等

观测云更新 安全监测 新增 SIEM 功能模块:实时分析企业各类系统(如服务器、应用、网络设备)的日志和事件数据,自动发现潜在威胁,帮助团队迅速定位异常,充分发挥安全监控中枢的作用。 注意:目…...

【HTML】个人博客页面

目录 页面视图​编辑 页面代码 解释&#xff1a; HTML (<body>): 使用了更加语义化的HTML5标签&#xff0c;例如<header>, <main>, <article>, <footer>。文章列表使用了<article>包裹&#xff0c;结构清晰。添加了分页导航。使用了Font…...

OrangePi Zero 3学习笔记(Android篇)10 - SPI和从设备

目录 1. 配置内核 2. 修改设备数 3. 修改权限 4. 验证 Zero 3的板子有2个SPI Master接口&#xff0c;其中SPI0接的是板载16MB大小的SPI Nor Flash&#xff0c;SPI1则是导出到26pin的接口上。 spi和i2c有点不同&#xff0c;spi是直接生成spi虚拟设备&#xff0c;所以在dev里…...

《Java 大视界——Java 大数据在智能电网分布式能源协同调度中的应用与挑战》

随着风电、光伏等分布式能源大规模接入电网&#xff0c;传统调度系统面临数据规模激增、响应延迟显著、多源异构数据融合困难等核心问题。本文聚焦Java生态下的大数据技术体系&#xff0c;深入探讨其在智能电网实时监测、负荷预测、资源优化配置等场景中的落地实践。通过分析Sp…...

基于正点原子探索者开发板的简易音乐播放器

1、概述 本次实验的名称叫做“基于正点原子探索者开发板的简易音乐播放器”。本实验的功能框图如下&#xff1a; 从图上我们可以清晰的看到本实验所需的实现的功能、以及每个功能需要怎么实现。 这次实验使用的是正点原子的探索者开发板&#xff0c;此开发板采用的MCU是STM32F4…...

【CF】Day59——Codeforces Round 914 (Div. 2) D

D. Set To Max 题目&#xff1a; Easy 思路&#xff1a; 简单题 由于题目的数据给的很小&#xff0c;所以我们可以用 n 的复杂度过&#xff0c;那我们来观察一下我们应该怎么操作 显然&#xff0c;如果 a[i] > b[i] 时是无法构造的&#xff0c;同时 a[i] b[i] 时就不用管…...

【Linux专栏】Linux进程间关系和守护进程

文章目录 1、进程间关系1.1 进程组1.2 组长进程 2、会话&#xff1f;2.1 查看会话2.2 创建会话 3、控制终端4、作业控制4.1 前台/后台进程 5、守护进程5.1 如何创建守护进程&#xff1f;5.2 杀掉守护进程 1、进程间关系 主要描述两个名称概念&#xff1a;即进程组和组长进程。…...