Go开发者路线图2019,请收下这份指南-程序员宅基地

640?wx_fmt=jpeg


整理 | 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开发者路线图


640?wx_fmt=png


学习资源整理


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”,了解票务以及会务详情。


640?wx_fmt=png


推荐阅读


640?wx_fmt=png

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/89702474

智能推荐

RDD自定义排序_rdd按照成绩排序-程序员宅基地

文章浏览阅读4.5k次。在spark中很多时候回去对RDD进行排序,但是官方给的排序规则无法满足我们的需求,许多时候需要我们重新定义排序规则,接下来我们来谈论一下RDD的排序规则。首先我们通过代码来看一下sparkAPI中自带排序算子sortBy和sortByKey val conf = new SparkConf().setAppName("sortByKey").setMaster("local[2]")_rdd按照成绩排序

C#中的深度学习:了解神经网络架构_c# 深度学习-程序员宅基地

文章浏览阅读2k次。在这里,我们将向不具备AI知识的读者介绍机器学习(ML)的基础知识,并描述在监督的ML模型中的训练和验证步骤。下载源1.5 MBML是AI的一个分支,它通过从一组示例中进行概括而不是接收明确的指令,试图使机器找出如何执行任务。机器学习有三种范式:监督学习,无监督学习和强化学习。在监督学习中,模型(我们将在下面讨论)通过称为训练的过程学习,在模型中提供示例输入及其正确输出。它了解数据集示例中的哪些特征映射到特定输出,然后能够在称为预测的阶段中预测新的传入数据。在无监督学习中,模型通过分析数据之间的关系来_c# 深度学习

Dart中的垃圾回收机制_dart 垃圾回收-程序员宅基地

文章浏览阅读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反射机制是在运行状态,对任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取信息以及动态调_编程中的反射技术

Mysql show processlist 排查问题_show full processlist 排序-程序员宅基地

文章浏览阅读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 排序

【Redis学习】Redis分布式锁实现秒杀业务(乐观锁、悲观锁)_redisutils.getinstance().get-程序员宅基地

文章浏览阅读872次。【Redis学习】Redis分布式锁实现秒杀业务(乐观锁、悲观锁)原创 2017年10月17日 21:48:33标签:redis/分布式锁/秒杀系统/乐观锁/悲观锁1、业务场景所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源,这里的资源在大部分秒杀场景里是商品;将业务抽象,技术角度看,秒杀就是多个线程对资源进行操作,所以实现_redisutils.getinstance().get

随便推点

盘点工业机器人四大家族——ABB机器人_什么事abb机器人_老郭带你学工控的博客-程序员宅基地

文章浏览阅读1.6k次。ABB(AseaBrownBoveri)是一家由两个历史100多年的国际性企业(瑞典的ASEA和瑞士的BBC Brown Boveri)在1988年合并而成,名列全球500强,总部坐落于瑞士苏黎世。ABB的业务涵盖电力产品、离散自动化、运动控制、过程自动化、低压产品五大领域,以电力和自动化技术最为著名。ABB拥有当今最多种类的机器人产品、技术和服务,是全球装机量最大的工业机器人供货商。ABB强调的是机器人本身的整体性,以其六轴机器人来说,单轴速度并不是最快的,但六轴一起联合运作以后的精准度是很高的。_什么事abb机器人

Spring项目: java.lang.IllegalArgumentException: Could not resolve placeholder ‘oracleDriver‘ in value_could not resolve placeholder oracle-程序员宅基地

文章浏览阅读1.5k次。spring-mybatis.xml图二,如果import标签引入资源文件需不放在配置文件开头,则spring-mybatis.xml中通过$是无法将配置文件中value注入;报错如图三图二图三..._could not resolve placeholder oracle

解决win10文件资源管理器崩溃问题_文件资源管理器总是崩溃-程序员宅基地

文章浏览阅读4.2w次,点赞30次,收藏35次。最近电脑的文件资源管理器一直出现随机崩溃的问题,通过查看日志 病毒扫描 系统修复都没有解决这个问题,偶然在网上看到一篇帖子竟然解决了这个问题。竟然是因为这个详细信息窗格!虽然不了解深层的原因,不过希望微软尽快解决这个bug。遇到同样问题的朋友可以尝试一下,取消勾选详细信息窗格。..._文件资源管理器总是崩溃

使用php或.htaccess限制ip访问,htaccess访问控制篇:限制IP访问、防盗链-程序员宅基地

文章浏览阅读102次。基于referer来限制网站访问RewriteEngine onRewriteCond %{HTTP_REFERER} spamteam.com [NC,OR]RewriteCond %{HTTP_REFERER} trollteam.com [NC]RewriteRule .* - [F]防止目录浏览一般情况下目录浏览是关闭的,如果目录浏览被默认打开,可以使用一下语句来禁止目录浏览。Option...

linux-3.2.36内核启动1-启动参数(arm平台 启动参数的获取和处理,分析setup_arch)-程序员宅基地

文章浏览阅读2.6k次。最近公司要求调试一个内核,启动时有问题,所以就花了一点时间看看内核启动。看的过程中总结了一点东西,希望可以帮助大家调试内核。当我开始看的时候,第一件事是从网上搜集资料,不看不知道,一看吓一跳!牛人太多了,像这种内核启动的上古代码早就被人分析的彻彻底底。这注定我写的只能是烂微博了。为了此微博有存在的必要,我会显示内核启动打印的代码位置(用绿色表示)及出现错误打印的原因(用红色

Android url转码填坑-中文转码以及特殊字符-程序员宅基地

文章浏览阅读4.6k次。先来说几个概念:URI :Uniform Resource Identifier,统一资源标识符;URL:Uniform Resource Locator,统一资源定位符;URN:Uniform Resource Name,统一资源名称。其中,URL,URN是URI的子集。Web上地址的基本形式是URI,它代表统一资源标识符。有两种形式:URL:目前URI的最普遍形式就是无..._android url转码

推荐文章

热门文章

相关标签