{\color{blue}{我是 Go 大叔,一个用心分享 Go 语言知识的码农,希望可以帮你少走一些弯路}}

建议你花 5 钟读完这篇文章,可以帮你节省100% 的寻找答案的时间,一定要坚持读到最后。

收藏的知友记得点个赞,大叔花了不少时间搜集整理,让好东西值得更多人看到。

对于你说的问题,大叔觉得比较正常,目前已经有很多大厂开始使用 Go 语言了,但是 Go 工程师很难找到,薪资也比较高,所以公司建议不少 Java 开发工程师转到 Go 工程师上面,一方面减少招聘人才的需求,另一方面降低的招聘薪资水平。

那么应届生从 Java 转行到 Go 正确吗?

大叔可以肯定的告诉你,这是正确的,既然公司建议你转行,那么肯定是愿意耗费时间,让你去学习 Go 语言的,而且 Go 发展的趋势相当的不错。

Go 语言电子书推荐



Go语言圣经:提取码:7emu


Go语言实战:提取码:f7o2


Go语言学习笔记:提取码:7il3

国内有哪些大厂开始使用 Go 语言?

国内的大厂包括知乎、百度、阿里巴巴、小米、腾讯、网易云、白山云、字节跳动、七牛云、映客、旷视科技、米莉、OPPO、七牛云、商汤科技、迅雷、易宝、有米、滴滴、360、雪球等等知名公司,同时也有一些创业公司在使用 Go 语言。

Go 语言在很多应用领域都有其优势

1.性能优越感;Go 极其地快,其性能与 Java 或 C++相似。在我们的使用中,Go 一般比 Python 要快 30 倍;

2.序列化/去序列化、排序和聚合中表现优异;

3.开发者效率较高;多种赋值、数据结构、指针、格式化以及内置的 HTTP 库等能使给开发者提供快速着手开发;

4.Go 的并发性方法非常容易上手;

5.编译速度快;

6.增强团队语言聚合力;Go 非常简单,且易于学习。它只提供了基本功能而没有多余。Go 引入的新概念是「defer」声明,以及内置的带有 goroutines 和通道的并发性管理。

7.Go 具备稳定的生态系统;Go 有着强大的工具支持,面向 Redis、RabbitMQ、PostgreSQL、Template parsing、Task scheduling、Expression parsing 和 RocksDB 的稳定的库;

8.GOFMT,强制代码格式;Gofmt 用一种官方的形式规格代码,避免了不必要的讨论;

9.Go 语言对 protocol buffers 和 gRPC 有一流的支持等;

Go 语言应用场景

网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用、内存数据库等

云平台开发,目前国外很多云平台在采用 Go 开发

服务器编程, 以前你如果使用 Java 或者 C++ 做的那些事情,都可以用 Go 来做

分布式系统,数据库代理器等

它可以做从底层到前端的任何工作

Go 语言作为后端开发编程语言的适用场景,也就是分布式应用、网络爬虫以及后端API。

以上几点是大叔认为目前越来越多的公司开始拥抱 Go 语言的原因,其次 Go 相关岗位薪资比较高,所以很多开发者开始学习 Go 语言了。

Go 语言学习建议

不要通过共享内存进行通信,通过通信共享内存

并发不是并行

管道用于协调;互斥量(锁)用于同步

接口越大,抽象就越弱

利用好零值

空接口 interface{} 没有任何类型约束

Gofmt 的风格不是人们最喜欢的,但 gofmt 是每个人的最爱

允许一点点重复比引入一点点依赖更好

系统调用必须始终使用构建标记进行保护

必须始终使用构建标记保护 Cgo

Cgo 不是 Go

使用标准库的 unsafe 包,不能保证能如期运行

清晰比聪明更好

反射永远不清晰

错误是值

不要只检查错误,还要优雅地处理它们

设计架构,命名组件,(文档)记录细节

文档是供用户使用的

不要(在生产环境)使用 panic()

每个 package 实现单一的目的

显式处理错误

尽早返回,而不是使用深嵌套

让调用者处理并发(带来的问题)

在启动一个 goroutine 时,需要知道何时它会停止

避免 package 级别的状态

简单很重要

编写测试以锁定 package API 的行为

如果你觉得慢,先编写 benchmark 来证明

适度是一种美德

可维护性

Go 语言学习路线图(2021版)

除了 Go 语言学习指南这张路线图之外,大叔再 GitHub 上寻找到了第 2 张 Go 语言学习路线图,目前被广大 Golang 爱好者,它是 Golang 学习路线图 2021 版本,非常新。

最后,避免你学习踩坑,大叔将自己整理的学习踩坑建议分享与你,助力你能少走一些弯路。

7 天学习 Go 语言核心知识

7天用Go从零实现Web框架 - Gee

Gee 是一个模仿 gin 实现的 Web 框架,Go Gin简明教程可以快速入门。

7天用Go从零实现分布式缓存 GeeCache

GeeCache 是一个模仿 groupcache 实现的分布式缓存系统

7天用Go从零实现ORM框架 GeeORM

GeeORM 是一个模仿 gorm 和 xorm 的 ORM 框架

gorm 准备推出完全重写的 v2 版本(目前还在开发中),相对 gorm-v1 来说,xorm 的设计更容易理解,所以 geeorm 接口设计上主要参考了 xorm,一些细节实现上参考了 gorm。

7天用Go从零实现RPC框架 GeeRPC

net/rpc

Go 语言学习资料大全

最后,大叔祝你在 Go 语言学习的道路上面越走越远。

最后,如果觉得的大叔的分享对你有帮助,欢迎点赞、收藏、关注三连支持