Go 语言趋势与读者问题闲谈!
哈喽,大家好,我是 Go大叔,专注分享 Go 语言知识,一起进入 Go 的大门。
最近很多读者询问大叔,建不建议转行 Go 语言,包括 Java、PHP、前端、C、Python 等方向的编程从业者。
为什么越来越多的人开始学习 Go 语言?
其实,大叔有几点浅薄的意见供大家参考:
1、 Go 语言天生名门,出生娇贵,背靠 Google 公司,跟着谷歌走,吃喝啥都有。
2、 Go 语言编写的程序,既可以媲美 C 或 C++ 代码的运行速度, 也可以媲美 Ruby 或 Python 开发的效率,被誉现代化的编程语言
,同时拥有 Docker、Kubernetes 等知名应用。
大叔和身边一群大牛都无限看好 Go 语言,现在开始搞 Go 语言,过两年大概就是第一批吃螃蟹的人。
上面回答了第一个问题,为什么其他领域编程语言从业者纷纷投抱 Go 语言。
第二个问题是,很多读者询问 Go 语言如何快速入门,说实话,目前上优质的 Go 语言开源教程并不像 Java、Python 一样铺天盖地。
我们先来看看知乎上面随便一个 Go 问题的热度值:
所以,是时候开始重视 Go 语言了,把 Go 当做工作之外的第二门编程语言,绝对是不错的选择。
关于 Go 语言基础、进阶大叔会不断的更新文章,希望大家可以每天抽 2 分钟学习一下,相信对你入门或者进阶 Go 语言帮助十分很大。
Go 语言基础学习资料
关于基础学习大叔只推荐两个开源项目,搞定这两个项目,如果你没学懂,那么大叔建议你还是放弃学习编程吧。
GoGuide (Go 语言学习指南),市面上第一本以 C 语言的角度对比讲解 Go 语言,有 C 语言基础,可也让你学习 Go 语言更简单。
项目地址:https://github.com/coderit666/GoGuide
Go 语言圣经,入门 Go 语言必备参考书籍
链接:https://pan.baidu.com/s/1gS7RbeTnYcdb46TXejqZoQ 提取码:8nz8
最后,再简单说一下 Go 语言公认的一些开发建议。
Go 语言开发建议
-
不要通过共享内存进行通信,通过通信共享内存 -
并发不是并行 -
管道用于协调;互斥量(锁)用于同步 -
接口越大,抽象就越弱 -
利用好零值 -
空接口 interface{} 没有任何类型约束 -
Gofmt 的风格不是人们最喜欢的,但 gofmt 是每个人的最爱 -
允许一点点重复比引入一点点依赖更好 -
系统调用必须始终使用构建标记进行保护 -
必须始终使用构建标记保护 Cgo -
Cgo 不是 Go -
使用标准库的 unsafe 包,不能保证能如期运行 -
清晰比聪明更好 -
反射永远不清晰 -
错误是值 -
不要只检查错误,还要优雅地处理它们 -
设计架构,命名组件,(文档)记录细节 -
文档是供用户使用的 -
不要(在生产环境)使用 panic() -
每个 package 实现单一的目的 -
显式处理错误 -
尽早返回,而不是使用深嵌套 -
让调用者处理并发(带来的问题) -
在启动一个 goroutine 时,需要知道何时它会停止 -
避免 package 级别的状态 -
简单很重要 -
编写测试以锁定 package API 的行为 -
如果你觉得慢,先编写 benchmark 来证明 -
适度是一种美德 -
可维护性
一个人走的太慢,一群人才能走的更远。
最后,分享不易,喜欢大叔的文章,记得分享、点赞、在看
、三连支持!