Posts

hi, 大家好,我是 haohognfan。 可能你看过的 interface 剖析的文章比较多了,这些文章基本都是从汇编角度分析类型转换或者动态转发。不过随着 Go 版本升级,对应的 Go 汇编也发生了巨大的变化,如果单从汇编角度去分析 interface 变的非常有难度,本篇文章我会从内度分配+汇编角度切入 interface,去了解 interface 的原理。 限于篇幅 interface 有关动态转发和反射的内容,请关注后续的文章。本篇文章主
2021-08-10
4分钟阅读时长
为什么突然发了一篇这样的文章呢? 了解我的人都知道,我很鄙视语言歧视链,因为我不只写 Go,我同样也在写 PHP,而且还写过三年的 C++,同样也搞过 Python。但是我为什么以这个主题写一篇文章呢? 很简单,Go 源码分析文章暂时写不下去了,因为 Go 汇编我看不懂。。。 继续回到上面的话题:我为什么从 C++ 转到了 Go ? 为什么选择 C++ ? 我本科毕业那会,Java 还没有那么卷,
2021-07-10
3分钟阅读时长
本篇文章罗列一些开发业务时遇到的那些坑。 微服务银弹 当前的市面上各种微服务,DDD的课收割了一波又一波的韭菜,有同学听完了课就要迫不及待的尝试一下。学习新知识的动力当然值得肯定,但是具体落地需要根据公司实际场景来。 某前同事找我咨询架构相关的事情,跟他一番交流让我彻底无语了。 这是他们公司 JAVA 架构师落地的方案(2个开发,其中一个还是架构师,真是闹)。姑且不
2021-06-30
5分钟阅读时长
Go timer 是如何被调度的? hi,大家好,我是 haohongfan。 本篇文章剖析下 Go 定时器的相关内容。定时器不管是业务开发,还是基础架构开发,都是绕不过去的存在,由此可见定时器的重要程度。 我们不管用 NewTimer, timer.After,还是 timer.AfterFun 来初始化一个 timer, 这个 timer 最终都会加入到一个全局 timer 堆中,由 Go runtime 统一管理。 全局的 timer 堆也经历过三个阶段的重要升级。 Go 1.9 版本之前,所有的计时
2021-06-27
6分钟阅读时长
hi, 大家好,我是 haohongfan。 sync.Pool 应该是 Go 里面明星级别的数据结构,有很多优秀的文章都在介绍这个结构,本篇文章简单剖析下 sync.Pool。不过说实话 sync.Pool 并不是我们日常开发中使用频率很高的的并发原语。 尽管用的频率很低,但是不可否认的是 sync.Pool 确实是 Go 的杀手锏,合理使用 sync.Pool 会让我们的程序性能飙升。本篇文章会从使用方式,源码剖析,运用场景等方面,让你对 sync.Pool 有一个
2021-04-01
5分钟阅读时长