go语言值得学习的开源项目推荐

谷歌官方维护了一个基于go语言的开源项目列表:

https://github.com/golang/go/wiki/Projects

 

其中有非常多的优秀项目值得学习,有几百行代码适合新手阅读的项目,也有大型如nsq、docker等的项目。

 

下面推荐几款适合学习的项目:

1、cache2go

https://github.com/muesli/cache2go

比较简单的一个缓存库,代码量很少,适合新手学习,可以学习到锁、goroutines等。

 

2、groupcache

https://github.com/golang/groupcache

与memcached同一作者,相当于是memcached的go语言实现。

 

3、nsq

https://github.com/bitly/nsq

消息分发平台,阅读代码可以了解到很多分布式、负载均衡等方面的编程。

 

4、docker

https://github.com/docker/docker

时下很火的项目,个人感觉适合应用,不适合入门阅读学习,待成为了高手后可以研究下其实现。

 

转载连接:http://studygolang.com/articles/2465

转载于:https://www.cnblogs.com/yaowen/p/8252931.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252549.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

部分Nand flash uboot 命令详解

nand info & nand device显示flash的信息: DM365 :>nand info Device 0: NAND 32MiB 3,3V 8-bit, sector size 16 KiB DM365 :>nand device Device 0: NAND 32MiB 3,3V 8-bitnand read(.oob) addr off size 不管是读取data, 使用nand read,还是…

java7

第八章 数组 1.数组的声明定义 数据类型[]变量名 new 数据类型[长度]; 列:int[]ary new int[5]; 2.取值,赋值 取值:数据名[下标]; 列:int a ary[1]; 赋值:变量数据名[…

BZOJ 3564 信号增幅仪

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id3564 题意:给出平面上n个点,画出一个椭圆,椭圆的长轴是短轴的p倍,且长轴的方向为x轴逆时针旋转a度。求这个椭圆短轴的最小值使得可以覆盖所以点。 思路&…

CentOS 7 搭建JAVA环境

安装环境: LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.3.1611 (Core) Release: 7.3.1611 Codename: Core 开始 运行java -version 检查系统是否安装JRE 或JDK,有则卸载系统自带JAVA包输…

串口波形分析

UART口发出数据按字节发送,发送数据8bit,实际量出波形为10bit,软件底层驱动会自动加上起始位和停止位各1bit,起始位为0,停止位为1。下图为用串口工具发送的数据和用示波器所量波形。 发送数据:0x34 0x43 示…

SpringBoot之MongoTemplate的查询可以怎么耍

学习一个新的数据库,一般怎么下手呢?基本的CURD没跑了,当可以熟练的增、删、改、查一个数据库时,可以说对这个数据库算是入门了,如果需要更进一步的话,就需要了解下数据库的特性,比如索引、事物…

这可能是我见过最详细的快速排序!

关于快速排序,网上,和维基都有完成的解释,他们都是。。。。。。,俺觉得都是,太过于总结话语在概述一些东西; 而我却从最本质的东西,一步一步的深入;在深入的学习过程中,我…

LINQ to SQL 实现 GROUP BY、聚合、ORDER BY

前言 本示例主要实现 LINQ 查询,先分组,再聚合,最后在排序。示例很简单,但是使用 LINQ 却生成了不同的 SQL 实现。 1) 采用手动编写 SQL 实现 SELECT ROW_NUMBER() OVER(ORDER BY T.RealTotal DESC) AS SN, * FROM ( SELECT (S…

Mysql之事务

什么是事务 假如你下了一笔订单,会有以下数据库操作: 1. 生成一笔订单记录 2. 减少库存 3. 从你的账户中减少金额 4. 生成支付记录 这边的四个操作缺一不可,一旦某一个操作出现异常,则全部操作都需要全部回滚。而事务的作…

JVM垃圾回收机制总结

对于垃圾回收机制我先抛出三个问题: ①哪些内存需要回收? ②什么时候回收? ③如何回收? 下面我们主要针对这三个问题来研究JVM GC 一、哪些内存需要回收? 1.JAVA使用可达性分析法来判断对象是否需要回收。 这个算法的基…

虚拟机增加内存方法

楼主由于要在虚拟机里面装一个oracle,在安装过程中,提示物理内存不符合最低标准,如图1. 图1 因为懒得新建一个虚拟机了,所以考虑给虚拟机新增磁盘空间。 首先说明,新增磁盘空间,必须保证当前虚拟机里每个新…

myBatis xml if、where、if-else?、foreach 心得

MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这…

bzoj千题计划213:bzoj2660: [Beijing wc2012]最多的方案

http://www.lydsy.com/JudgeOnline/problem.php?id2660 很容易想到是先把n表示成最大的两个斐波那契数相加,然后再拆分这两个斐波那契数 把数表示成斐波那契进制的形式,第i位表示有没有第i个斐波那契数 比如16133 001001 那么拆分一个数就是把一个1…

面对对象-封装

private 私有的 package/friendly/default 不写 protected 受保护的 public 公共的 那么什么情况该用什么修饰符呢?从作用域来看,public能够适用所有的情况。 但是大家在工作的时候,又不会真正全部都适用public,那么到底什么情况改用什么修饰…

本文详解5G是个什么鬼,程序员都准备好了吗?

无线移动通讯发展历史 最近5G的概念炒的如火如荼,为此,华为和高通还干了一仗。这篇文章从技术层面给大家分析,什么是5G,它和4G比,高级在哪里? 我们来看看移动互联网的技术发展: 然后我们在来看看…

安装kerberos报错 error: command 'gcc' failed with exit status 1

pip install kerberos 报错:error: command gcc failed with exit status 1 安装环境工具 yum install gcc libffi-devel python-devel openssl-devel 再次安装kerberos安装成功 转载于:https://www.cnblogs.com/panbc/p/8268574.html

jquery正则表达式验证:验证全是数字

需求说明: 前端页面使用正则表达式验证输入框中输入的内容全是数字。 代码说明: 这里只介绍正则表达式,其他部分的代码不做介绍。如果有其他需要自行修改即可。 步骤一:建立一个页面可以是html、jsp等,引入jquery-3.2.…

0613课堂汇总

一: 数据类型: 基本数据类型{byte(8)/short(16)/char(16)/int(32)/float(32)/long(64)/double(64)/boolean(1)}引用数据类型{*除了基本数据类型都是引用数据类型 *包括API中的类(String,File)*自定义的类(Personal A…

Istio流量管理实践之(5): 使用cert-manager部署Istio自定义入口网关及进行证书管理...

Istio Gateway提供多个自定义入口网关的支持能力,通过开放一系列端口用于承载网格边缘的进入连接,同时可以使用不同loadbalancer来隔离不同的入口流量。cert-manager可用于使用存储在Kubernetes Secret资源中的任意签名密钥对来获取证书。本文提供了手动…

log4配置

log4j 和 log4j2 方式一&#xff1a;log4j2.xml 添加 jar 包 1 <!-- log4j-core --> 2 <!-- 3 <dependency> 4 <groupId>org.apache.logging.log4j</groupId> 5 <artifactId>log4j-core</artifactId> 6 …