整理 | Rachel
责编 | 阿司匹林
出品 | AI科技大本营(ID: rgznai100)
Go是Google开发的一种静态、强类型、编译型、并发型,并具有垃圾回收功能的类C编程语言。2009以开源项目的形式发布,2012年发布1.0稳定版本,距今已经十年了,其性能类似于Java和C++,但速度极快,适合搭载于web服务器,用于高性能分布式系统开发。
作为热门的编程语言之一,Go语言吸引了很多关注。根据TIOBE编程排行榜,2016年,Go语言成为年度最受欢迎的编程语言;2019年,Go语言的热度不减,仍稳居排行榜前20名。在基于云的服务中,Go语言因其在编译速度和执行性能上的优越性,具有其他编程语言无法比拟的优势。随着云计算的迅速发展,更多基于Go语言的项目正在不断涌现。
今天,营长就为大家推荐了一份来自Github的2019年Go开发者指南,帮助大家快速入门Go语言。
该指南提供了详细的进阶路线图,列出了学习Go开发所需的各类知识和技能,而且每个知识点也附上啦相应的学习资源。相信无论是零基础的新手,还是对Go语言有一定了解的开发者,都能够有所收获。
Go开发者路线图
学习资源整理
1、先决条件
1)Go:https://golangbot.com/
2)Dep工具,Go模组:https://github.com/golang/dep
3)SQL:https://www.w3schools.com/sql/default.asp
2、基本开发技能
1)学习Git,在GitHub上建立一些仓库,与他人分享你的代码:https://www.w3schools.com/sql/default.asp
2)了解HTTP(S)协议,request方法(GET,POST,PUT,PATCH,DELETE,OPTIONS)
3)不要害怕使用Google——Google搜索的力量:http://www.powersearchingwithgoogle.com/
4)看一些和数据结构及算法有关的书
5)学习关于认证的基础实现
6)学习面向对象原则
3、命令行工具
1)cobra:https://github.com/spf13/cobra
2)urfave/cil:https://github.com/urfave/cli
4、网络框架/路由
1)Echo:https://github.com/labstack/echo
2)Beego:https://github.com/astaxie/beego
3)Gin:https://github.com/gin-gonic/gin
4)Revel:https://github.com/revel/revel
5)Chi:https://github.com/go-chi/chi
5、数据库
1)关系型
SQLServer:https://www.microsoft.com/en-us/sql-server/sql-server-2017
PostgreSQL:https://www.postgresql.org/
MariaDB:https://mariadb.org/
MySQL:https://www.mysql.com/
2)云数据库
CosmosDB:https://docs.microsoft.com/en-us/azure/cosmos-db
DynamoDB:https://aws.amazon.com/dynamodb/
3)搜索引擎
ElasticSearch:https://www.elastic.co/
Solr:http://lucene.apache.org/solr/
Sphinx:http://sphinxsearch.com/
4)NoSQL
MongoDB:https://www.mongodb.com/
Redis:https://redis.io/
ApacheCassandra:http://cassandra.apache.org/
LiteDB:https://github.com/mbdavid/LiteDB
RavenDB:https://github.com/ravendb/ravendb
CouchDB:http://couchdb.apache.org/
6、对象关系的映射框架
Gorm:https://github.com/jinzhu/gorm
Xorm:https://github.com/go-xorm/xorm
7、高速缓存
GCache:https://github.com/bluele/gcache
分布式缓存
Go-Redis:https://github.com/go-redis/redis
GoMemcached:https://github.com/bradfitz/gomemcache
8、日志
1)日志框架
Zap:https://github.com/uber-go/zap
ZeroLog:https://github.com/rs/zerolog
Logrus:https://github.com/sirupsen/logrus
2)日志管理系统
Sentry.io:http://sentry.io/
Loggly.com:https://loggly.com/
9、实时通讯
Socket.IO:https://socket.io/
10、客户端
1)REST
Gentelman:https://github.com/h2non/gentleman
GRequests:https://github.com/kennethreitz/grequests
heimdall:https://github.com/heimdal/heimdal
2)GraphQL:https://graphql.org/
11、最好知道的库
Validator:https://github.com/chriso/validator.js/
Glow:https://github.com/pytorch/glow
GJson:https://github.com/tidwall/gjson
Authboss:https://github.com/volatiletech/authboss
Go-Underscore:https://github.com/ahl5esoft/golang-underscore
12、测试
1)单元,行为,集成测试
GoMock:https://github.com/golang/mock
Testify:https://github.com/stretchr/testify
GinkGo:https://github.com/onsi/ginkgo
GoMega:https://github.com/onsi/gomega
GoCheck:https://github.com/go-check/check
GoDog:https://github.com/DATA-DOG/godog
GoConvey:https://github.com/smartystreets/goconvey
2)端对端测试
Selenium:https://github.com/tebeka/selenium
Endly:https://github.com/viant/endly
13、任务调度
Gron:https://github.com/roylee0704/gron
JobRunner:https://github.com/bamzi/jobrunner
14、微服务
1)消息代理
RabbitMQ:https://www.rabbitmq.com/tutorials/tutorial-one-javascript.htmlhttps://www.npmjs.com/package/kafka-node
ApacheKafka:https://www.npmjs.com/package/kafka-node
ActiveMQ:https://github.com/apache/activemq
AzureServiceBus:https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview
2)消息总线
Message-Bus:https://github.com/vardius/message-bus
3)框架
GoKit:https://github.com/go-kit/kit
Micro:https://github.com/micro/go-micro
4)RPC
ProtocolBuffers:https://github.com/protocolbuffers/protobuf
gRPC-Go:https://github.com/grpc/grpc-go
gRPC-Gateway:https://github.com/grpc-ecosystem/grpc-gateway
5、Go模式:https://github.com/tmrts/go-patterns
以上就是本期营长为大家推荐的《2019年Go语言开发者指南》,最后为大家献上传送门,预祝大家五一学习愉快,peace~
GitHub项目地址:
https://github.com/Alikhll/golang-developer-roadmap/blob/master/i18n/ReadMe-zh-CN.md
◆
CTA核心技术及应用峰会
◆
5月25-27日,由中国IT社区CSDN与数字经济人才发展中心联合主办的第一届CTA核心技术及应用峰会将在杭州国际博览中心隆重召开,峰会将围绕人工智能领域,邀请技术领航者,与开发者共同探讨机器学习和知识图谱的前沿研究及应用。
更多重磅嘉宾请识别海报二维码查看,目前会议早鸟票发售中(原票价1099元),点击阅读原文即刻抢购。添加小助手微信15101014297,备注“CTA”,了解票务以及会务详情。
推荐阅读
文章浏览阅读4.5k次。在spark中很多时候回去对RDD进行排序,但是官方给的排序规则无法满足我们的需求,许多时候需要我们重新定义排序规则,接下来我们来谈论一下RDD的排序规则。首先我们通过代码来看一下sparkAPI中自带排序算子sortBy和sortByKey val conf = new SparkConf().setAppName("sortByKey").setMaster("local[2]")_rdd按照成绩排序
文章浏览阅读2k次。在这里,我们将向不具备AI知识的读者介绍机器学习(ML)的基础知识,并描述在监督的ML模型中的训练和验证步骤。下载源1.5 MBML是AI的一个分支,它通过从一组示例中进行概括而不是接收明确的指令,试图使机器找出如何执行任务。机器学习有三种范式:监督学习,无监督学习和强化学习。在监督学习中,模型(我们将在下面讨论)通过称为训练的过程学习,在模型中提供示例输入及其正确输出。它了解数据集示例中的哪些特征映射到特定输出,然后能够在称为预测的阶段中预测新的传入数据。在无监督学习中,模型通过分析数据之间的关系来_c# 深度学习
文章浏览阅读1k次。1.介绍Flutter主要使用Dart开发语言,在调试和发布两个版本中,Dart RunTime是始终存在,但两种版本下的构建方式有很大的差异2.调试和发布版本下的差异 调试版本下 Dart编译到设备,包含三部分: 1.Dart RunTime 2.jit(Android下的实时编译器)/interpreter(IOS下的解析器) 3.调试和分析服务 发布版本下 ..._dart 垃圾回收
文章浏览阅读149次。http://edu.csdn.net/heima android培训 http://edu.csdn.net/heima ; java培训期待与您交流!1、反射:反射就是把java类中的各个成分映射成相应的java类。java反射机制是在运行状态,对任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取信息以及动态调_编程中的反射技术
文章浏览阅读2.4k次。一、命令概述:mysql show full processlist 用来查看当前线程处理情况,具体信息请参考官网:https://dev.mysql.com/doc/refman/5.7/en/show-processlist.htmlshow full processlist 返回的结果是实时变化的,是对mysql链接执行的现场快照,所以用来处理突发事件非常有用。一般用到show..._show full processlist 排序
文章浏览阅读872次。【Redis学习】Redis分布式锁实现秒杀业务(乐观锁、悲观锁)原创 2017年10月17日 21:48:33标签:redis/分布式锁/秒杀系统/乐观锁/悲观锁1、业务场景所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源,这里的资源在大部分秒杀场景里是商品;将业务抽象,技术角度看,秒杀就是多个线程对资源进行操作,所以实现_redisutils.getinstance().get
文章浏览阅读1.6k次。ABB(AseaBrownBoveri)是一家由两个历史100多年的国际性企业(瑞典的ASEA和瑞士的BBC Brown Boveri)在1988年合并而成,名列全球500强,总部坐落于瑞士苏黎世。ABB的业务涵盖电力产品、离散自动化、运动控制、过程自动化、低压产品五大领域,以电力和自动化技术最为著名。ABB拥有当今最多种类的机器人产品、技术和服务,是全球装机量最大的工业机器人供货商。ABB强调的是机器人本身的整体性,以其六轴机器人来说,单轴速度并不是最快的,但六轴一起联合运作以后的精准度是很高的。_什么事abb机器人
文章浏览阅读1.5k次。spring-mybatis.xml图二,如果import标签引入资源文件需不放在配置文件开头,则spring-mybatis.xml中通过$是无法将配置文件中value注入;报错如图三图二图三..._could not resolve placeholder oracle
文章浏览阅读4.2w次,点赞30次,收藏35次。最近电脑的文件资源管理器一直出现随机崩溃的问题,通过查看日志 病毒扫描 系统修复都没有解决这个问题,偶然在网上看到一篇帖子竟然解决了这个问题。竟然是因为这个详细信息窗格!虽然不了解深层的原因,不过希望微软尽快解决这个bug。遇到同样问题的朋友可以尝试一下,取消勾选详细信息窗格。..._文件资源管理器总是崩溃
文章浏览阅读102次。基于referer来限制网站访问RewriteEngine onRewriteCond %{HTTP_REFERER} spamteam.com [NC,OR]RewriteCond %{HTTP_REFERER} trollteam.com [NC]RewriteRule .* - [F]防止目录浏览一般情况下目录浏览是关闭的,如果目录浏览被默认打开,可以使用一下语句来禁止目录浏览。Option...
文章浏览阅读2.6k次。最近公司要求调试一个内核,启动时有问题,所以就花了一点时间看看内核启动。看的过程中总结了一点东西,希望可以帮助大家调试内核。当我开始看的时候,第一件事是从网上搜集资料,不看不知道,一看吓一跳!牛人太多了,像这种内核启动的上古代码早就被人分析的彻彻底底。这注定我写的只能是烂微博了。为了此微博有存在的必要,我会显示内核启动打印的代码位置(用绿色表示)及出现错误打印的原因(用红色
文章浏览阅读4.6k次。先来说几个概念:URI :Uniform Resource Identifier,统一资源标识符;URL:Uniform Resource Locator,统一资源定位符;URN:Uniform Resource Name,统一资源名称。其中,URL,URN是URI的子集。Web上地址的基本形式是URI,它代表统一资源标识符。有两种形式:URL:目前URI的最普遍形式就是无..._android url转码