Toyama.rb に参加してきた

タイミングよくちょっと近くへ行く用事があったの Toyama.rb に参加してきました。
勉強会の内容はみんなで雑談しながらもくもくして最後にやったことを各自で発表するような会です。

やったこと

  • Ruby 2.5 の導入
  • Ruby 本体をビルド
  • ファイルローカルなトップレベルメソッドを定義する gem の作成
    • もの自体は30分ぐらいでできたんですがちょっと問題があったので修正してから公開する予定

どんな場面で必要なのか?

成果発表の時に「どういう場面で必要なのか?」と質問されたので補足 わたし自身は以下のような場面で使いたいと思うことが多いですかね。

  • 長いメソッドから処理を切り出したい時
  • DRY を行う際に重複している処理を別メソッド定義したい時


まあこの辺りは Ruby に限らずどの言語でも言えるかと思います。

private メソッドやモジュール関数ではダメ?

private メソッドもダメではないんですが、Ruby の private は簡単に外部から呼び出すことができるので完全に隠蔽できないという問題があります(そもそも Ruby の private はそういう目的の機能ではないというのは置いておいて。
また、個人的には DRY を行うという目的でそのクラスに「余計なメソッド」を定義したくないというのもありますね。
モジュール関数も同様に「トップレベルで定数(モジュール)を定義すること」になってしまうので隠蔽化が不完全であったり、そのファイル以外でも影響してしまうという問題があるのでそれを避けたいです。

以上の理由から「ファイルローカルメソッドを定義する」専用の機構がほしいなーという感じです。
あと口頭で解答していた時は「Rails みたいなフレームワークではなくてライブラリとか小さい範囲のプロジェクトで使うことが多いかなー」みたいな話もあったと思うんですが、これ自体は別に大小は関係ないと思います(Rails でも上記で挙げたようなケースでは利用することはあると思いすし…多分…。

参加してみて

と、いうことで Toyama.rb に参加してきましたー。
都内だと地域.rb は結構頻繁に行われていますが、こういう地方の Ruby の勉強会は少ないので貴重ですね。
みんなでワイワイ言いながら作業していたので割といい刺激になりました。
いい意味で人数も多くなく(物理的な意味でも)他の参加者と距離が近くて話しやすかったです。
そういう意味では何かコードとかをスクリーンに映して、それを見ながらみんなで意見を言い合ったりして議論をしてみるのもいいんじゃないかなーと思いました。

Ruby の勉強会と言いつつ内容は Ruby に限らない(実際参加した今回も Ruby 以外の作業を行っている人は何人かいました)ので近くに住んでいてきになる方は参加してみるとよいのではないでしょうか。
さすがに毎回参加することは難しいですが、機会があればまた参加してみたいと思います。
運営の方々ありがとうございましたー。

あと、これは今回の勉強会に限ったことはないんですが、もくもく会でみんな作業しているとなかなかわからないことなんかを相談するのが難しいので「つらいときにあげる札」なんかがほしいなーと思いましたまる。
そしてもうちょっとしゃべりが上手くなりたい…