文章目录

  • 1、简介
  • 2、开源项目
    • 2.1、Codis
    • 2.2、Etcd
    • 2.3、Kubernetes
    • 2.4、Caddy
    • 2.5、Go-MySQL
  • 3、原文地址

1、简介

写代码同写文章一样,既是技术活,又是艺术活。不是懂了语法能够写出优秀的代码,也正如不是认识字就能够写出优美的文章一样。那个作家饱读史书,那个架构师不是在代码堆里和Bug堆里泡出来的。因此,程序员刚入门除了读书外,阅读好的代码很重要。阅读优秀的代码可以了解大牛开发的思路,软件架构和语言技巧等。因此,本文针对Go语言,推荐大家5个非常优秀的开源项目,这些开源项目不仅应用广泛,而且其中所用的技术有很多基础技术,是做其它任何项目都不可或缺的。

2、开源项目

2.1、Codis

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

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

  • 网络编程: Codis本身就是一个高性能网络软件,因此阅读其代码对于Go语言下的网络编程会有很大的帮助
  • 协程: 作为网络软件,在Go语言协程使用上发挥的淋漓尽致,充分使用了其协程的特性
  • 数据结构与算法: Codis为了配合Redis的多种数据类型支持,在内部实现上充分使用了现有的数据结构

Github地址:https://github.com/CodisLabs/codis

2.2、Etcd

Etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。Etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现。

阅读其代码对理解Go语言中的网络编程、分布式算法和数据结构等方面的内容有非常大的帮助。可以了解世界级大牛的开发思路和编码风格。

Github地址:https://github.com/etcd-io/etcd

2.3、Kubernetes

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

Github地址:https://github.com/kubernetes/kubernetes

2.4、Caddy

Caddy服务器(或者CaddyWeb)是一个开源的,使用Golang 编写,支持HTTP/2 的Web 服务端。 它使用Golang 标准库提供HTTP 功能。 Caddy 一个显著的特性是默认启用HTTPS。 它是第一个无需额外配置即可提供HTTPS 特性的Web 服务器。

学习该软件的代码对高性能架构、网络编程和HTTP协议会有更加深入的理解。

Github地址:https://github.com/caddyserver/caddy

2.5、Go-MySQL

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

Github地址:https://github.com/go-sql-driver/mysql

3、原文地址

https://baijiahao.baidu.com/s?id=1626690531613281832&wfr=spider&for=pc

Go语言开发工程师一定要熟读的5个开源项目相关推荐

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

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

  2. 兴业数金C语言笔试,2021兴业数金校园招聘C语言开发工程师职位

    中公金融人银行招聘网整理分享各大银行官方发布的招聘考试信息,整理的内容仅供格式参考,详情以官方发布的为准,忘各位考生悉知!笔面试通知等信息以各位考生接收到官方发布的短信或邮件为准! 岗位职责: 1.负 ...

  3. 熟读这5个开源项目就是合格的GO语言工程师

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

  4. c语言开发工程师英文,工程师用英语怎么说

    有些职位我们能日常见到,所以知道英语怎么说,下面给大家分享一些关于工程师用英语怎么说,希望对大家有所帮助. 一.工程师用英语怎么说 engineer: 总工程师 chief engineer; 高级工 ...

  5. go新手看的开源项目 哪些适合_最近大家都在用 Go 语言玩什么?这几个新的开源项目告诉你...

    自 2009 年 11 月正式宣布推出以来,Go 语言凭借着其简单.高效.资源占用低的优势逐渐在开发者人群中变得热门起来,优秀的 Go 语言开源项目层出不穷.Gitee 上优秀的开发者们也已经分享了近 ...

  6. 阿里 c语言开发工程师,阿里巴巴2014秋季校园招聘软件研发工程师笔试题

    阿里巴巴2014秋季校园招聘软件研发工程师笔试题 1. 单选题 1. 假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函数 A: h(K)=K/N; B: h(K)=1; C: h(K) ...

  7. C语言开发工程师笔试面试题整理(七)——数据库SQL

    1.简述一下数据库的三大范式(2020兴业数金面试题) 答:第一范式(1NF):原子性 字段不可再分,否则就不是关系数据库; 第二范式(2NF):唯一性 一个表只说明一个事物; 第三范式(3NF):每 ...

  8. python游戏服务器框架_mqant首页、文档和下载 - Golang/python语言开发的分布式游戏服务器框架 - OSCHINA - 中文开源技术交流社区...

    mqant mqant 是一款基于 Golang 语言的简洁,高效,高性能的分布式游戏服务器框架,研发的初衷是要实现一款能支持高并发,高性能,高实时性的游戏服务器框架,也希望 mqant 未来能够做即 ...

  9. c语言调用json编程,c语言开发JSON - wangxuwei的个人空间 - OSCHINA - 中文开源技术交流社区...

    安装json-c 库 $ sudo apt-get install libjson0-dev libjson0 代码json_test.c #include #include #include #in ...

最新文章

  1. javascript迭代器_JavaScript迭代器概述
  2. Charles 从入门到精通
  3. python3.6卸载教程_Python3.6安装卸载、执行命令、执行py文件的方法详解
  4. 在windows下配置PostgreSQL
  5. 团队项目冲刺第二天进度
  6. 想转行做web前端工程师,必学这6大技能
  7. java中不使用局部变量a的值_【转发】Java匿名类中使用的局部变量为何要加final...
  8. Java语言中的----继承(二)
  9. c语言连连看实验报告,连连看c语言实验报告.docx
  10. 佛系前端面试题记录--第四周
  11. 页高速缓存(Page Cache)
  12. 深度相机之iPhone X选择的秘诀和方法
  13. 使用EDU邮箱申请JetBrains学生包免费使用一年JetBrains全家桶
  14. 固态硬盘(SSD)原理及相关介绍
  15. easypoi导出一对多,合并单元格,且根据内容自适应行高
  16. java_Annotation
  17. 100%代码覆盖率神话
  18. linux有不知名ip登录记录,通过登陆IP记录Linux所有用户登录所操作日志的方法
  19. vue3实现文件上传
  20. iOS中实现打电话、发短信

热门文章

  1. linux环境下搭建osm_web服务器四(对万国语的地名进行翻译和检索):
  2. HTML5离线浏览再进一步
  3. 【C#】RabbitMQ高阶指南
  4. css+html简单的按钮特效
  5. 网络渗透测试实验二 网络嗅探与身份认证
  6. VirtualBox 安装 Mac X
  7. 单机网页游戏的如何修改服务器数据库,三国志单机页游网页版一键端+教程及修改工具...
  8. rpmbuild打包rpm
  9. 1139 First Contact (30分)[DFS]
  10. 记2018湖南CCF-CCSP