テスト駆動開発でGO言語を学びましょう (original) (raw)

テスト駆動開発でGO言語を学びましょう

Learn Go with Tests

Art by Denise

Go言語でテスト駆動開発を学ぶ

翻訳:英語, 中文, Português, 日本語

私は、開発チームにGoを導入した経験があり、Goに興味のある人から、Goシステムの非常に効果的なライターへとチームを成長させる方法について、さまざまなアプローチを試してきました。

私たちが試したアプローチとして、 Go Programming Language を手に取り、毎週次の章を練習問題と一緒に議論することでした。

私はこの本が大好きですが、それには高いレベルのコミットメントが必要です。この本は概念の説明が非常に詳細に書かれていて、それは明らかに素晴らしいことですが、それは進歩がゆっくりと着実に行われていることを意味しています。

少数の人は第X章を読んでエクササイズをしますが、多くの人はそうではありませんでした。

「問題」は楽しいですが、通常は言葉を覚える範囲が限られています。 「問題」を解くためにゴルーチンを使うことはほとんどありません。

もう一つの問題は、熱意のレベルが異なる場合です。ある人は、他の人よりもずっと多くの言語を学んでいるだけで、自分がやったことを実演するときに、他の人がよく知らない特徴で人々を混乱させてしまうことになってしまいます。

これは、学習が非常に構造化されておらず、その場しのぎのものになってしまうことになります。

圧倒的に効果的だったのは、go by exampleを読んで、例題で探りながらゆっくりと言語の基礎を紹介し、グループで議論するという方法でした。これは、「宿題のために第X章を読む」よりも、よりインタラクティブなアプローチでした。

時間が経つにつれ、チームは言語の文法の基礎をしっかりと身につけ、システムを構築することができるようになりました。

これは、ギターを習おうとするときに音階を練習するのと似ていると思います。

自分がどれだけ芸術的だと思っていても、基礎を理解し、その仕組みを練習しなければ、良い音楽を書くことはできないでしょう。

新しいプログラミング言語を学ぶとき、私は通常REPLをいじくりまわして始めますが、最終的にはもっと構造が必要になってきます。

私が好きなのは、コンセプトを探求し、テストでアイデアを固めていくことです。テストは、私が書いたコードが正しいかどうかを検証し、学んだ特徴を文書化します。

グループで学んだ経験と自分なりのやり方で、他のチームの役に立つことを証明できるようなものを作っていきたいと思います。

小さなテストを書くことで基礎を学び、あなたの既存のソフトウェア設計のスキルを活用して、いくつかの素晴らしいシステムを出荷できるようにしたいと思っています。

MIT license