LOG IN

実務で使える テストの話をしよう。golang.tokyo #2 in 株式会社はてな

by godgarden

株式会社はてなで開催された golang.tokyo #2 にブログ枠として参加してきました。
スライドのクオリティーが高かったので、スライドが全て感が否めないですが頑張って整理しました...

前回の golang.tokyo #1の様子は 別エントリーに書いておりますので、気になった方は見てみてください。

golang.tokyoとは

Go言語の導入企業やメンバーが中心となって、Goコミュニティを盛り上げるために定期開催されているイベントです。今回で2回目の開催となります。
前回に続いて、100名を超える応募者の中から抽選での参加となっているため、国内でのGoに対する注目度も高くなってきています。実践で使えるをコンセプトに運営されているイベントです。

登壇者について

松木 雅幸 / 株式会社はてな / @songmu

Mackerelのディレクター兼はてな東京オフィスのチーフエンジニア。Perlのエンジニアだが最近はGoが多い。Mackerelの開発では主にScalaとGoを活用。最近「みんなのGo言語」という本を書きました(共著)。
https://golangtokyo.connpass.com/event/44807/

Taichi Nakashima / @deeeet

A PaaS Engineer in Tokyo http://deeeet.com
最近「みんなのGo言語」という本を書きました(共著)
https://golangtokyo.connpass.com/event/44807/

みんなのGo言語のでお馴染みのお二人がメインセッションを担当。Twitterフォローさせて頂いているとGoに関する情報がキャッチアップ出来るのでオススメです!

【メインセッション】

テストしやすいGoコードのデザイン/ @deeeet

当日のスライドはこちらになります。

大事なことはスライドにつまってる!ってくらい読み応えあります。
TableDrivenTestを積極的に使ってUnit Testしましょう。

「テストしにくくなるのはなぜか」「テストを書きやすくするには」というありがたいお話。
コードの事例がたくさんあるのでGoでのテストの書き方も勉強になります。考え方はGoに限らず他の言語にも通じるところがあります。

テストが書きにくくなる理由として以下をあげられていました。

私が初めて書いたGoのコードはまさに上記のようなコードとなっていました。
今はinterfaceで抽象化したりTDTを使って書けていますが、もっと早くにこの発表を見たかった...

interfaceの使い方やMock使ってテストする方法については、haya14busaさんが書かれている「Golangにおけるinterfaceを使ったテストでMockを書く技法」や tenntennさんが書かれているインターフェースの実装パターンなども参考になるかと思います。

Q. deeeetさんはどのテストはどういうタイミングで書かれていますか?DDDとか。

DDDではやっていないですね。最初はmainにバーと書いて、動くものが出来て抜き出してテストを書いていく感じでやってます。

MackerelにおけるGoのエコシステムとかテストとか/ @songmu

当日のスライドはこちらになります。

はてな さんのサーバー監視サービスのMackerelでどのようにGoを使って運用しているかや、ミドルウェア周りのテストのお話でした。特にミドルウェア周りのテストの話は勉強になりました。
良さそうなライブラリがたくさん紹介されていたので是非使ってみたいと思います。

【LT:ライトニングトーク】

Plain db import with Go / @timakin

Goで始める JSON-RPC入門 / @osamingo / 株式会社ソウゾウ

Continus Deployment with Go on AWS EC2 / KazuhisaTogo

最後に一言, 二言。

「実務で使えるテストの話をしよう」というタイトルの通り、実務でがっつり使えるテストのお話でした。Goで簡単な動くものは作れたけど、さあテストがうまく書けない...というのは往々にしてあるので、今回のTipsを引き出しとして持っているだけでも絶対に役に立つと思います。

また今回は はてなさんがスポンサーで、ピザやアルコールを提供してくれての懇親会の時間もあったので、Goをやっているエンジニアの方とネットワークが広げられたり、話せる時間があって良かったです。ありがとうざいました。

当日の雰囲気は主催者の @tenntenn さんがまとめてくれています。

それでは皆さん、楽しいエンジニアライフを
来年もよろしくお願いします。


godgarden
OTHER SNAPS