golang技巧_学习Golang的4个技巧

golang技巧

2014年夏天...

IBM:“我们需要您去弄清楚这个Docker问题。”
我:“好。”
IBM:“开始贡献力量,就参与其中。”
我:“好。” (内部语音):“这是用Go语言编写的。那是什么?” (谷歌)“哦,一种编程语言。我在职业生涯中已经学到了一些。可以这么难。”

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

对学习一种新的编程语言感到紧张 。 但是Go感觉与众不同。 我打算在GitHub的上游公开做出贡献,任何有兴趣的人都可以看到! 我不想成为40岁左右的高级开发人员,成为Go的新手! 我们都知道,不管您的经验水平如何,程序员都不喜欢伤痕累累。

我的早期调查表明,Go似乎比某些语言更致力于其“惯用性”。 这不仅是要编译代码;还包括编译代码。 我需要能够编写代码“ Go way”。

现在我已经有4年了几百次请求,我并没有声称自己是专家,但是与2014年相比,我确实更愿意提供和编写Go代码。您会教一个老头新技巧吗?或者至少会教一种新的编程语言? 这四个步骤对我自己前往Golang的旅程很有价值。

1.不要跳过基本原则

尽管您也许可以通过复制代码,在早期的学习中寻找和啄食(谁有时间阅读手册?!?)来解决问题,但Go的语言规范可读性很强,可以清楚地阅读和理解,即使您没有语言或编译器理论的硕士学位。 鉴于Go对parameter:type构造的顺序做出了一些独特的决定,并且具有有趣的语言功能(例如通道和goroutines),因此扎根于这些新概念非常重要。 与Golang创作者的另一篇重要资源-Effective Go一起阅读本文档,将极大地提高您准备有效和正确使用该语言的意愿。

2.向最好的人学习

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

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

3.使用良好的语言工具

您将快速了解gofmt的价值。 Go的优点之一是,每个项目都无需争论代码格式化指南, gofmt内置在语言运行时中,它根据一组稳定且易于理解的语言规则来格式化Go代码。 我不知道有任何基于Golang的项目不坚持要求使用gofmt来检查拉取请求,这是持续集成的一部分。

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

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

4.进入并编写一些Go!

除非您开始尝试,否则您在编写Go语言方面永远不会变得更好。 查找一个带有某些“需要帮助”问题的项目,并做出贡献。 如果您已经在使用用Go编写的开源项目,请查找是否存在一些具有初学者级解决方案的bug,并提出第一个请求请求。 与生活中的大多数事物一样,唯一真正的改善方法是通过练习,因此继续前进。

而且,事实证明,很显然,您可以教老的高级开发人员新的技巧-或至少是语言。

翻译自: https://opensource.com/article/18/11/learning-golang

golang技巧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值