前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习Golang的4个技巧【Programming(Go)】

学习Golang的4个技巧【Programming(Go)】

作者头像
Potato
修改2019-11-25 15:14:26
8410
修改2019-11-25 15:14:26
举报
文章被收录于专栏:Opensource翻译专栏

学会Golang:高级开发者的旅程。

图片来源:Pixabay,CC0
图片来源:Pixabay,CC0

在2014年的夏天:

IBM:“我们需要你去解决这个Docker的问题。”

我:“好吧。”

IBM:“开始贡献力量,并参与其中。”

我:“好。”(内部对话):“这是用Go语言编写的。那是什么?”(谷歌工作人员):“哦,一种编程语言。我在职业生涯中已经学到了一些。没那么难吧。”

我们大学的一年级编程课程是用VAX汇编程序教的。在数据结构类中,我们在图书馆计算机中心的老旧电脑上通过软盘加载使用pascal。在一个高级课程中,我有一位教授喜欢展示ADA中的所有示例。通过在Sun工作站上使用各种Unix实用程序的源代码,我学到了一些C语言。在IBM,我们使用C(和一些x86汇编程序)编写OS/2源代码,并且在与Apple的联合项目中大量使用了C++的面向对象功能。从csh开始,我很快就学会了shell脚本,但是在90年代中期找到Linux之后,我又转向了Bash。当我在90年代后期将IBM定制JVM代码的即时(JIT)编译器移植到Linux时,我被迫学习m4(更多地可以说是宏处理器,而非编程语言)。

快20年了,我从没对学习新的编程语言感到紧张。我打算在GitHub的上游做一些公开的贡献,任何有兴趣的人都可以看到!我不想成为笑柄——一个40多岁的高级开发人员却是一个Go新手!我们都知道,不管您的经验水平如何,程序员都不喜欢被看低。

我的早期调查表明,Go似乎比某些语言更致力于其“惯用性”。这不仅仅是要使代码可以被编译,而是要用Go的方式来编写代码。

现在我已经学习四年了,在我个人的Go之旅中收到了几百个请求,我并不自称是一个专家,但是与2014年相比,我确实觉得贡献和编写Go变得要舒服得多。那么,你该如何教一个老家伙新的技巧,或者至少教一门新的编程语言呢?这里有四个步骤,在我自己的Golang之旅中是很有价值的。

1.不要跳过基本原则

虽然在早期学习中你可以通过复制代码、搜索来学习(谁有时间阅读手册?!?))。Go的语言规范可读性很强,即使您没有语言或编译器理论的硕士学位也可以阅读和理解。鉴于Go对parameter:type构造的顺序做出了一些独特的决定,并且具有有趣的语言功能(例如通道和goroutines),因此扎根于这些新概念非常重要。与Golang创作者的另一篇文章EffectiveGo一起阅读,将让你准备好有效而恰当地使用这门语言。

2.向最好的学习

有很多宝贵的资源可用于深入挖掘Go知识。最近GopherCon的所有演讲都可以在网上找到,例如2018年GopherConUS的这份详尽清单。讲座涉及专业知识和技能水平,但是您可以通过观看讲座轻松找到你不知道的Go知识。Francesc Campoy创建了一个名为JustForFunc的Go编程视频系列,该系列的节目越来越多,以扩展您对Go的了解和理解。快速搜索“Golang”会为想要了解更多信息的人显示许多其他视频和在线资源。

想看代码吗?GitHub上许多最受欢迎的本地云计算项目都是用Go编写的:Docker/Moby,Kubernetes,Istio,containerd,CoreDNS等等。语言纯正者可能会对某些项目的习惯性进行评价,但是这些都是了解大型代码库在活跃项目中使用Go的良好起点。

3.使用好的语言工具

你将很快了解gofmt的价值。Go的一个优点是,对于每个项目的代码格式指南没有争议——gofmt内置在语言运行时中,它根据一组稳定的、易于理解的语言规则格式化Go代码。我不知道有哪个基于golang的项目不坚持使用gofmt检查拉请求,以此作为持续集成的一部分。

除了直接在运行时/SDK中内置的大量有用工具之外,我强烈建议使用具有良好Golang支持功能的编辑器或IDE。因为我经常在命令行中找到自己,所以我依靠Vim加上出色的vim-go插件。我也喜欢Microsoft随VSCode提供的功能,尤其是其Go语言插件。

寻找调试器?Delve项目一直在完善和成熟,并且是在Go二进制文件上进行类似gdb调试的有力竞争者。

4.加入进来,写一些Go

除非你开始尝试Go,否则你永远不会写得更好。查找一个带有某些“需要帮助”问题的项目,并做出贡献。如果您已经在使用Go编写的开源项目,那么找出是否有一些bug具有初级解决方案,并发出第一个pull请求。对于生活中的大多数事情,唯一真正有效的提高方法是通过实践,所以开始吧。

而且,事实证明,你可以教一个老高级开发人员新的技巧——至少在语言方面。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.不要跳过基本原则
  • 2.向最好的学习
  • 3.使用好的语言工具
  • 4.加入进来,写一些Go
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档