https://avatars.githubusercontent.com/u/36830265

源码分析——Go语言依赖注入库 samber/do

琢磨设计模式与抽象,可以说是我的最爱之一了。刚学 Go 的时候,我就陶醉于其的 interface 设计。

这次,我们来聊聊 Go 语言的依赖注入(DI)库 samber/do

本文不是一行行分析源码,而是尝试一步步复现作者的设计思路。

Go语言整体替换式Map的Lock-Free实现

今天来分享一个写业务过程中,一种特殊场景下的 Lock-Free Map 的实现。

来,我们先抛开看了三遍可能都还看不懂的题目,讲讲故事的背景。

背景/需求

假设我们需要一个用户黑名单,map[string]struct{}。其中,key 是用户的 idvalue 是一个空结构体,一个典型的 Set 实现,并且利用了 struct{} 占用空间为 0 的特性。

开源之夏2023申请书——优化CubeFS容器化部署

因为没确定的细节太多了,以及主要的精力放在了和 Mentor 沟通上。所以申请书写得很粗糙和仓促,后续有机会尽量再写个新版。

以下申请书正文:

一、课题背景与描述

1. CubeFS 简介

CubeFS是新一代云原生存储产品,目前是云原生计算基金会open in new window(CNCF)托管的孵化阶段开源项目, 兼容S3、POSIX、HDFS等多种访问协议,支持多副本与纠删码两种存储引擎,为用户提供多租户、 多AZ部署以及跨区域复制等多种特性,广泛应用于大数据、AI、容器平台、数据库、中间件存算分离、数据共享以及数据保护等场景。