Kyoto.rb Meetup 20191221

もう日付が変わってしまったんだけど2019年最後のKyoto.rbに参加してきた。

kyotorb.doorkeeper.jp

scrapbox.io

個人的には非常に楽しかった反面、いつもだけど反省点が見つかったので書き起こして次回に活かしたい。

やったこと

前半戦

scrapbox.io

コードリーディングとその司会の両方を初めてやった。

コードリーディング自体が初めてだったので全て手探り状態だったことで参加していただいた方に申し訳なく思った。 特に初心者の方がいたけれども一度も意見というか質問が出来ない空気のまま突っ走ってしまったのはよくなかった。

誰がどのくらい何について知っているのか?ということを事前に知るのは結構ハードルが高い。 今回でいうとFaradayのコードを読んでいたわけだけどそもそもどういう認知の状態かを最初に確認すべきだったかな。

使ったことがある、名前すら初めて、そもそもAPIクライアントとは?みたいなそれぞれのレベルの確認から入って「じゃあまずgithub.comのFaradayのREADMEを読みましょう、こうするとAPIと通信してくれるわけですねー」みたいなのが最初にあると良かったかもしれない。 コードを読む前にコードリーディングで知らないことがあったら読んでいる最中でも恥ずかしいことでも声に出すかそれが難しければScrapboxに書いちゃってください!って言っておくとそれぞれのレベル感で得るものを最大化できたかもしれない。

更にいうなら「なにか読みたいgemはありますか?」と質問したわけだけどそうではなく「どんなことが知りたいですか?」みたいなもっと抽象化した言語からじゃあ期待に対するgemがあるかどうかを調べてコードを読むみたいに出来たかなという気がする。

あとコードリーディングしているときに画面にコードを映しているとscrapbox業ができないのでページだけ用意して、誰かに先にお願いしておくのがよいかな。これは反省点。

後半戦

scrapbox.io

Rspecの話。

元々の発端は外部の方とやり取りをしたときのrspecのコードが手続き型っぽい invalid_postcodes = ['', 'aaa', 'いちにさん']each で回していて「それってrspecっぽくないよね?」なったけどそれってレビューの指摘としてどうなんだろうか?みたいな話(だったと思う)

結構難しい問題だったのかなという印象があって、minitestはTDD、rspecはBDDな思想が反映されていると思う。 ↑のような郵便番号に空文字や英字のみ、日本語(ひらがなカタカナ漢字)のケースでFailさせたいケースはぶっちゃけあまり差がでないのでrspecであることの理由というのはなんだろう?となった。

終わってからだけどminitestのほうが愚直にかけるので期待する値を与えたときにどうなってほしいのか?という点では明快な気がした。 反面それらがさまざまなケースとして発生し得る、例えば「ブログ→コメント→投稿者」みたいなさまざまな要素が複雑に絡みつくときにminitestだと煩雑になりすぎてしまうのでは?という気持ちがある。

rspecはDRYな構造には出来るけど単純にrubyが書けるだけではない学習コストが存在してそこがネックになるかも。 同じチームでずっとruby開発するならそのコストを払ってもいいと思えるけどスポットで参加するときに「いやこれはrspecライクな書き方じゃないから直して」って言われたらカチン!とくるかも。

テストとしての担保すべき内容が実装されていた場合その表現方法について議論するのは果たして正しいのか?みたいなところが宗教的で社内なら規約で縛られるけど外部の方となるとそこを強制するのは厳しそう。

結局答えが出ずにみんなでうんうん言って終わってしまったのがProblemになった。 参考資料でもminitestもrspecも両方書きましょう!で終わっていて両方使わないとメリットデメリットがわからないよね?というめちゃくちゃ初歩のところに戻ってしまった。

懇親会

コミュ障というか知らないひとに話しかけるのが苦手な性格なのでついつい知り合いとばかり話してしまったり、初心者のかたのフォローができていなかったなーと思って反省した。そういうとこやぞ!感ある。 shojiさんから「オーガナイザーいま1人しかいないのでどうですか?」と打診されたが正直この手のまとめをしたりするのが得意でないので「サポートならやるけどオーガナイザーはちょっと…」と返してしまった。

でも現在のオーガナイザーであるtaca10さんも経験があるわけじゃないのに1人で奮闘されているのをみているとやってもいいかもしれないなと少し思ってきた。 サブオーガナイザーみたいなポジション(そんなのあるのか?)から初めてもいいなら挑戦したいかなという気持ちがある。

今回はRailsGirlsでtaca10さんが告知をしてくれたおかげで初心者のかたが非常に多かった。 多かった反面やはり懇親会に残ってくれる方は少なくて少し残念な気持ちになった、でも気持ちはわかる。 ぼくも最初の勉強会では懇親会参加しなかったからね、あと初心者のかたは学生が多かったので飲み会の4000円がネックだったのはありそうという話をしていた。

懇親会こそ司会のひとやRuby/Railsに詳しい人に話を聞ける場なので積極的に活用してほしいなという気持ちがあり、次回も初心者のかたが多ければ改善して行きたいなという気持ちがつよい。 初心者のかたは話しかけにくかったり、何話していいのだろう?と不安に思うんじゃないかと思うのでその辺、懇親会で初心者の質問テーブルとかRailsについて話テーブルとかテーマが切れるといいかなという気がした。 もちろん雑談テーブルなどもあっていいと思うのでそのあたりは次回以降で工夫できたらなと思う。

まとめ

全体として忘年会シーズンだったこともあり参加者が多くて楽しかった。 反面聞きたい内容が各テーブルに分散してきけない!みたいなことが起こりがちであとからでもいいのでどういうことを話してたのか知りたいなと思うことが増えた。 毎回来ているひとはscrapboxに書いてくれているのだけどだいたいその人達がファシリテーター役だったりするのでみんなでscrapboxを肥え太らせていければなと思う。

あと毎回テーマをひねり出すのが難しいというか忘れてしまいがちなのとホワイトボードに書くんだけど離れていると「最初の方に話したのなんだっけ?」となりがちなのでSlackとかに流せば 「👀」か「🙋」が挙手の代わりで投票という感じにしていくと件数数えるのとかがなくてもっとシュッと終わらせられるかもなーって気持ちになった。

あと個人的にSlackで前回これ聞きたかったけど聞けなかった!みたいな振り返りができるのでやってみたい。

個人的には途中になってしまったけどもFaradayのコードが読めて楽しかったし、これってこういうことでは?とかこれってなんですか?みたいな話で深堀りしていけたのがモブプロっぽくて楽しくみんなでわいわいできてよかったですね。

ところでscrapboxのタイトルに":"が入ってるとはてなブログで「埋め込み」の展開で失敗して変なURL、ただのURLではなく変な位置で途切れて(改行されて)しまい期待するページのリンクにならない現象が発生して少し困った。