vlambda博客
学习文章列表

Go 语言趋势与读者问题闲谈!

哈喽,大家好,我是 Go大叔,专注分享 Go 语言知识,一起进入 Go 的大门。

最近很多读者询问大叔,建不建议转行 Go 语言,包括 Java、PHP、前端、C、Python 等方向的编程从业者。

为什么越来越多的人开始学习 Go 语言?

其实,大叔有几点浅薄的意见供大家参考:

1、 Go 语言天生名门,出生娇贵,背靠 Google 公司,跟着谷歌走,吃喝啥都有。

Go 语言趋势与读者问题闲谈!

2、 Go 语言编写的程序,既可以媲美 C 或 C++ 代码的运行速度, 也可以媲美 Ruby 或 Python 开发的效率,被誉现代化的编程语言,同时拥有 Docker、Kubernetes 等知名应用。

大叔和身边一群大牛都无限看好 Go 语言,现在开始搞 Go 语言,过两年大概就是第一批吃螃蟹的人。

上面回答了第一个问题,为什么其他领域编程语言从业者纷纷投抱 Go 语言。

第二个问题是,很多读者询问 Go 语言如何快速入门,说实话,目前上优质的 Go 语言开源教程并不像 Java、Python 一样铺天盖地。

我们先来看看知乎上面随便一个 Go 问题的热度值:

所以,是时候开始重视 Go 语言了,把 Go 当做工作之外的第二门编程语言,绝对是不错的选择。

关于 Go 语言基础、进阶大叔会不断的更新文章,希望大家可以每天抽 2 分钟学习一下,相信对你入门或者进阶 Go 语言帮助十分很大。

Go 语言基础学习资料

关于基础学习大叔只推荐两个开源项目,搞定这两个项目,如果你没学懂,那么大叔建议你还是放弃学习编程吧。

  1. GoGuide (Go 语言学习指南),市面上第一本以 C 语言的角度对比讲解 Go 语言,有 C 语言基础,可也让你学习 Go 语言更简单。
项目地址:https://github.com/coderit666/GoGuide
  1. 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 来证明
  • 适度是一种美德
  • 可维护性

一个人走的太慢,一群人才能走的更远。

最后,分享不易,喜欢大叔的文章,记得分享、点赞、在看、三连支持!