読者です 読者をやめる 読者になる 読者になる

メソッド屋のブログ

米マイクロソフト DevOps エバンジェリスト 牛尾の日記です。ソフトウェア開発の上手なやり方を追求するのがライフワーク。本ブログは、個人の意見であり、所属会社とは関係がありません。

コードを多読する

最近コードの多読を実施している。三流プログラマが多読によって無理なくエレガントなコードがかけるかの人体実験だ。


 私は、要求開発とか、アジャイルプロセスに関してはなかなかと思っているが、プログラマーとしては三流である。だから三流プログラマがイケメンプログラマになるための作戦を考えている。その一つの作戦が多読だ。これには3つの理由がある。


 丸山先生の秘密は多読だったこと。昔、Javaの世界で著名な丸山先生に聞いた事がある。「丸山先生はコードを自ら書いているとは思えない。なぜ、そんなに適切にアーキテクチャを理解出来るのか?」丸山先生はこう答えた「コードを読んでるんだよ。沢山!」周りの人に聞くと、丸山先生はしょっちゅうコードを読んでいるらしい。


 英語の学習法に置き換えて考えると、多読が重要ということ。英語の場合に上手く喋れるようになりたかったら、自分のレベルにあった音声や、文書を大量にインプットする事が重要だ。コンピュータ言語も同じじゃないか?と想定した。

 
 昔、弟にプログラミングの本を渡してやってもらったけど全然できなかったこと。プログラミング経験のなかった弟にプログラミングの本を渡してやってもらった。コードの意味はわかったが、コードは書けるようにならなかった。英語に例えると、これは文法だけやったような状態だから、話せるはずがない。



 この3つの経験から、自分がイケメンプログラマになるために、コードの多読をしてみようと思い立った。Owning Rails - Online MasterclassというRailsのインターナルが学べるコースに参加してみた。内容は非常に面白いので興味のある人は是非受けてみられたらどうだろうか?


 コースでは最初のコードリードに必要なステップとしては、gem editの設定と、textmate2のインストールが必要だった。gem editは、gemのソースをコードリーディングするときにとても便利だ。インストールは次のような感じ。(私はMacOSX 10.8 Mountain Lionを使っている)。エディターはなんでもいいが、コードを読むためにはtextmate2とかがいい感じ。https://github.com/textmate/textmate/downloadsここからダウンロード可能だ。

$ gem install gemedit
$ export EDITOR="/Applications/TextMate\ 2.app/Contents/Resources/mate"

こうしておくと、

$ gem edit activesupport

などとタイプすると、該当するgemのソースが簡単に見られる。これは便利。本当はいつも使っているRubyMineでやりたかったが、うまく出来なかった。やり方を知っている人は是非コメントいだだけたらと思う。


次回からは、ActiveSupportのコードリーディングをやって行く予定だ。(本当はconcern.rbをやったのだが、長くなるのでまた次回)