Golang 进阶文章一览

简介: Golang 进阶文章一览

最近在组内 Code Review 发现很多同学学习时间虽然不短,但Golang的一些基本Pattern仍然有所疏漏。

譬如,RPC接口内随意go协程,不考虑调用量大之后,协程暴涨可能导致程序OOM。再譬如,协程不知道有哪些同步、退出机制。

如果时间不是问题,那么就是知识体系存在漏洞。那么一个体系化、结构化的指南,对他们应该会帮助,因此整理之前主体阅读过的经典文章,形成了本篇文章。

1、Golang Design Cornerstone

Do not communicate by sharing memory; instead, share memory by communicating.

《Share Memory By Communicating》

《Concurrency is not parallelism》

2、Concurrency Pattern

《Go Concurrency Patterns: Context》

《Go Concurrency Patterns: Pipelines and cancellation》

《Go Concurrency Patterns: Timing out, moving on》

《Advanced Go Concurrency Patterns》

《Context isn’t for cancellation》

《Never start a goroutine without knowing how it will stop》

《Rethinking Classical Concurrency Patterns》

《Timeouts and Deadlines》

3、Error Handling

《Errors are values》

《Don’t just check errors, handle them gracefully》

4、Naming

《Package names》

《Avoid package names like base, util, or common》

5、Package Management

《Using Go Modules》

6、Logging

《Let’s talk about logging》

7、Code Style

《SOLID Go Design》

《Do not fear first class functions》

《The Zen of Go》

《Clear is better than clever》

《Go, without package scoped variables》

《Should methods be declared on T or *T》

《Simplicity and collaboration》

8、Debug&Profile&Diagnostics

《Profiling Go Programs》

《Diagnostics》

《Stack Traces In Go》

9、TDD

《Prefer table driven tests》

10、Golang Struct

《If a map isn’t a reference variable, what is it?》

《Slices from the ground up》

11、精华网站

Gopher Academy BlogThe official Go BlogGolang TalksGo WikiDave Cheney

本文作者 : cyningsun

本文地址https://www.cyningsun.com/10-15-2020/advanced-golang-article.html

版权声明 :本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0 CN 许可协议。转载请注明出处!

# Golang

  1. 译|There Are No Reference Types in Go
  2. Go 语言没有引用类型,指针也与众不同
  3. 译|What “accept interfaces, return structs” means in Go
  4. 如何用好 Go interface
  5. 一个优雅的 LRU 缓存实现
目录
相关文章
|
Java Go 开发者
100天精通Golang(基础入门篇)——第15天:深入解析Go语言中函数的应用:从基础到进阶,助您精通函数编程!(进阶)
100天精通Golang(基础入门篇)——第15天:深入解析Go语言中函数的应用:从基础到进阶,助您精通函数编程!(进阶)
76 0
|
SQL 测试技术 Go
Golang实用进阶工具
Golang实用进阶工具
62 0
|
中间件 关系型数据库 MySQL
Golang进阶,揉碎数据库中间件,干货满满!(一)
Golang进阶,揉碎数据库中间件,干货满满!(一)
216 3
Golang进阶,揉碎数据库中间件,干货满满!(一)
|
SQL 中间件 关系型数据库
Golang进阶,揉碎数据库中间件,干货满满!(二)
Golang进阶,揉碎数据库中间件,干货满满!(二)
272 3
Golang进阶,揉碎数据库中间件,干货满满!(二)
|
SQL 中间件 关系型数据库
Golang进阶,揉碎数据库中间件,干货满满!(二)
Golang进阶,揉碎数据库中间件,干货满满!(二)
306 3
Golang进阶,揉碎数据库中间件,干货满满!(二)
|
存储 Java Go
一起学Golang系列(四)学习Go语言语法,这篇文章就够了!
前面已经了 Go 环境的配置和初学Go时,容易遇到的坑。我们知道Go语言和我们以前的Java或是C#哈时候很大差别的。所以在学习Go,首先必须要熟悉Go语言的基础语法。接下来就为初学者大致介绍下Go语言基础语法。
一起学Golang系列(四)学习Go语言语法,这篇文章就够了!
|
2月前
|
Go
Golang语言之管道channel快速入门篇
这篇文章是关于Go语言中管道(channel)的快速入门教程,涵盖了管道的基本使用、有缓冲和无缓冲管道的区别、管道的关闭、遍历、协程和管道的协同工作、单向通道的使用以及select多路复用的详细案例和解释。
110 4
Golang语言之管道channel快速入门篇
|
2月前
|
Go
Golang语言文件操作快速入门篇
这篇文章是关于Go语言文件操作快速入门的教程,涵盖了文件的读取、写入、复制操作以及使用标准库中的ioutil、bufio、os等包进行文件操作的详细案例。
66 4
Golang语言文件操作快速入门篇
|
2月前
|
Go
Golang语言之gRPC程序设计示例
这篇文章是关于Golang语言使用gRPC进行程序设计的详细教程,涵盖了RPC协议的介绍、gRPC环境的搭建、Protocol Buffers的使用、gRPC服务的编写和通信示例。
101 3
Golang语言之gRPC程序设计示例
|
2月前
|
安全 Go
Golang语言goroutine协程并发安全及锁机制
这篇文章是关于Go语言中多协程操作同一数据问题、互斥锁Mutex和读写互斥锁RWMutex的详细介绍及使用案例,涵盖了如何使用这些同步原语来解决并发访问共享资源时的数据安全问题。
86 4