せてぃーずノート

Javaのイベント参加レポートとかを書いたりします。

JJUG_CCCでTestcontainersについて話してきた

スライドはこちら

speakerdeck.com

CFP出す→採択まで

過去何回かJJUG CCCに参加している中、ネタがあったらいつか喋ってみたいと思っていました。そんな時Testcontainersを使ってみてとても良いと感じたのでこれは話すネタなのでは思いました。

前回、前々回のJJUG CCCを調べてみたらTestcontainersのセッションがなかったので、出さないで後悔するより出して後悔ってことでダメ元でcfpを出してみました。

採択→スライド作成

採択されてしまったのでスライドの構成を考え始めました。持ち時間は15分だったので、導入からSpringへの組み込みまでを一通り紹介すれば時間ちょうどくらいという作戦で進めることにしました。

GW前にスライドは完成させようと思っていたが、急に仕事が忙しくなった&エルデンリングが楽しかった&とても面白いボードゲーム(Dune砂の惑星)を買ってしまったため作スライド作成はあまり進まない日々が続きました。(頭の中で色々考えてはいたけど、手を動かすのをサボりまくり・・・)

締め切りギリギリじゃないと真面目に始めないの良くない!

動画作成→リテイク

動画作成についてはこんな感じで作ってました

  1. keynoteで1〜2ページ喋る
  2. 動画に出力してiMovieに放り込んで結合
  3. 見返して気に入らないところを差し替え

収録日が変わってテンションが違うのは妥協・・・

とりあえず一通り作った後、知り合いのエンジニアに作成した動画を見てもらったところ「これ、ライブラリの使い方についてただ喋っているだけじゃん。公式HPみればいいんじゃない?知らんけど」という厳しいツッコミを受けました。

確かに言われてみればその通りだと思い、「とにかくこのライブラリは簡単!」というところを過剰に押し出すテーマに変更しました。

スライドの構成としてはこんな感じに変えています。

  • やり方がN個あるのでN個を薄く紹介する→一番使いやすいと思った物をちゃんと紹介
  • 余談的なネタを削除
  • YouTubeインパクトのあるサムネを出した方がいいと聞いたので最後におふざけを追加

結局15分の動画作成に合計1人日以上使って、なんだかんだで締め切り1日前に投稿できました。

得られた物&改善したいところ

自分の未熟さを痛感しました。もっと上手くできると思っていたけど、現実はそんなに甘くなかったなぁ、と。Testcontainers自体はシンプルで使いやすいライブラリですが、それを紹介するのは本当に難しい。JJUGに登壇する人のレベルの高さを改めて実感しました。

あと最後のライブセクションは緊張しすぎて、せっかくJJUGTシャツを着てたのにZOOMのカメラがオフになっていたという自爆をかましました!

それでも、発表を見て使ってくれる人が1人でもいれば成功なのではと今は思っています。

発表や動画についても、「こんなレベルでもいけるんだったら俺の方がうまくやれるぜ!JJUG_CCC_Fallに来てください、本当の発表をお見せしますよ!」って思って登壇する人が増えてくれればなぁと思います。

FAQとか

モジュールにないコンテナも使えるの?

使えます。DockerComposeモジュールがあるので、移行することもできます。

コンテナを使ったテストにかかる時間の話

PCの性能次第。超ハイスペックマシンだと気にならないけど、少し古いPCだとストレス溜まるかも。 それでもCPUの性能が向上してきているのでユニットテストに組み込んでも実用的なレベルになってきているのではと思います。

CIハマったところ

Docker-in-Dockerで困ったことはあまりないです。 privilegedが使えない環境でTestcontainersがこけるところにハマりました。

Custom configuration - Testcontainers

移行での採用

開発中のデータベースバージョンアップで使えました。 TastcontainersでDBのバージョン指定しているところを変更し、GitにPushするだけで開発者全員の環境がバージョンアップされるの本当にやばい。

その他

ハマりどころはTestcontainersではなく動くコンテナ側やプロダクトコード・テストコードの方が多いです。 Testcontainersを使って並列でテスト実行は簡単なのですが、テストクラスで問題が出て泣く泣く諦めるケースも・・・。

最後に

初登壇かつ動画作成も不慣れなところをサポートしていただいたJJUGのスタッフさんに感謝しかないです。

おまけ

動画作りは面白かった&ボイロを購入して使ってみたいので今回のスライドのボイロ版を作ろうと思います