• 120
    Go: 并发访问 Map — Part III

    ![img](https://raw.githubusercontent.com/studygolang/gctt-images/master/go-concurrency-access-with-maps-Part-III/1_uZMa7x3KBqJKJ6rWtnZFwA.png) 在上一篇文章 “[Go: 通过源码研究 Map 的设计](https://studygolang.com/articles/22777)” 中,我们讲述了 map 的内部实现。 [Go blog](ht...

  • 120
    Go: 通过代码学习 Map 的设计 — Part II

    ![img](https://raw.githubusercontent.com/studygolang/gctt-images/master/go-map-design-by-code-part-II/1_Mr8IJbn7a8SV1FN-mN_KXg.png) 这篇文章是 "[Go: 通过例子学习 Map 的设计](https://studygolang.com/articles/22773)" 的下一篇,它从高层次上介绍了 map 的设计。为了理解下文讨论的概念,我强烈建议你从上一篇文...

  • 120
    Go: 通过例子学习 Map 的设计 — Part I

    ![img](https://raw.githubusercontent.com/studygolang/gctt-images/master/go-map-design-by-example-part-I/1_HFwlzPXZ1nXxKMwumjrlmQ.png) 本文是三篇系列文章中的第一篇。每篇文章都将涵盖 map 的不同部分。我建议你按顺序阅读。 Go 提供的内置类型 `map` 是使用[哈希表](https://en.wikipedia.org/wiki/Hash_table) 实...

  • 致 Go 团队的一封公开信 —— 关于 try

    > polaris 注:目前关于 try 的提案被否决了,具体见:https://studygolang.com/articles/22043 *“一旦语言变得足够复杂,在其中编程更像是从无限多的特性海洋中划出一个子集,其中大部分都是我们永远不会学到的。一旦语言像是有无限多的特性,为其添加更多特性的成本就不再明显。”* - *[Mark Miler](https://medium.com/@erights/the-tragedy-of-the-common-lisp-why-large-l...

  • 120
    Go:我应该用指针替代结构体的副本吗?

    ![logo](https://raw.githubusercontent.com/studygolang/gctt-images/master/go-should-i-use-a-pointer-instead-of-a-copy-of-my-struct-44b43b104963/1_IO4bo74w6aX7rKC_spjmvw.png) 对于许多 `golang` 开发者来说,考虑到性能,最佳实践是系统地使用指针而非结构体副本。 我们将回顾两个用例,来理解使用指针而非结构体副本...

  • 现代服务端技术栈介绍 —— Golang、Protobuf 和 gRPC

    ![](https://raw.githubusercontent.com/studygolang/gctt-images/master/modern-server/1_W_1gSpbn79xtYZw9_TBGPA.jpg) 身边多了一些新的服务端程序员,这一次,一切都与谷歌有关。自从谷歌开始在他们的生产系统中使用 Go 语言以来,`go` 语言的流行度快速地提升。从微服务架构创立至今,人们一直在关注像 `gRPC`、`Protobuf` 这样的现代数据通信解决方案。在这篇文章中,我将分别...