[原]可能被忽略的Golang细节——range
range关键字是Go语言中一个非常有用的迭代array,slice,map, string, channel中元素的内置关键字。
»range关键字是Go语言中一个非常有用的迭代array,slice,map, string, channel中元素的内置关键字。
»Go 1.9 release把并发map加人到标准库里面了,就是sync包下面的Map(sync.Map)。最近本来想一篇介绍它怎么使用,以及在它之前使用sync.Mutex
或sync.RWMutex
加传统的map
实现map
的并发读写的不同的文章。但是写之前,搜了一把是否有人已经做过类似的工作了,然后就发现了这个叫Ralph Caraveo的哥们儿已经写了这一篇。而且这篇文章不仅介绍了sync.Map
怎么使用,还是介绍了它的设计原因,以及设计目标。还有一个各种使用场景下跟原来的map
加sync.RWMutex
性能比较的benchmark测试。所以我也没有必要再重新写一篇,他这篇文章已经远超了我想写的东西了,就直接翻译过来分享给大家吧。再多说一句,这哥们儿有很多不错的关于Go的博客,大家可以直接去他那里看原文。我也还有翻译一些他的其他文章,改天校验一遍再po出来吧。
最近又开始倒腾kubernetes了,翻出了大概两年前kubernetes刚刚release 1.0时我们在1.0,1.1版本上踩过的坑的笔记。虽然现在都已经release 1.9.0了,当年踩过的坑,现在部署也都已经遇不到了,但是发现基础的东西还在,解决问题的方式还是需要考虑那些方方面面。所以在此把一些仍然可以在遇到问题时参考的在此分享出来,也算是对过去的付出有个交代。
»今天看了一篇很有趣的博文,讲到了使用Go写代码时,对于更新数组,一个小小的改动却能大大提高代码的效率。而自己平时最经常使用的居然是效率最低的一种方式。不得不感慨Go虽然入门容易,但是细节无处不在,平时需要注意的地方,需要深挖的地方太多太多。这里把文章翻译撸一下给大家分享下,文章很短,可能只需要你马桶上5分钟的时间,你就将Get一个很牛逼的技能。
»原文链接:Engineers Shouldn’t Write ETL: A Guide to Building a High Functioning Data Science Department
»