今年のプログラミングの目標
前回のエントリーは今年の目標一般を書きましたが、今回はプログラミングに関係した目標を書きたいと思います。
現在私はプログラマーの知人とペアプログラミングをしているのですが、私の知人は本職がJavaプログラマーで、職場でもアジャイル開発手法をがんがんしています。そうなると二人でプログラミングしているときの力の差があまりにも激しいので少しでもその差を埋めるべく、「もっと本を読む」「Rubyコードを書く練習」「ソースコードを読む」を目標にしてみました。
1.もっと本を読む
昨年は「楽しいRuby」を何度も読み返していましたが、今年はグレードアップして「Programming Ruby 」を読み返すようにしたいです。以前は一冊の本だったのですが、第二版では「言語編」と「ライブラリ編」に分かれたようですね。英語版はPDFも持っているのですが、プログラミングするときはいつも同時にPDFを立ち上げておき、分からないことがあったときにはサーチかけるようにして使うと便利です。
Rails の本は2冊買ったのですが、やはり「RailsによるアジャイルWebアプリケーション開発」が王道だと思います。こちらも第2版がでたのですが、Railsは開発のスピードが速い分、内容も大幅に書き換えられているようです。文法とかも変わってきているようです。
Ruby 関連以外ではリファクタリングやデザインパターンの本を読みたいです。関連本でちまたに出回っているのはJava系ばかりなのでこれを機にJavaのお勉強も少し始めたいです。この前本屋でいろいろ比較した結果、これらの本を買うことにしました。
ピアソンエデュケーション
売り上げランキング: 11068
- Head First Java
ターゲットが限定される本
書いてある事は面白いのだが…
最高のDP入門書
僭越ながら助言です
おまけ:Hatenaの CTOの人がこの本をベースにJavaScriptでデザインパターンする方法を書いていました。この本読み終わったらぜひ参考にしてみたいです。
2.Rubyコードを書く練習
今までは「楽しいRuby」の例題を多少やった程度で、殆どは実際行っているアプリ製作でぶっつけ本番です。でもスポーツと同じように基礎がない状態で試合を初めても、上手でないため面白くないばかりか、へんなクセが付いてしまいがちです。そこで基礎力を高めるための練習問題として頑張りたいのが以下の2点
「達人プログラマー」で有名なDave Thomasが提唱する、プログラミングの「型」を鍛えるためのお題集。回答は載ってませんが、Googleで検索するといろんな人がブログで自分たちの作品を公開しています。
- Best Of Ruby Quiz
2006年10月にLRUG(London Ruby User Group) のミーティングでDSL(Domain Specific Language)についてのプレゼンを聴いていたとき、聴衆のひとりがスピーカーに対し、「キミがやろうとしていることはRuby Quiz #25に出てることとまったく一緒だ」と突っ込みを入れてたことで初めて存在を知りました。Rubyiestにとっては必須なのでしょうか?
3.ソースコードを読む
きれいなコードを書くためには他人のコードをたくさん読むのが重要とよく聴きます。
ソースコードを通して先に紹介したKataを実践する際、Chad Fowlerのエントリーが参考になります。
本文
Pick a piece of code that you consider to be of extremely high quality. Ideally, this should be sized somewhere between the huge (the Linux kernel source) and the tiny ("Cookbook" snippets). For maximum utilitarian benefit, find a piece of software that you would like to enhance your understanding of. Open source programmers might choose, for example, the standard library of their programming language of choice.
和訳
あなたが知っている高品質なコードを選んで見ましょう。サイズ的にはリナックスのカーネルほどの大きさと、CookBookに出てくるようなサンプル文との中間ぐらいが理想的です。学習成果の恩恵を最大限にするため、あなたが理解を深めたいソフトウェアから選びましょう。あなたが使う言語のライブラリなどよいかも知れません。
というChad Fowlerのアドバイスを元に、以下が目標とするRuby関係のLibraryやツールなどです。
本当はRailsのコードを全部読みたいのですが(43thingsに目標を掲げている人が2〜3人いるようです)、分量おおそうなので、まずは短そうなコードから読破していきたいです。
- Rake (以前Rails PodCastでRakeの作者であるJim Weirich の話を聴いたのですが、Rakeのコアのコードは数時間で書き終わって、しかも100行ぐらいのコードだったそうです)
- Mocha (RailsでMochするためのライブラリー。「モックって何」という人はここをどうぞ)
- Gem
- Capistrano
ソースコードリーディング中に発見などがあれば、このブログで逐一報告していきたいです。