ねこものがたり

いちにちいっぽ

RubyKaigi 2024に参加しました

rubykaigi.org

ざっくり感想

沖縄まで行ったのに会期3日中2.3日くらい体調崩してしまいました。しかし参加できた0.7日分くらいだけでも充実していてやはりRubyKaigiは最高だなーと思いました。

トークの感想

Writing Weird Code

オープニングキーノート。Quine作品の数々、意味がわからなかったけどテンション爆上がりしました。 しかもペンさんはストーリーテリングのスキルまで異様に高くて、テンションが上がっただけでなく、RubyRubyコミュニティーって素晴らしいな最高だなということを再認識したのと、この日に至るまでとこれからの様々な人の様々な日々に想いを馳せる時間になりました。めちゃくちゃ感動的でした。 ペンさんって何者なんだろう。

The grand strategy of Ruby Parser

去年のRubyKaigiは自分の不手際でkanekoさんのトークを生で聴けなかったので、今年はちゃんと聴けたのと、タイトルの通り、grand strategyを知れてよかったです。 でもRuby Parserって果たしてなんなんだ、私何も知らんなということを(聞く前からわかっていたけど)痛感しました。 去年はパーサーまわりやっていたのがkanekoさん一人だったけど仲間が増えた話、その仲間たちが登壇するよという話が最高でした。別の時間でkakutaniさんとおしゃべりしている時に、kanekoさん自身がとにかく楽しそうにやっていから仲間が集まったのだろうねというお話をしました。

Strings! Interpolation, Optimisation & Bugs

Mattとは去年のRubyKaigi Day0にあったKeeb Kaigiの際に懇親会でお話ししたことがあったので、彼のトークを聴きに行きたいと思ってこのセッションを選びました。 いつも英語のセッションはなるべく恐れず聴きに行っては雰囲気だけわかったつもりになっていますが、この発表はスライドの図がとてもわかりやすかったので、私でも聴きやすかったです。(内容を本当に解ったかは...?) Rubyでコードを書いている時にほとんどメモリアロケーションのことを考えなくてすむのは、Ruby自体を作っている方々のおかげだと本当に思います。いつも本当にありがとうございます。

Namespace, What and Why

モリスさんがネームスペースに関する活動をされている様子は以前から知ってはいましたが、「ネームスペースとは?」ということを全く解っていなかったので聴きに行きました。 以前、自分のアプリケーション内の定数名がgemの定数名と衝突したことがあったのと、依存先の依存先のライブラリのバージョン管理難しいと感じていたので、そういうことがこのネームスペースで解決るのかなーと理解しました(本当だろうか)。 あまり他言語のことは詳しくないので的外れかもしれないけどJavaがネームスペースでいい感じになっていると聞いたことがあって、そういう感じなのかな?とフワーッとした想像・疑問を覚えました。 発表中には確か出てこなかったはずなので、参考にしている言語があれば聞いてみたいです。

Generating a custom SDK for your web service or Rails API

SDKを作る、という経験が全くないので聴いてみました!英語セッションですが、こちらはサンプリコードGitHubに公開されていたので、それを見ながらトークを聴いていました。 わかるようで全く解っていなくて、トークが分からなかったというより、SDKを作ってみる経験・SDKを作るってつまり何を作ることなのかという理解が足りなくて何も分からんかったような気がしています。

An adventure of Happy Eyeballs

しおいさんのトークは絶対聴きたいと思って行きました。Happy Eyeballsが何なのかさっぱり知らなかったけど、今どういうことが問題としてあって、Happy Eyeballsとは何をするためのものなのか、だからしおいさんが何をしているのかという説明がめちゃくちゃわかりやすかったので、完全に理解したような錯覚に陥りました。 現在までに解けた課題、残っている課題、新たに生まれている課題どれも深遠そうですが、しおいさんはやり切るまでやるのだろうなという謎の信頼感がある感覚を覚えました(たぶん多くの人がそう)。

トーク以外の感想

  • ノベルティかりゆしウェアが、ザ・沖縄でめちゃくちゃ素敵だなと思いました。スピーカーの青はビシッとキリッとした印象で登壇映えして、コミッター・スピーカー・参加者の配色が絶妙だと思いました。これを考えた人は天才。
  • 1日目のおやつに出てきたマンゴーのパンナコッタ(?)がかなり美味しかったです。スイカやメロンが嫌いな私、食わず嫌いでマンゴーにはちょっと苦手意識があったのですが、今まで嫌っててごめんね。あのおやつを選んだ人は天才。
  • SMSが作ってくれた缶バッチめっちゃよかったです。RubyKaigi当日中はそんなに活躍させてあげられなかったのですが、今後の勉強会とかで缶バッチと一緒に今回の名札持っていって使っていきたいです。これをやろうと持った人は天才。
  • メインホールだったかな、座席の足元に電源タップが配置されていて、めちゃくちゃびっくりしました。あれは会場に元々あったのか?RubyKaigiの運営の人が用意してくださったのか?どちらにせよめちゃくちゃありがたかったです。そしてもし後者の場合はマジで設営も片付けも大変そうなのでさらに感謝です。
  • Day0にOkinawa.rbに参加させてもらいました。現地のコミュニティーに混ぜてもらうのはそのコミュニティーの色とか肌で感じられてめっちゃ楽しいと思いました。プレパーティー的なイベントも非日常でテンションが上がりますが、今後ももし地域コミュニティーRubyKaigi版があればそちらに参加したいです。Okinawa.rbはどことなく青春味がありました。永遠の18歳っぽかった。Okinawa.rbは最高。
  • 体調崩す前にステーキヒカルに行けていたは幸いでした。あれは食べておくべき最高のお肉。ステーキは至高の食べ物。
  • 体調崩す前に、Day1のお昼をRubyistと過ごせました。一緒に行ってくださったほりゆうさん、すずかさん、ゆーだいさん(わいだー呼びが全然慣れない)、なかじまさん本当にありがとう。
  • 体調が復活した後Day4の夜にRubyist国際通りに集結しているところに入れてもらいました。20人くらいいたのかな?野生のRubyistとも出会えたし最高でした。入れてくれてありがとう。
  • 沖縄にはnaotyと行っていて、naotyはワーケーションしていました。看病させてごめんね。でも沖縄は楽しかったみたいでよかった。
  • 前から感じていたけど、私は誰かが好きな人が好きなものの話をしているのを聞くのが好きなんだなーと感じました。
  • RubyKaigiと直接関係ないけど、将棋関係のアプリをちょっとずつ作り始めている関係で数学系のRubyの組み込みライブラリを使うことがあって、簡単になんでもできるようになっていてめっちゃすごいなと感じています。その前に、私は数学がめちゃくちゃ苦手なのと数学単体では興味が持てないが他と絡むと理解できるという経験が過去何度かあるので、将棋とRubyを通して数学の勉強してわかっていきたいというのが個人のステータスです。今解りたいのは具体的には微分積分、その次が統計。RubyKaigiで数学系のトークしてくれる人がいたら聴きに行ってしまいそう。数学周り盛り上がんないかな(他力本願)
  • 来年は松山開催らしいので、絶対に体調を崩さないように完璧に管理して、松山の将棋道場とみかんとじゃこ天と温泉を満喫したいと思います。

『はじめて学ぶソフトウェアのテスト技法』を読みました

bookplus.nikkei.com

読んだ経緯

業務上、誰かの開発した内容をQAする機会があります。

メインのユースケースやよくあるCRUD的な確認だけならささーっとテストケースも列挙できてQAもすぐに終わります。 しかし、お客さんに提供できるかどうか、スムーズに使ってもらえるかというのを確認する工程なので、もうちょっと突っ込んで「良いものができました」と言いたい。し、バグなんか絶対出したくない。そう考えると「基本的には問題なかったけど、本当に大丈夫かなーって思ってる状態でQA終わりましたって言いづらい!とにかくあれこれ試してみよう。よくわからんけど!」となったりしていました。

その結果、たくさんの変数を考慮した膨大なテストケース苦しんだり、手元にチェック観点を用意してもそうではなく何気なく触った操作の方が(割と重大な)バグが出てくるなど場当たり的になんとかなったりしていることに限界を感じていました。

つまり「QAするにも戦略・戦術が必要」という課題感がありました。そこで、どういうテストの進め方があるのかを知ろうと思って本書を手に取りました。

感想

テスト技法も銀の弾丸はないのだな、と思いました。 しかし、単体で銀の弾丸にはならなくとも、複数の手法・観点を組み合わせたり使い分けたりすることで「最小のコストで最大の成果を出す」ことは可能なのだろうという手応えを覚えました。

また、本書で紹介されている一連のテスト技法は「テストにしか使えない技法」なのではなくて、要件定義や実装時の(大小様々な規模の)設計時に使うことができるものだとも思いました。 どの技法でも「こういう結果になるはず」というものを明らかにする作業がありますが、単純な例で言うと「AかBならばA’ということだけ決まっている。ではAでもBでもないときはどうなるか」のような感じです。

学びや気づきがあり面白かったですが、あまり理解できなくて読み流してしまう箇所もちらほらあってまだ浅くしか読み進められなかった感じもあるので実践と読みかえしを交互にやっていきたいと思う一冊でした。