BASEプロダクトチームブログ

ネットショップ作成サービス「BASE ( https://thebase.in )」、ショッピングアプリ「BASE ( https://thebase.in/sp )」のプロダクトチームによるブログです。

Go Conference'19 Summer in Fukuoka にて登壇、費用対効果のいいユニットテストの考え方と実践について話しました #gocon

こんにちは!BASE BANK株式会社 Dev Divisionでソフトウェアエンジニアをやっている東口(@hgsgtk)です!7月13日(土)に福岡で開催されたGo Conference'19 Summer in Fukuokaで登壇してきました。登壇内容や当日についてざっとレポートします。

f:id:khigashigashi:20190717110314p:plain

Go Conference'19 Summer in Fukuoka - Go Conference'19 Summer in Fukuoka

登壇内容

Cost-effective Go unit test thinking and practices というタイトルで発表させていただきました。

個人的な観測では、Go界隈はユニットテストを書くことやテスタビリティの良いコードへの意識は強く、すでにユニットテストの技法に関する良資料はたくさんあるのですが、今回はWHYに着目した観点でプロポーザルを出して採択いただきました。

PHP界隈のカンファレンスでもユニットテストの現場の問題を原則に立ち返って考えるなど、「ユニットテストを作る設計指針」なるものを考えてきました。しかし、Goでは"Proper error handling, reporting"や"table-driven testing"など公式的に提案しているような基礎的な考え方・技法があるといった特殊な点があったので、ユニットテストの目的自体に立ち返って「Goのこの考え方・技法にはどのようなメリットが有るか」というところから抑えた内容としました。

また、現場でGoコードのテストを実践していく中で基礎を忘れてしまうと、Goが狙っている方向性からずれてしまったり、費用対効果の低い"資産価値の低いテストコード"が生まれてしまう事があるなと感じていました。なので、実践例を示した上で「ユニットテストの目的」までつながる背景論理を発表内容に投写することを試みました。現場での実践に参考になれば良いなという願いを込めつつ。

業務で使用している方なら一度は触っているであろうものについての解説なので、期待感に答えられたか不安でしたが、twitterや懇親会などでいい反応をいただけました、安堵...。

参加して

今回、福岡でのGo Conferenceは初めての試みのようでしたが、初めてと全く思えない運営の方々のきめ細やかで大変満足感を持ってカンファレンスを終えました。

また、去年からPHPのカンファレンスに出ていくことが多かった私にとっては、お世話になっているPHPerの方々がちらほらいらっしゃる安心感がありました。

スピーカーディナー終了後は、同じく登壇されていて普段から交流のあった@budougumi0617さん・@po3rinさんと天神の屋台に繰り出すなど福岡を堪能できた一日になりました!

次は

さて、次回繰り出すのは7月24日〜7月27日にアメリカ・サンディエゴで開催されるGopherConです。Building API Server-side architecture for beginnersというタイトルでLTしに行きます。

www.gophercon.com

帰国したら現地レポートブログを公開するのでお楽しみに!