写点什么

快速提升 Golang 编程能力:那就一起用 Go 做项目吧

发布于: 7 小时前

Go 语言是一种开源编程语言,可轻松构建简单、可靠且高效的软件。

Go 语言在 2009 年首次亮相,是谷歌开发的一种通用型语言。与 Python 等其他编程语言相比,Go 语言具有多个优势,这也是它值得关注的地方。

速度快

Go 是静态型化和编译的语言,这意味着它的运行速度是 Python 的数倍。而与 Python 不同的是,Go 不需要借助其他语言就可以达到一个较快的速度。Go 几乎和 C++、Java 一样快,而且 Go 语言的代码编译速度比 C++和 Java 快得多。

易于学习

Go 的语法很简单,类似于 C 语言。所以,Go 语言同样很容易学习,如果学习者已经掌握 C 或者 Java 语言的基础知识,学起来就更简单了。

并发

并发是 Go 语言的主要优势之一。Go 使用 Goroutine 实现并发,Goroutine 是可以同时独立运行的函数。Goroutine 只占 2KB 内存,得益于这种轻量级,成千上万个 Goroutine 可以同时运行。

越来越受欢迎

Hackearth 对来自 76 个国家和地区的 16000 余名开发者进行调查的结果显示,Go 语言是 2020 年最受欢迎的编程语言。32%的有经验开发者表示他们想学习 Go 语言。

与此同时,29%的学生也表示想学习 Go 语言。

那么问题来了,如何上手学习 Go 语言呢?

其实官方已经为我们准备了一款在线 Go 语言教程 —— Go 语言之旅(Gotour),支持在线敲代码练习,简直入门必备!


Go 语言之旅

在你了解基本语法,掌握 Go 知识点之后,那么一定要做的就是自己动手完成一个 GO 项目!想快速高效率地掌握 Go 语言,关键是要通过不断写代码去训练,才能熟能生巧。

这里就不得不推荐一本少有讲 GO 语言项目实战的图书

《Go 语言编程之旅:一起用 Go 做项目》



这本书不直接介绍 Go 语言的语法基础,内容面向项目实践,同时会针对核心细节进行分析。在实际项目迭代中,常常会出现或多或少的事故,这本书也针对 Go 语言的大杀器(分析工具)以及常见问题进行了全面讲解。如果你大致学习了 Go 语言的基础语法后,想要跨越到下一个阶段的开发人员,这本书可以很好的填补该阶段的空白和进一步拓展你的思维方向。



全书共包含 5 个大的项目实战:

  • 命令行应用:打造属于自己的工具集,单词格式转换、时间工具、SQL 语句与结构体的转换等

  • HTTP 应用:写一个完整的博客后端

  • RPC 应用:启动你的 RPC 服务,gRPC 和 Protobuf 的使用,gRPC 服务间的内调,提供 HTTP 接口,接口文档等

  • WebSocket 应用,手把手带你做个聊天室,从聊天室需求分析和设计,项目结构组织和基础代码框架,一直到项目部署

  • 进程内缓存,缓存淘汰算法,缓存优化思路等

 

最后一章介绍了 Go 语言中的各个大杀器

  • 性能剖析 PProf

  • 跟踪剖析 trace

  • 用 GODEBUG 看调度跟踪和 GC

  • Go 进程诊断工具 gops

  • 逃逸分析,等等


附录中也是干货满满:

  • Go modules 的入门和使用

  • goroutine 与 panic、recover 的小问题

  • Go 在容器运行时要注意的细节

  • 让 Go“恐慌”的十种方法

这本书的两位作者也都是 GO 圈知名大佬


  • 作者:陈剑煜(煎鱼) “Go 夜读” SIG 小组成员,在社区连载过一系列 Go 语言相关的技术文章,其中“跟煎鱼学 Go”系列广受欢迎。


  • 作者:徐新华(polaris) 人称:p 神,Go 语言中文网站长,在 Go1.0 正式发布时开始接触 Go 语言,并将其用于工作中。9 年来一直致力于推广 Go 语言在国内的发展,致力构建国内 Go 语言中文社区。


为什么已经上市一年,我还给你推荐这本书呢

  • 首印出现的代码错误已全部修订

  • 进入读者群,煎鱼和 P 神以及广大 Gopher 第一时间解答问题

  • 实操性强,手把手实操企业级开发,练手丝滑

  • 讲开发技巧和思路,在实际项目中提升快


我们看看豆瓣网友如何评价此书




既然你已经看到最后了,我也给大家申请到了京东 4.9 折包邮的优惠价,可以扫码或者点击阅读原文下单,一起来吸取煎鱼和 p 神的精华,希望大家进阶到项目实战阶段,实现项目开发自由,分享有效的企业实战经验。



用户头像

还未添加个人签名 2019.10.21 加入

还未添加个人简介

评论

发布
暂无评论
快速提升Golang编程能力:那就一起用Go做项目吧