Just do IT

思うは招く

社内でメタプログラミングRubyの輪読会を開催した

社内で「メタプログラミングRuby」の輪読会を開きました。これからメタプロRubyの輪読会を開催したい方に参考になればと思い記事にしています。

なぜメタプロの輪読会を開いたのか?

私は普段から業務でRailsを書いています。仕事をしていくうちにRailsには詳しくなれるけど、Rubyのスキルが上がっているのかどうかわからなかったんですね。「自分のRuby力、果たして上がっているのか…?」と。

実は以前にメタプロRubyを読んだことはありましたが、あまりよく理解できず・・・。そんなとき、うづらさんのブログで紹介されていてまた挑戦してみようと思いました。

それまで、普通の道具、普通に便利なプログラミング言語としてRubyを書いていたのだが、メタプログラミングRubyで解説されている手法を読んでからは自分の考えを実現するための道具としてRubyを捉え直せたような気がする。

自分の中で大切に思ってる本の話 - ローファイ日記

幸いなことに、私が所属する会社の開発チームは学習意欲の高い人ばかり。提案したらトントン拍子で開催が決まりました(もとから定期的に読書会を開いていたのもあります)。

2回目の再読にも関わらず「なんもわからん・・・」という瞬間は多々あったものの、前よりは理解できることが増え、「あ、Rubyっておもしろいなー」と素直に感じる場面もありました。 継承チェーンやincludeprependの話も前よりはすんなり頭に入ってきたかな。あらためてクラスとインスタンスの関係を整理できたし、すべてのクラスはモジュールとか、スコープの話など、いろいろ楽しんで読み進めることができました。

進め方

全7回で進めました。読書会を長い期間ダラダラやるのは苦手なので、短く集中してやりたいと思っていたので7回はちょうどいい長さでした。

具体的な進め方は以下のとおりです。

  • 1回目:1〜2章
  • 2回目:3章
  • 3回目:4章
  • 4回目:5章
  • 5回目:6〜7章
  • 6回目:8〜10章
  • 7回目:11〜13章

メタプロRubyは短い章がいくつかあるので、そういった部分はまとめました。各回までに読む範囲をメンバーに伝え、「わからなかったこと」や「理解を確認したい部分」などをメモしてきてもらうよう依頼しました。

自分がファシリテーターになる

もし読書会をやるなら、ファシリテーターをやることをおすすめします。そうすることで主体性が出ますし、自分が開催を呼びかけている手前、しっかり本を読まなければいけないという緊張感も多少生まれます。

できればRubyスペシャリストに入ってもらう

ジュニアやミドルレベルのエンジニア同士で読むのもいいですが、できればRubyスペシャリストに入ってもらうと理解度がぐっと高まります。今回は幸いなことに、Rubyのシニアエンジニアに入っていただくことができ、とても有意義な勉強ができましたし、良い刺激になりました。

近くにRubyスペシャリストがいないという場合は、どこかのRubyコミュニティに入って輪読会を提案してみるのはいかがでしょうか。Rubyコミュニティの方々は優しい人が多く、親切に教えてくれる印象が強いです。

メタプロRubyを再読することでRubyとまた少し仲良くなれた気がします。もっと仲良くなれるように頑張っていきたいと思います!