社内 Rails 勉強会を2016年2月23日(火)、3月22日(火)とやっていました。
目的、内容
普段の開発でも Rails を用いている場合が多いのですが、また違った視点から Rails についての知見を深めるべく始まりました。
内容は
- 古いバージョンの Rails を読む
- Rails な人を知る
の二部構成で行いました。
古いバージョンの Rails を読む
まだ小さかった頃の Rails を読んでみて、今と比較したり、その API の歴史について追いかけたりしました。
1回目は Rails v1.0.0 、 2回目は Rails v2.0.0 を、gem 単位でグループに分かれて読み進め、gem 毎に簡単なまとめを発表しました。
v1.0.0 の頃から現在まで続く点がいくつも見つかり (has_many :xs, Object#blank?, inflection という仕組みなど)、Rails のバージョンアップ時に非互換な導入が話題になることもある一方で、10年前に考えた仕組みが今なお似た(ものによっては全く同じ)ように利用可能なものあるというのはおもしろいですね。
Rails な人を知る
「Rails を作っている人を知ることでもっと身近に感じよう」ということで、毎回 Rails チームの方のどなたかに焦点を絞り、 @amatsuda さんからお話を伺ったり、コミットを追ってみたりしました。
1回目は @jeremy さんについてで、当初から現在までずっと Rails の開発を支えていることや、RubyWorldConf 2009 で「Rails の事は気にせずに Ruby をよくすることを考えて欲しい」という話をされていることなど、その人柄についてお聞きすることができました。
残念ながらその発表の動画は消えていましたが、DVD を借りることができたため第3回に見る予定です。
2回目は @jamis さんで、最近は Rails へのコミットはあまりしていないものの、特に v2 までの Rails を支えていたそうです。
また、2回目で丁度読んでいた v1 ~ v2 の間に入った、alias_method_chain の発明 を伝説のコミットとして紹介していただきました。今では Module#prepend に取って代わられたものの、長く様々な実装を支えた歴史的コミットであり、しかもその実装が2行と、@jamis さんの発想力と当時からの Ruby の柔軟性には脱帽です。
利用者として Rails に向きあっていると「なんかすごい人たちが Rails を作っている」で済ませそうになってしまいますが、業務で普段向きあっているプロジェクトのコードと同じで、Rails も歴史があり、それを支えてきた人達がいる、そんなあたり前のことを再確認することができました。
次回は4月26日(火)に行う予定です。