写代码同写文章一样,既是技术活,又是艺术活。不是懂了语法能够写出优秀的代码,也正如不是认识字就能够写出优美的文章一样。那个作家饱读史书,那个架构师不是在代码堆里和Bug堆里泡出来的。

因此,程序员刚入门除了读书外,阅读好的代码很重要。阅读优秀的代码可以了解大牛开发的思路,软件架构和语言技巧等。因此,本文针对Go语言,推荐大家5个非常优秀的开源项目,这些开源项目不仅应用广泛,而且其中所用的技术有很多基础技术,是做其它任何项目都不可或缺的。

image

Codis

Codis是一个分布式Redis解决方案,与官方的纯P2P模式不同,Codis采用的是Proxy-based的方案。可以将Codis理解成为Web服务领域的Nginx,它实现了对Redis的反向代理和负载均衡。Redis本身就是就是一个高性能的缓存系统,可见Codis的性能更是没法说。

image

推荐阅读该开源项目源代码的原因在于应用广泛、高性能和网络协议。通过学习其代码相信对Go语言的如下方面能有很大的提升:

网络编程:Codis本身就是一个高性能网络软件,因此阅读其代码对于Go语言下的网络编程会有很大的帮助

协程:作为网络软件,在Go语言协程使用上发挥的淋漓尽致,充分使用了其协程的特性
数据结构与算法:Codis为了配合Redis的多种数据类型支持,在内部实现上充分使用了现有的数据结构

Etcd

Etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。Etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现。阅读其代码对理解Go语言中的网络编程、分布式算法和数据结构等方面的内容有非常大的帮助。可以了解世界级大牛的开发思路和编码风格。

image

Kubernetes

相信做过Web开发或者玩过容器的同学都接触过,最起码听过这个软件。这个软件是纯Go语言开发。这里就不过多介绍了,Google设计并开发的东东,相信能从中学到很多内容。这里就不过多介绍了。

Caddy

Caddy服务器(或者CaddyWeb)是一个开源的,使用Golang 编写,支持HTTP/2 的Web 服务端。它使用Golang 标准库提供HTTP 功能。Caddy 一个显著的特性是默认启用HTTPS。它是第一个无需额外配置即可提供HTTPS 特性的Web 服务器。学习该软件的代码对高性能架构、网络编程和HTTP协议会有更加深入的理解。

image

Go-MySQL

程序开发无非业务、数据结构算法、网络和存储,前面介绍了很多数据结构和网络的开源软件,本软件是最后一部分。本软件是Go语言实现的处理MySQL网络协议和复制的功能,可以作为MySQL的从端,实现数据的进一步的处理。学习本软件的代码对MySQL会有更加深入的理解,另外对数据中心容灾也会有所帮助。

GO 中国征稿啦!

自“Go中国  ” 公众号上线以来,因为扎实的干货(害羞)、前沿的解读(娇羞)、满满的福利一直深受 Gopher 们的喜爱,为了给大家带来更具实力的干货以及 Go 语项目开发经验,我们将开始对外征稿!

现在我们开始对外征稿啦!如果你有优秀的 Go 语言技术文章想要分享,热点的行业资讯需要报道等,欢迎联系在菜单栏回复“投稿”“合作”联系我们的小编进行投稿。

熟读这5个开源项目就是合格的GO语言工程师相关推荐

  1. Go语言开发工程师一定要熟读的5个开源项目

    文章目录 1.简介 2.开源项目 2.1.Codis 2.2.Etcd 2.3.Kubernetes 2.4.Caddy 2.5.Go-MySQL 3.原文地址 1.简介 写代码同写文章一样,既是技术 ...

  2. C语言开发工程师一定要熟读的5个开源项目

    以下内容转自 https://www.toutiao.com/i6661021082251690508/ 如果大家详细的分析一下自己所从事过的项目,或者分析一下目前热门招聘岗位,就可以抽取一些公共的技 ...

  3. OSC 十月新增开源项目:号称最快的 Node.js 应用框架来了

    立冬已过,人们认为这是夏天的终结,冬天的开始.立,建始也:冬,终也,万物收藏也.不过在开源的世界里,开发者并不畏惧寒冷,对技术的不懈追求也未曾终结. 开源的世界总是精彩纷呈,十月份,开源中国社区总共收 ...

  4. J2EE学习中一些值得研究的开源项目(转载天极网)

    J2EE学习中一些值得研究的开源项目 这篇文章写在我研究J2SE.J2EE近三年后.前3年我研究了J2SE的Swing.Applet.Net.RMI.Collections.IO.JNI--研究了J2 ...

  5. 面对世界竞争对手,如何拿到Google PDF开源项目PDFium?

    面对世界竞争对手,如何拿到Google PDF开源项目PDFium? 发表于2015-10-20 15:06| 844次阅读| 来源CSDN| 8 条评论| 作者蒲婧 CTO俱乐部CTO讲堂CTOPD ...

  6. J2EE学习中一些值得研究的开源项目

    这篇文章写在我研究J2SE.J2EE近三年后.前3年我研究了J2SE的Swing.Applet.Net.RMI.Collections. IO.JNI--研究了J2EE的JDBC.Sevlet.JSP ...

  7. 蚂蚁资深技术专家王旭:开源项目是如何让这个世界更安全的?

    王旭 蚂蚁资深技术专家 读完需要 10 分钟 速读仅需 1 分钟 在前不久的上海外滩大会上,蚂蚁资深技术专家.Kata Containers 创始人王旭向参会者分享了开源.开放协作与软件安全可信的话题 ...

  8. 为什么将表格的method改为post后就无法工作_不用再等后端的接口啦!这个开源项目花 2 分钟就能模拟出后端接口...

    本文作者:HelloGitHub-嘉文 这里是 HelloGitHub 推出的<讲解开源项目>系列,今天给大家带来一款开源免费的模拟后端 API 的工具:moco 没学过后端开发的也能快速 ...

  9. 史上最全的开源项目创作指南

    前言 开源,是这个时代的主旋律.作为一名Android开发工程师,我有理由相信我们是开源的最大受益者,因为那个养活我们的Android其本身就是Google的开源项目.在这样一个开源的时代,就连之前那 ...

最新文章

  1. github是什么?
  2. 通过PXE服务器批量安装系统
  3. linux执行windows创建的脚本,如何在Windows 10上创建和运行Bash Shell脚本 | MOS86
  4. 在生产环境中使用 Sentinel
  5. 对于李群和李代数的理解
  6. 3dmax工具栏不见了怎么显示
  7. 测试点击屏幕次数的软件_红蜘蛛5校色仪怎么用?显示器校色及测试色域和色彩精准度详细教程...
  8. 快递查询API接口对接案例(顺丰、圆通、中通、德邦、天天)
  9. Regin恶意软件:何以潜伏如此久?
  10. 在技术招聘中,HR 如何识别候选人的“味道”?
  11. DNSPod十问Neha Naik:以人民币结算海外IT业务的可能性?
  12. python成语接龙到为所欲为_python成语接龙
  13. Excel工具类(详细版)
  14. SurFS:共享式和分布式集群各取所长
  15. 卡顿老笔记本换新颜--增加内存条(内存条如何选购终极总结)
  16. 服务器主板支持专用条,昂达推出存储服务器专用B250 D32-D3主板
  17. 修改时验证名称是否重复除了本身
  18. 1. ABAP RSA签名- SAP调用上上签API(1)
  19. UE4 动态修改材质 控制颜色和贴图
  20. 华为路由器:ospf协议三张表及邻居建立过程

热门文章

  1. python再复习(3)函数
  2. Linux系统中Jena环境变量配置及使用
  3. 30岁软件工程师的迷茫和悲哀
  4. 华为od统一考试B卷【阿里巴巴找黄金宝箱】Python 实现
  5. 用Python制作一个相册播放器(附源码)
  6. 响铃:什么样的网综才配得上“超级网综”?
  7. 比较好的开源人脸识别软件
  8. 社会网络分析入门书目导读
  9. DevC++下面的编译信息窗口不能打开
  10. 解决Navicat连接不上MySQL的问题