golang modules对git版本的依赖

这些年来,由于golang缺少依赖管理,社区涌现了五花八门的依赖管理方案,比如glide、govendor、godep等。而golang 自1.11起,内置了modules方案,总算是来了个一锤定音。

go modules方案的设计是非常好的,网上介绍go modules机制的文章很多,我这里也不再赘述。工作中写的一些golang项目,我都已经用上了该方案来做依赖管理。之所以这么快的拥抱新方案,是认为有google的背景,即使是新鲜出炉的功能,稳定性应该是有保证的,即使有坑,趟趟也就过去了。

但是在这个过程中,发现的一些问题让我对google软件工程质量的信心大打折扣。

openstack swift中的composite ring

openstack swift 在很早之前就有了 global clusters 的概念,给每一块磁盘赋予一个 region 的属性,在跨地域分布的集群里进行对象读写操作时,前端 proxy server 可以选择地缘近的后端存储服务来通信,进而达到低延迟和高吞吐的目的。具体配置见:Global Clusters

王小波和狄德罗

在《似水流年》里,王二曾经很想把肚子划破,掏出肠子挂到敌人脖子上去。

在和平年月里,生活只是挖坑种粮的竞争。虽然生的人高马大,我却比不过别人。这是因为:第一,我不是从小干惯了这种活计;第二,我有腰疼病,干农活没有腰不成。所以我盼望另一种竞争。在战场上,我的英勇会超过一切人。假如做了俘虏,我会偷偷捡块玻璃,把肚子划破,掏出肠子挂到敌人脖子上去。像我这样的兵员一定大为有用。但是不发生战争,我就像刘老先生一样没用。

在经历了一系列的变故后,他逐渐放弃了这个想法。

取名记

2017年底,我的生活有了一个很大的变化,妻子怀孕了。怀孕这个事情本身是在我们计划之中,所以只有喜没有惊,算是顺利如意。

我和妻子两人对生育小孩这个事情一直比较重视,为小朋友的到来提前做了很多准备。比如提前整整一年一起在一家拳馆练习拳击,事后证明,这个决定是非常正确的。另外一件比较重要的事情就是给小朋友取名字了。

其实在几年前,我就已经开始把取名这个事情放在心里了,源自于对身边很多亲戚朋友给小孩取名无意义化、趋同化的震惊。大数据统计显示,“轩”、“梓”、“子”、“涵”等字处于白热化的扎堆状态,我对此很难理解。

《如何阅读一本书》读书笔记

在几位前辈的推荐下,读完了由莫提默·J.艾德勒和查尔斯·范多伦合著的《如何阅读一本书》,受益良多。

如书名明示的那样,这是一本指导读者如何读书的书。时至今日,阅读的目标可以分为两种,一种是为获得资讯而阅读,另一种是为增进理解而阅读。这本书就是为希望从阅读中增进理解的读者而准备的。

在阅读一本书之前,我们或多或少对其有一些期许,认为作者有义务努力的把书写好。本书提出作为读者也有自己该履行的义务。书中有一个比喻,在一场阅读的过程中,作者与读者就像是棒球赛场中的一对投手和捕手。写作与阅读的东西就像那只球一样,是被主动、有活力的双方所共有的,由一方开始,另一方终结。