トップ «前の日記(2009-08-13) 最新 次の日記(2009-08-15)» 編集

日々の破片

Subscribe with livedoor Reader
著作一覧

2009-08-14

_ Ruby3

プログラミング入門シリーズのRuby3がアマゾンで予約可能となりました。

Ruby 3 オブジェクト指向とはじめての設計 (CD-ROM付) (プログラミング学習シリーズ)(arton/宇野 るいも)

実物は手元にも来ていないけど。

でもまあいいか。

ふつぱいらの青木さんのひそみにならって保護者(プログラミングの本を「自分よりできる人」に勧められて買うという場合の「自分よりできる人」を指す言葉らしい)用の解説を書いてみる。

1章と2章は、いわゆるオブジェクト指向プログラミングの説明です。いわゆるということは、カプセル化、継承、ポリモーフィズム、犬だ猫だ哺乳類だのやつ。Ruby1,2,3は、コンサバなプログラミング入門書というのがコンセプトだと思っているから、これは当然。

すでにこの時点で保護者の何割かがうんざりするのが手に取るようにわかるけど、普通の保護者はこれらの言葉がなければそれをオブジェクト指向プログラミングの本だとは思わないとおれは思うからだし、書いてみてわかったけど、自分でも驚くくらいえらくまっとうな説明ができたので、ということで古典的に始めています。結果的にOOP(ほんの少しOODを含む)の解説としては、自分としては会心のできだと自画自賛。

1章の内容は、Ruby1でサンプルにしただらだらした手続きだけのプログラムに、クラスと属性を導入して、まずはクラス定義の説明。次に、オブジェクト指向プログラミングによってプログラムの構成がどう変わるか、では変えてみましょう、というところまで。

2章で、でもまだ構成が整理されていないわけで、整理するということはどういうことかというとこういうことだと、継承を利用して2つのクラスに分離して示してから、でも重要なのは継承ではなくポリモーフィズムですよ、とダックタイピングとコンポジションを使って書きなおしたところで、次の段階へ。

3章、4章はるいもさんのターン。犬猫の世界から責務分割とデザインパターンのごく最初のあたり。とはいえ、いきなり抽象的にしてもついていけない(というよりもサンプルプログラムの長さを考えても具象性が必要だと思う)だろうから、デジタル回路を例にしています。歯ごたえが程良くあるので、良い感じだと思います。

ここまでで、基礎的なお話は終わり。

残りは、フレームワーク(制御の逆転なくしてOOD/Pなし)、ユニットテスト(これは最重要だけどフレームワークの後にしたのはテスティングフレームワークにつなげるためでもある)、メタプログラミング(の初歩の初歩。パラメータファイルを例にしたしょぼい例だけど、ここでは同じことを方法を変えて何度も書き直すのでユニットテストの後の必然もある)が各1章ずつで全7章。

というわけで、まずは書店で見かけたら手にとって見て、ついでに買っていただけると幸いです。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|

ジェズイットを見習え