因此,程序员刚入门除了读书外,阅读好的代码也很主要。阅读精良的代码可以理解大牛开拓的思路,软件架构和措辞技巧等。因此,本文针对Go措辞,推举大家5个非常精良的开源项目,这些开源项目不仅运用广泛,而且个中所用的技能有很多根本技能,是做其它任何项目都不可或缺的。
Codis
Codis是一个分布式Redis办理方案,与官方的纯P2P模式不同,Codis采取的是Proxy-based的方案。可以将Codis理解成为Web做事领域的Nginx,它实现了对Redis的反向代理和负载均衡。Redis本身便是便是一个高性能的缓存系统,可见Codis的性能更是没法说。

推举阅读该开源项目源代码的缘故原由在于运用广泛、高性能和网络协议。通过学习其代码相信对Go措辞的如下方面能有很大的提升:
网络编程:Codis本身便是一个高性能网络软件,因此阅读其代码对付Go措辞下的网络编程会有很大的帮助
协程:作为网络软件,在Go措辞协程利用上发挥的淋漓尽致,充分利用了其协程的特性数据构造与算法:Codis为了合营Redis的多种数据类型支持,在内部实现上充分利用了现有的数据构造
Etcd
Etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。Etcd内部采取raft协议作为同等性算法,etcd基于Go措辞实现。阅读其代码对理解Go措辞中的网络编程、分布式算法和数据构造等方面的内容有非常大的帮助。可以理解天下级大牛的开拓思路和编码风格。
Kubernetes
相信做过Web开拓或者玩过容器的同学都打仗过,最最少听过这个软件。这个软件是纯Go措辞开拓。这里就不过多先容了,Google设计并开拓的东东,相信能从中学到很多内容。这里就不过多先容了。
Caddy
Caddy做事器(或者CaddyWeb)是一个开源的,利用Golang 编写,支持HTTP/2 的Web 做事端。它利用Golang 标准库供应HTTP 功能。Caddy 一个显著的特性是默认启用HTTPS。它是第一个无需额外配置即可供应HTTPS 特性的Web 做事器。学习该软件的代码对高性能架构、网络编程和HTTP协议会有更加深入的理解。
Go-MySQL
程序开拓无非业务、数据构造算法、网络和存储,前面先容了很多数据构造和网络的开源软件,本软件是末了一部分。本软件是Go措辞实现的处理MySQL网络协议和复制的功能,可以作为MySQL的从端,实现数据的进一步的处理。学习本软件的代码对MySQL会有更加深入的理解,其余对数据中央容灾也会有所帮助。
总结:GO措辞利用起来大略、代码描述效率高、编码规范统一、上手快。通过少量的代码,即可实现框架的标准化,并以统一的规范快速构建API业务逻辑。能快速地构建各种通用组件和公共类库,进一步提升开拓效率,实现特定场景下的功能量产。欢迎大家来谈论!
!
!