背景 golang 正常的 struct 就是普通的一个内存块,必定是占用一小块内存的,并且结构体的大小是要经过边界,长度的对齐的,但是“空结构体”是不占内存的,siz
[toc] Go 为什么没有判断 close 的接口? 相信大家初学 golang chan 的时候应该都遇到过 “send on closed channel” 的 panic 。这个 panic 是当你意图往一个已经 close 的 channel 里面投递元素的时候触发。那么你当
chan 是 golang 的最重要的一个结构,是区别于其他高级语言的最重要的特色之一,也是 goroutine 通信必须要的要素之一。很多人用它,但是很少人彻底理解过它,甚至 c <- x
如何列举桶中对象 云存储服务对业务提供基础的数据上传、下载能力,以简单易用作为重点,但有些时候,我们有列举需求。列举是什么意思?比如我们往一个
分享一个细节语义问题引发的思考。关于 Golang Read,ReadAt 这两个接口,不知道大家有没有仔细品过这两个接口的区别。golang 里面有两个关于
Minio 为什么没有 POST 上传接口? Minio 是著名的开源的 S3 存储项目,实现了完整的 S3 协议。仔细看了下实现,会发现 Minio 没有实现 PostObject 的接口?为什么? Minio 实现的完整对象 S3
更好的单测姿势 对于一个正式的项目来讲,单元测试非常重要,python 的单元测试也很简单,标准库提供了 unittest ,并且这个库非常强大,也非常重,面向对
分享一个线上遇到的死锁问题,什么, golang 也会有死锁? 思路排查 Dump 堆栈很重要 线上某个环境发现 S3 上传请求卡住,请求不返回,卡了30分钟,长时间没有发现
分享对象存储和 CDN 联动的话题,一般来讲,公有云厂商提供对象存储的服务之外,还会附带一些增值服务,这些服务是适配不同的应用场景的。什么意思?对象
抢占调度 go 1.14 版本带来了一个非常重要的特性:异步抢占的调度模式。之前我们通过解释一个简单的协程调度原理(),并且实现协程调度例子都提到了一个点
之前阐述了 golang 垃圾回收通过保证三色不变式来保证回收的正确性,通过写屏障来实现业务赋值器和 gc 回收器正确的并发的逻辑。其中高概率的提到了“扫描队列
Bucket Bucket 是什么? 对象存储里面只有两个跟资源相关的名词:Bucket,Object。 Bucket 中文直译为”桶“,Object 显而易见就是”对象“。所有 Object 都