33

[译] 通过测试学习 Go 语言

 4 years ago
source link: https://www.tuicool.com/articles/Qzmeaua
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

点击上方蓝色“ Go语言中文网 ”关注我们,设个星标,每天学习 Go 语言

从今天起,Go语言中文网公众号为大家带来一个系列:通过测试学习 Go 语言,希望对新手学习有帮助!

I7Rnqef.jpg!web

图片由 Denise 创作 [1]

通过 Go 语言学习测试驱动开发

其他语言: English [2] , Português [3]

  • 通过编写测试学习 Go 语言

  • 为测试驱动开发打下基础。Go 是学习测试驱动开发的优秀语言,因为它简单易学而且内置测试功能

  • 相信你很快就可以使用 Go 语言编写健壮的、经过良好测试的系统

背景

我曾经向一些开发团队介绍过 Go 语言,并尝试用不同的方法促使一个团队从对 Go 感兴趣成长为 Go 的高效开发者。

无效的方法

阅读相关书籍

我们尝试过阅读 蓝皮书 [4] (The Go Programming Language),每周在练习的同时讨论下一章的内容。

我很喜欢这本书,但它需要高度的投入。它非常详细地解释了每个概念,这很棒但也意味着进步是缓慢的 —— 这不适用于每个人。

我还发现只有一小部分人会阅读第 x 章并完成章节后的练习,大多数人都不会做。

解决一些问题

Kata [5] [^注1](编码套路)很有趣,但是对于学习一门语言,它的作用有限,你不太可能用 Go 例程来解决 kata 问题。

另一个问题是每个人学习的热情不同,当学的更多的人演示他们开发的功能时,会导致其他人对不熟悉的特性感到困惑。

这最终会使学习的体验变得 凌乱无序

有效的方法

到目前为止,最有效的方法是通过 go by example [6] 逐步介绍语言的基础,通过例子探索学习,并以小组形式讨论。这是一种比「阅读并完成第 x 章的练习」更具互动性的方法。

随着时间的推移,团队获得了坚实的语法基础,这样我们就可以开始构建系统了。

这对我来说就像是在学习吉他时练习音阶。

不管你认为自己多有艺术感,你不可能在不了解基本原理和练习技巧的情况下写出好音乐。

对我有效的方法

当学习一种新的编程语言时,我通常会在 REPL(Read-Eval-Print-Loop)环境下随意编写代码,但是最终我还是要让程序更加结构化一点。

我喜欢探究概念,然后通过测试来巩固这些想法。测试验证我编写的代码是正确的,并记录我已经学到的特性。

以我的团队学习经历和我自己的个人风格,我将尝试创造一些新的学习方式,希望证明对其他团队也有用。通过编写简单的测试来学习基础知识,这样你就可以掌握现有的软件设计技巧并交付一些优秀的系统。

适用人群

  • 对学习 Go 语言有兴趣

  • 已经对 Go 有一些了解,但是想要了解更多测试的内容

准备工作

  • 一台电脑

  • 安装 Go [7]

  • 一个文本编辑器

  • 一些编程的经历,理解 if 、变量、函数等的概念

  • 熟练地使用终端

反馈

  • 这里 [8] 提交 issue/PR 或者 tweet me @quii [9]

MIT license [10]

作者: Chris James [11] 译者: Donng [12] 校对: flw [13] 、 pityonline [14]

本文由 GCTT [15] 原创编译, Go 中文网 [16] 荣誉推出

注 1: 针对某一种特定技术或技能进行重复性的练习,从而将其熟练掌握。套路(Kata)这个概念借鉴于武术,指的是可以独自或多人共同练习的一系列动作、招式。

uQNvuu6.jpg!web

推荐阅读

参考资料

[1]

图片由 Denise 创作: https://twitter.com/deniseyu21

[2]

English: https://quii.gitbook.io/learn-go-with-tests

[3]

Português: https://larien.gitbook.io/aprenda-go-com-testes/

[4]

蓝皮书: https://www.amazon.co.uk/Programming-Language-Addison-Wesley-Professional-Computing/dp/0134190440

[5]

Kata: https://en.wikipedia.org/wiki/Kata_%28programming%29

[6]

go by example: https://gobyexample.com/

[7]

安装 Go: https://golang.org/

[8]

这里: https://github.com/studygolang/learn-go-with-tests

[9]

tweet me @quii: https://twitter.com/quii

[10]

MIT license: LICENSE.md

[11]

Chris James: https://dev.to/quii

[12]

Donng: https://github.com/Donng

[13]

flw: https://github.com/flw-cn

[14]

pityonline: https://github.com/pityonline

[15]

GCTT: https://github.com/studygolang/GCTT

[16]

Go 中文网: https://studygolang.com/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK