今年のプログラミングの目標

前回のエントリーは今年の目標一般を書きましたが、今回はプログラミングに関係した目標を書きたいと思います。

現在私はプログラマーの知人とペアプログラミングをしているのですが、私の知人は本職がJavaプログラマーで、職場でもアジャイル開発手法をがんがんしています。そうなると二人でプログラミングしているときの力の差があまりにも激しいので少しでもその差を埋めるべく、「もっと本を読む」「Rubyコードを書く練習」「ソースコードを読む」を目標にしてみました。

1.もっと本を読む
昨年は「楽しいRuby」を何度も読み返していましたが、今年はグレードアップして「Programming Ruby 」を読み返すようにしたいです。以前は一冊の本だったのですが、第二版では「言語編」と「ライブラリ編」に分かれたようですね。英語版はPDFも持っているのですが、プログラミングするときはいつも同時にPDFを立ち上げておき、分からないことがあったときにはサーチかけるようにして使うと便利です。

プログラミングRuby 第2版 言語編
Dave Thomas Chad Fowler Andy Hunt 田和 勝 まつもと ゆきひろ
オーム社
売り上げランキング: 8766


プログラミングRuby 第2版 ライブラリ編
Dave Thomas Chad Fowler Andy Hunt 田和 勝 まつもと ゆきひろ
オーム社
売り上げランキング: 67728

Rails の本は2冊買ったのですが、やはり「RailsによるアジャイルWebアプリケーション開発」が王道だと思います。こちらも第2版がでたのですが、Railsは開発のスピードが速い分、内容も大幅に書き換えられているようです。文法とかも変わってきているようです。

RailsによるアジャイルWebアプリケーション開発
前田 修吾
オーム社
売り上げランキング: 30554
おすすめ度の平均: 4.5
5 もちろん満点です!!
4 Rubyのすごさ
5 Rails使い必携の本

Ruby 関連以外ではリファクタリングデザインパターンの本を読みたいです。関連本でちまたに出回っているのはJava系ばかりなのでこれを機にJavaのお勉強も少し始めたいです。この前本屋でいろいろ比較した結果、これらの本を買うことにしました。

リファクタリング―プログラムの体質改善テクニック
マーチン ファウラー Martin Fowler 児玉 公信 平澤 章 友野 晶夫 梅沢 真史
ピアソンエデュケーション
売り上げランキング: 11068
おすすめ度の平均: 5.0
5 オブジェクト指向がなんでいいの。その回答がここにある。
5 体質改善の処方箋
5 可読性向上の特効薬

Head First Java 第2版―頭とからだで覚えるJavaの基本
キャシー シエラ バート ベイツ Kathy Sierra Bert Bates 夏目 大 島田 秋雄 神戸 博之 高坂 一城
オライリージャパン
売り上げランキング: 84372
おすすめ度の平均: 3.5
5 こうでなくちゃ学べない
2 ターゲットが限定される本
2 書いてある事は面白いのだが…

増補改訂版Java言語で学ぶデザインパターン入門
結城 浩
ソフトバンククリエイティブ
売り上げランキング: 4780
おすすめ度の平均: 4.5
5 良い本やと思います
5 最高のDP入門書
3 僭越ながら助言です

おまけ:Hatenaの CTOの人がこの本をベースにJavaScriptでデザインパターンする方法を書いていました。この本読み終わったらぜひ参考にしてみたいです。

2.Rubyコードを書く練習

今までは「楽しいRuby」の例題を多少やった程度で、殆どは実際行っているアプリ製作でぶっつけ本番です。でもスポーツと同じように基礎がない状態で試合を初めても、上手でないため面白くないばかりか、へんなクセが付いてしまいがちです。そこで基礎力を高めるための練習問題として頑張りたいのが以下の2点


「達人プログラマー」で有名なDave Thomasが提唱する、プログラミングの「型」を鍛えるためのお題集。回答は載ってませんが、Googleで検索するといろんな人がブログで自分たちの作品を公開しています。

Best of Ruby Quiz (Pragmatic Programmers)
James Edward Gray
Pragmatic Bookshelf
売り上げランキング: 927

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人いるようです)、分量おおそうなので、まずは短そうなコードから読破していきたいです。

ソースコードリーディング中に発見などがあれば、このブログで逐一報告していきたいです。

今年のブログネタ

昨年はcommect.usの開発日誌を中心としていましたが、今年はプログラミング(特にRuby, RoR系)とせっかくロンドンに住んでいるのでイギリスのHigh Tech Venture系のネタなども取り扱っていきたいと思います。なんか質問などあれば、コメントしてください。先ほど私の友人から「アイルランドのIT事情を知りたい」とリクエストがあったので調べておきます。



追伸:カテゴリーをUK Tech から Euro Techに変更しました