相关分享
git submodule 与 subtree 的异同
很多团队在拆分大型 Git 仓库时,都会遇到 submodule 和 subtree 的选择问题。本文围绕两种方案的实际维护体验展开分析,而不是只停留在命令层面对比。
作者认为,submodule 更符合“仓库独立治理”的设计目标,适合需要清晰边界、独立版本管理和长期维护的大型项目;而 subtree 虽然使用门槛更低、clone 更方便,但容易造成代码冗余和仓库持续膨胀。
文章比较有价值的地方在于,它没有单纯强调“哪种更简单”,而是从架构治理、团队协作和长期维护成本角度讨论问题,适合已经进入中大型工程阶段的团队参考。
如果你正在做 monorepo 拆分、多仓库治理,或者维护复杂依赖关系,这篇文章值得一读。
Go协程池深度解析:原理、实现与最佳实践
文章系统解析 Go 协程池的实现原理和实践,包括为何需要协程池、基本实现方式、协程数设置依据及性能对比测试。示例代码演示如何手动构建协程池,并推荐三种高性能第三方库(如 ants、tunny)。适合进行高并发控制和资源管理优化的场景。
WebSocket协议详解与c++&c#实现 - 知然
这篇文章详细介绍了 WebSocket 协议的工作原理,包括握手过程、数据帧格式以及如何在 C++ 和 C# 中实现 WebSocket 通信。作者提供了一个轻量级的 WebSocket 解析库,特点是仅包含一个头文件、逻辑清晰且不依赖特定的网络接口,方便集成。此外,文章还提供了一个在线的 WebSocket 模拟客户端,便于测试和理解 WebSocket 的通信过程。
适合人群:对网络编程感兴趣的开发者,尤其是使用 C++ 或 C# 进行服务器开发,并希望深入理解 WebSocket 协议及其实现的工程师。
命令分发模式
文章介绍了命令调度器模式(Command Dispatcher Pattern)的应用,该模式能将命令和其对应的处理逻辑分离,提升代码的可扩展性和可维护性。作者展示了如何在项目中使用Rust实现这种设计模式,包括如何将不同的命令注册到调度器,并动态调用相应的命令处理程序。文章提供了具体的代码示例,帮助读者理解如何在实践中应用该模式来简化复杂的业务逻辑。
使用Rust捕获和解析网络包
这篇文章介绍了如何使用Rust编程语言捕获和解析网络包,以提取TCP时间戳并计算网络延迟。作者利用pcap库捕获网络包,并使用pdu库解析TCP选项中的时间戳信息,结合哈希映射存储五元组信息以计算往返时间。文中提供了代码示例,展示了在Mac系统上实现这一过程的步骤。
Memcached的存储原理解析
最近工作上的需要,需要做一个LRU形式管理内存的分配器,首先想到的就是Memcached这个项目。早些年粗略的看过一些,有个大体的了解,这一次看下来发现其LRU算法做了不少的改动。
对比脚本型和编译型游戏服务器的热更新方案
本文对比游戏服务器中C++搭配脚本语言(Lua、Python)以及纯编译型语言(C++、Golang)来进行开发时,进行线上服务器热更新的方案。
如何为 Git 配置多个 SSH Key
相信大家都会遇到这种场景,即一台电脑上同时存在多个 Git 账号的情况。譬如,公司的项目使用 Gitlab 托管,而个人的项目使用 Github 托管,更不必说,云效、Gitee、码云、Coding 等形形色色的平台。在这种情况下,你需要为每个代码托管平台生成 SSH Key,然后将其对应的公钥复制到指定的位置。所以,如何让这些不同托管平台的 SSH Key 和平共处、互不影响呢?这就是今天这篇文章想要分享的冷知识。当然,对博主个人而言,最主要的目的,还是希望能将公司和个人两个身份区分开来,所以,下面以 Github 和 Gitlab 为例来展示具体的配置过程。
解析Java动态代理机制的实现
代理模式主要是Proxy对原始方法做了一层包装,用以增加一些新的统一处理逻辑,来增强目标对象的功能。静态代理是传统设计模式中一种传统的实现方案,动态代理能将代理对象的创建延迟到程序运行阶段。
QUIC协议解析与DDoS攻击分析
QUIC(Quick UDP Internet Connections)协议是一种基于UDP的新型可靠传输协议,目前主要用于HTTP/3.0。近年来,现网中逐步发现了一些基于QUIC协议的DDoS攻击痕迹,并且友商也已经开始了关于QUIC协议的DDoS攻防相关研究。因此,ADS团队针对该协议进行了一系列的分析和实验,为相关的DDoS攻击防御技术研究打下基础。
