Xargin

If you don't keep moving, you'll quickly fall behind

Go 应用的性能优化

为什么要做优化 这是一个速度决定一切的年代,只要我们的生活还在继续数字化,线下的流程与系统就在持续向线上转移,在这个转移过程中,我们会碰到持续的性能问题。 互联网公司本质是将用户共通的行为流程进行了集中化管理,通过中心化的信息交换达到效率提升的目的,同时用规模效应降低了数据交换的成本。 用人话来讲,公司希望的是用尽量少的机器成本来赚取尽量多的利润。利润的提升与业务逻辑本身相关,与技术关系不大。而降低成本则是与业务无关,纯粹的技术话题。这里面最重要的主题就是“性能优化”。 如果业务的后端服务规模足够大,那么一个程序员通过优化帮公司节省的成本,或许就可以负担他十年的工资了。 优化的前置知识 从资源视角出发来对一台服务器进行审视的话,CPU、内存、磁盘与网络是后端服务最需要关注的四种资源类型。 对于计算密集型的程序来说,优化的主要精力会放在 CPU 上,要知道 CPU 基本的流水线概念,知道怎么样在使用少的

在业务系统中寻找技术含量

从进入互联网公司开始工作起,每个人都在问自己,CRUD 到底有什么技术含量? 别觉得 CRUD 只是业务工程师的问题,无论你在写什么程序,基本上都是在和数据打交道,除了读就是写。只不过读写的时候还会附带一些领域相关的行为。比如: 编译器:读文本,做 parse 网络程序:读连接,decode,encode,写连接 数据库:从磁盘上读,从内存里读,向磁盘里写,向内存里写 工程上,谁也没有权力鄙视谁,你觉得领域的技术含量高,只不过是领域内的工作做的人少罢了。不管门槛多么高的工程领域,只要工程师红利们蜂拥而至,总有一款内卷适合你。

一些 eink 设备

工程师是一个需要大量阅读的岗位,读书、读文档、读论文、读技术新闻,现在大部分电子设备都是 LCD 或 OLED 屏幕,对眼睛的伤害非常大。 因为行业的特殊原因,有时我们会一天花 13-15 小时使用各种电子设备,工作时间长的人很容易眼睛疲劳,严重的可能还会患上干眼症。 能够缓解这个问题的是市面上用户比较少的 eink 设备,比如 kindle: 目前 kindle 最新的设备是 oasis 3,7 寸屏幕 300 PPI,如果只做纯文字阅读,kindle

go mod 之痛

从 rsc 力排众议设计并将 go mod 集成在 Go 语言中,已经两年过去了,时至今日,广大 Gopher 还是经常被 go mod 相关的问题折磨。 本文会列举一些我和我的同事使用 go mod 时碰到的问题,有些问题是 go mod 本身的问题,有些可能是第三方 goproxy 实现的问题。 如果你做过比较大型的 go 项目开发,相信总会有那么几个让你会心一笑。 Go 命令的副作用

why do we need generics?

Go 社区之父早期提到过 less is more [https://en.wikipedia.org/wiki/Less_is_more] 的哲学,可惜社区里有不少人被带偏了。 每次 Go 增加语法上的新特性、新功能,就会有原教旨主义者跳出来扔出一句 less is more(或者也可能是大道至简),扬长而去,留下风中凌乱的你。 即使到了官方已经确定要增加泛型功能的 2020 年,依然有人煞有介事地写文章说为什么 go doesn't need