rubykaigi2016に行ってきた<二日目>
これに参加してきたのでその感想戦でも(二回目)
例によって気になったもののメモを復習的に記す。
Fearlessly Refactoring Legacy Ruby
リファクタリングを主な業務としている方のお話。
リファクタリングのビジネス上の価値についてから話が始まり、リファクタリングを支援するgemとその使い方に関するセッションだった。
例によって英語セッションでハードルは高かったが、スライドが絵文字がいい感じに使われており、非常にわかりやすく構成されていた。
絵文字が適切に使われており、非常にわかりやすかった。
上手に絵文字を使うと、スライドの見栄えも良くなるし、わかりやすさも上がるので積極的に真似していきたい。
絵文字に限らず、アイコンのような絵はスライドのわかりやすさを引き上げるのだと思う。
紹介されていたgemはこちら リファクタリングを行うのを補助してくるgemで、そのための機能が盛り込まれている。
GitHub - testdouble/suture: 🏥 A Ruby gem that helps you refactor your legacy code
Learn Programming Essence from Ruby patches
rubyのパッチを読むことでプログラミングの勉強をしようという提案のセッション。
実務で使う知識と、大学で習う知識には乖離がある。
その乖離を埋めるためにrubyのパッチを読むのは有用という話。
パッチを読むことの利点は下記の通り
短くて読みやすい
パッチは、ruby本体のコードを全部読むよりも格段に短く、理解するまでの時間も短い。 また、付随するissueからそのコードの目的もわかり、読みやすい。
アルゴリズムへの理解が深まる
そのパッチは何のために書かれたのか、アルゴリズムの変更であれば何故変更されたのか? 変更前と変更後でどのような違いがあるのか? そういった情報がパッチにはまとまっている。 そういった情報を読むことで、アルゴリズムへの理解が深まる。
ライブラリ、rubyの実装について知れる。
言わずもがな、パッチという限定された部分とはいえ、rubyそのものを読むためその部分の理解が深まる、
-
パッチを読む上でのおすすめされていた資料もあったので下記に示しておく。 発表の中で紹介されていたのは下記3つ。
rubyのしくみ
rubyの内部構成について書かれた書籍 やたら評判が良いので近いうちに読みたい。
ruby本体に入っているドキュメント
doc/extension.rdoc
Walking around the ruby forest more deeply by やきとりい
Walking around the ruby forest more deeply // Speaker Deck
実務で使う知識は実務ですぐに役に立つ。
学術的な知識はすぐには役に立たないが、間接的に役に立つ。
どの本かは忘れたが、教養について似たようなことを池上彰さんが言っていた。
すぐに役に立つ知識は役に立たなくなるまでの期間も短いが、すぐに役に立たない知識は一生何らかの役に立ち続けるという話だったはず。
どうやら教養やプログラミングにおける学術的知識というのは、常にパラメータアップのバフをしてくれるパッシブスキルみたいなものらしい。
こういった直接業務に役に立たない知識も積極的に仕入れていこう。
Modern Black Mages Fighting in the Real World
Fluentdの開発者によるバージョンアップ時に使用した黒魔術の紹介。
Fluentdがver0.1.2からver0.1.4に上がる際に、かなりの黒魔術を行使したそうだ。
その結果バージョンアップ自体は問題なく出来た。 しかし、外部の人が作っているプラグインに対して後方互換性をもたせるために、さらに修正を必要とした。 さらに、テストの問題など
曰く、黒魔術はかなり自由な挙動を行える分メンテナンスのコストが爆上がりするそうだ。
黒魔術はあまり詳しくないが、そのあたりに恐ろしさを感じる。
セッション中の個人的な学びとしては下記のようなものを得た。
公開したてのgem 公開したてのgemはバグが多く、contributeし易い
サンプルとして外部に公開するコードが悪い例だと、みんなそれを真似してしまい、後々辛いことになる。 サンプルとして公開するコードは可能な限り丁寧に書くべき
黒魔術に関してはメタプログラミングrubyを読むあたりからはじめよう。
まとめ
日本語セッションを選択的に聞いていたというのもあるが、昨日よりは理解し易いセッションが多くて助かった。
リファクタやパッチを読んで地力を上げるといった好みの話題も多く、そこも良かった。
今回はあまり初日を覗いて懇親会に参加するつもりではなかったのだが、その点を後悔している。
この手のカンファレンスは普段話せない人と話す機会を得る良い機会なので、懇親会に出て色々話を聞くべきだったのかもしれないとかとか。