«前の日記(Mon, 26 Dec 2011 (平成23年)) 最新 次の日記(Wed, 28 Dec 2011 (平成23年))» 編集 RSS with tsukkomi RSS without tsukkomi

実験的「実験的日記」


Tue, 27 Dec 2011 (平成23年) [長年日記]

_ 理解の瞬間

Ruby に触れてから十年以上経つのに、今日初めて自作のプログラムで自前のクラスを作ったという記念すべき日。情けない話ではあるけどもね。

ではいったいこれまではどうやってたのかと訊かれれば、それはもちろん手続き型でやってきたわけで、たいていは関数すら使わずにやりたい処理を思いついた通りに書き始めるスタイル。まさに「手続き型とオブジェクト指向の違いを FizzBuzz で理解する」の分類にある「手続き型(関数を利用しない構造化プログラミング)」。さすがにその段階で終わってしまうことはなく、ある程度書けた段階で共通処理は関数にまとめて「手続き型(関数を利用した構造化プログラミング)」までは到達するけれどそれより先にはどう進んでいいものかと考えこんでしまって、やりたいことはできてるからいいやということに。

今日も当初は上記のスタイルで進めていた。作っていたのは Web API で取得した XML から必要な情報だけ取り出して成形するプログラム。でも、ひと通り動くものができたところでふと考えた。「必要な情報だけに整理された情報の塊ができてて、実質的にはそいつに id 教えてとか、付けられてるタグを全部見せてとか尋ねてるわけだから、これってまさにオブジェクトなのか……」と気づいたら、あとはクラスを作って、インスタンス変数は読めればいいだけだから attr_reader を使って用意して……という具合にトントン拍子でコードが書き変わっていった。

これまではどう手をつけたらいいのかすらピンと来なくて壁の前で立ち止まっていた自分がここまですいすい手を動かせることに本当に驚いた。そして、こんな感覚は最近ほとんど経験できなくなっていたのでとても気持ちがいい。ということで、

自作のプログラムで初めてクラスを使ったから十二月二十七日はクラス記念日
目次

«前の日記(Mon, 26 Dec 2011 (平成23年)) 最新 次の日記(Wed, 28 Dec 2011 (平成23年))» 編集