32nd Diary

トップ | 最新 | 過去の日記 | もっと過去の日記

2009年
4月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
めーるあどれす
ruby -rbase64 -e'puts Base64.decode64 %q(dGFrYW5vMzJAZ21haWwuY29t)'



2009-04-15 (Wednesday) [長年日記]

[Hack][Ruby] オブジェクト指向の骨頂は実世界のモデリングという原則

via http://floralcompany.jp/archives/2009/04/helloworld_1.html

同じく違和感を感じた。

そもそもオブジェクト指向の目的はなんぞや、というと世界にある存在を抽象化してモデリングすること、のはずなんだよね。最近はよくわからない実装的なオブジェクトなどを作り、本来の概念的なオブジェクト指向というモデリングの指向が欠落していたりする。たとえば、フィールドの共有のために継承する、など、よくわからない設計を平気でする。

元来のオブジェクト指向たるものに振り返ると登場するオブジェクトはメッセージの送信元と送信先。つまり、「こんにちは!世界!」というのを受信したい送信者と、送信者からメッセージを受け取ったときに「こんにちは!世界!」という存在だ。

もう、カオスでよくわかんねー。とりあえず、「こんにちは!世界!」って言うのは人間で、言われるのは世界なんだろ。ちょっとムリがあるけどこんなもんだろう。

うむ。 "Hello, World!" はオブジェクト指向で設計するようなものではない気がする。WelcomeクラスやGreetingクラスは実世界をオブジェクト指向で抽象化するのに自然な概念なんだろうか。

turuginaさんのgreetingクラスは自然な気がしてきた。挨拶が一種の考え方として抽象化でき、greetingストラテジーを差し替えることでPersonの挙動が変わる、というのはありかもしれない。 でも、Welcomeがsayしたりします?「ようこそ」が「発言」する。 変じゃない?

細かいこと気にするな、と言われそうだけれど、そもそもオブジェクト指向のモデリングに適合しないものをひな形の代名詞とも言える "Hello, World!" でいかにもオブジェクト指向のひな形はこれ、みたいな書き方をすると、なんだかとても残念なことになりそう。

[Twitter] 今日のつぶやき

  • 04-14 17:33 > @fuba 生まれ変わったら・・・takano00から出直すんだ・・・
  • 04-14 17:35 > @rokudenashi ちょーwww誰も禁止してないwwwww
  • 04-14 17:37 > @rokudenashi え。 @takano99++は@takano9Aですよ。いやだなぁ、もうっ☆
  • 04-14 17:38 > どんなもんかしら。 >uptime - 17:38:21 up 73 days, 8:17, 4 users, load average: 0.13, 0.12, 0.09
  • 04-14 17:38 > お。こんなもんか。
  • 04-14 17:39 > 割と余裕あるな。
  • 04-14 17:48 > QBasicとかとてもなつかしい・・・
  • 04-14 17:51 > VAXのパンチカードがすんゴイのよー。とか謎年齢発言するのでよくない。
  • 04-14 17:53 > Link: OGP - Welcome to the Open Graphics Project : HomePage - この手の話題は定期的にあがって、定期的にぽしゃるイメージ。がんばれ。 http://tumblr.com/xk51l6hmm
  • 04-14 18:01 > そっか。BMSとか作ってた人たちはそのままのノウハウで動画界隈に進出することもできる、か。
  • 04-14 18:06 > it's boring to do paperwork.
  • 04-14 18:06 > Video: あの有名なニート君の動画です。‐ニコニコ動画(ββ) あとで http://tumblr.com/xk51l6jn3
  • 04-14 18:13 > I am listening to the Sun VirtualBox 2.2 show on BlogTalkRadio - http://tobtr.com/s/484837
  • 04-14 18:19 > X25-M Fragmentation Issue ・・・か。疲れるね。
  • 04-14 18:19 > shiftとreduceの様子が見たいのかな。
  • 04-14 18:21 > @yumeko 超元気そうなおたけびごちそうさまです。・・・どうしましたか
  • 04-14 18:23 > よくわかんないのに元気なのはよいこと。
  • 04-14 18:30 > 祝詞事典とかあるのか。Twitterは勉強になるなぁ。
  • 04-14 18:34 > ふむ。 >uptime - 18:34:55 up 73 days, 9:14, 0 users, load average: 0.10, 0.11, 0.09
  • 04-14 22:46 > 写真 9 枚を Flickr . http://tinyurl.com/df83zc にアップロードする
  • 04-15 08:51 > [32nd Diary] 今日のつぶやき http://tinyurl.com/c9tdyl
  • 04-15 10:50 > Link: はてなブックマーク×Firefox記念 ノベルティセット欲しい!とは - はてなキーワード http://tumblr.com/xk51lc6xq
  • 04-15 10:52 > Link: JSARToolKit - JavaScriptでAR拡張現実(Augmented Reality) Kawa.netブログ(川崎有亮)/ウェブリブログ http://tumblr.com/xk51lc7br
  • 04-15 10:52 > @wakachamo おはようございまーす
  • 04-15 10:57 > DISりは別にいいんだけど、結局、どうしてほしいのかとか書かれてないと反応のしようがない。そうだね。それはあなたの考えでそれはわかったわ。的。
  • 04-15 11:01 > あーなんか、話がかみ合わないと思ったら、 だけ知っていて、 = のような概念は知らないのか。
  • 04-15 11:01 > LISPのeq系の地獄を見るといいんだがな。いまだに何がなんなのか忘れる。
  • 04-15 11:05 > Photo: マンチェスター符号 http://tumblr.com/xk51lcahj
  • 04-15 11:07 > リア充は青空の下、幼馴染の異性が作った弁当などを食べる陽気ですね。
  • 04-15 11:07 > ゆがんだリア充感
  • 04-15 11:15 > Photo: DesktopLive.asイベントレポート:#2 BeInteractive! 新藤さん編|gihyo.jp … 技術評論社 http://tumblr.com/xk51lccz1
  • 04-15 11:20 > @wakachamo いやはー。実は少し体調を崩しまして。(^^;;; so, so?
  • 04-15 11:36 > Photo: 美少女テクノポップの作り方 キュートなボーカルの近未来サウンドを作るDTMテクニック(DVD-ROM付き) / 野上 武志 http://tumblr.com/xk51lchkg
  • 04-15 11:36 > アマゾンビデオなんてはじまってたのか。
  • 04-15 11:40 > 分散管理で誰でも対等に開発が行えるぜーっ!って幻想だよな。暇があれば自サイトでとくとくと語りたい。
  • 04-15 11:52 > "現在、ご登録は開発者の方を優先しております。 過去10年間の間に書いたコードの行数は1000行以上ですか?" http://tumblr.com/xk51lckmt
  • 04-15 11:54 > Photo: 18-Month Jail Term Sought for ‘Minerva’ The 31-year-old was indicted in January on charges of... http://tumblr.com/xk51lcl3g
  • 04-15 11:56 > いっしょに召し食えば友達ってわけでもなかろうに・・・ via @oquno http://www.flickr.com/photos/oquno/3443748630/
  • 04-15 12:04 > @marrabbit 笑えますねー。でも、そこそこ妥当性あるのかなぁ、とも
  • 04-15 12:05 > @marrabbit というのも、そんなに敷居を高くするつもりはないけど、スパマー的に話題になってるからアカウント取得、というのは勘弁ね、という感じなのかな。と思ったりも。
  • 04-15 12:12 > めいぼうじんの安楽的な何かを助けるオフ。
  • 04-15 12:13 > 安楽って破滅語だよなぁ。いやぁ、あの焼肉屋さんには悪いけど。
  • 04-15 12:15 > さすがに過去10時間で1Kはかなりノッてるときじゃないと無理だし、抽象化してコントリビュートできる形になっているものだとすると、うーん。かなり敷居高いな。
  • 04-15 12:17 > あれー。cygwinでpthread有効なconfigreができた・・・どうなってんだ。あったっけ?まぁ、いいか。ビルドしてみよう。
  • 04-15 12:17 > どうせスレッド使わないと思うし。
  • 04-15 12:19 > Link: Chris Shiflett: Save the Internet with rev="canonical" -... http://tumblr.com/xk51lcqvr
  • 04-15 12:20 > canonicalと見るとどうにもやはり還元とか絡むイメージが強い。導出された最短の形ということは変わりないが。
  • 04-15 12:40 > めいぼる --- エクストリームスポーツの一種。
  • 04-15 13:14 > 健全な肉体がない → 健全な精神がない
  • 04-15 13:14 > うーむ。>uptime - 13:14:34 up 74 days, 3:53, 0 users, load average: 0.02, 0.04, 0.04
  • 04-15 13:19 > @henrich define "不健全" "健全" ぐええ。
  • 04-15 13:20 > Photo: データで見る2009年度の新人たち - @IT自分戦略研究所 http://tumblr.com/xk51ld4f6
  • 04-15 13:22 > 新入社員当時に理想の男性上司に江頭2:50と書いたら検閲がかかって書き直し命じられた同期がいたな。 http://jibun.atmarkit.co.jp/ljibun01/cs/200904/01/01.html
  • 04-15 13:24 > 八年間・・・それで実りなかったらどうするつもりなんだろうな。
  • 04-15 13:27 > @mootoh びびったぁ。プロジェクター込みの機器で大画面なのかと思った。(ねーよw http://gigazine.net/index.php?/news/comments/20090415_willcom_new/
  • 04-15 13:31 > SICPどこいったっけなぁ・・・
  • 04-15 13:32 > Haskellの本は実家に置いてきた気がする。
  • 04-15 13:32 > ただし洋書
  • 04-15 13:41 > ハチロク世代は0xXX年に一度の光り輝く世代。って、どこのピコピコ。
  • 04-15 13:42 > メールアーカイバがクソのように使いにくいので、何か対応する必要があると感じた。
  • 04-15 13:44 > エフユービーエー佐間
  • 04-15 13:45 > goshがうごくようになった。ほへー。新しいマシン環境だといつのまにか入ってないものがたくさんや。
  • 04-15 13:47 > bladeという選択肢があれば、なー。
  • 04-15 13:48 > 製品は使いたくないしmh-archとかもなぁ。なんだかねぇ。
  • 04-15 14:23 > いま、ブラウザの根底をいじくってる。
  • 04-15 14:24 > 軽くひとひねりできそうなメールとか届いているんだが、一応確認してから回答したい。
  • 04-15 14:24 > ブラウザが使えないと不便。違うブラウザでしのぐかー。なんかだる。
  • 04-15 14:26 > というか、固有のディストリについて質問するときはアカウントをよこせ、と思う。
  • 04-15 15:17 > しばいた。
  • 04-15 15:23 > @cpp_akira redmine.ruby-lang.org での様子がおすすめ。
  • 04-15 15:24 > @cpp_akira ruby-lang.org のものはカスタマイズ込みですが、よく機能しています。
  • 04-15 15:26 > HTTP::Engineのバージョン場号のつけ方アツいなぁ
  • 04-15 15:29 > くそのようにプロファイルの復元に時間がかかっている。明日の朝まで放置してみるか。
  • 04-15 15:32 > HogeSimpleは結局HogeやHogeComplexが誕生するようすがなければHogeでいいんじゃね?
  • 04-15 16:22 > Video: masa8723: http://tumblr.com/xk51le144
  • 04-15 16:24 > tombloo使えなくて人類が死ぬというか俺が死ぬ。
  • 04-15 16:24 > @todesking おかしい。UI含めてデザイナが決めないと話にならない。
  • 04-15 16:26 > 糸柳のことかーーーーーーーーッ!!!!
  • 04-15 16:35 > ゼロゴちゃんぷ。ふぁぼったー。
  • 04-15 16:37 > おい、お前らの大好きなtype Pを手帳にはさむ時間がやってきましたよ。
  • 04-15 16:48 > @fuba_recorder ヒッ、ヒッ、ヒッ、ヒッデブゥゥゥゥィィイ
  • 04-15 16:50 > デブが抽出された・・・
  • 04-15 16:53 > @fuba_recorder あべし。ひでぶ。
  • 04-15 16:54 > ちょっwwwへーちょwww
  • 04-15 16:54 > @fuba_recorder へーちょ!
  • 04-15 16:57 > @tss_ontap うひw でぶ・だw
  • 04-15 16:57 > bless you! @fuba_れこーだ 賢い
  • 04-15 17:13 > @mesigahama 霞
  • 04-15 17:25 > hoge D5 - dice(5 = [5])
  • 04-15 17:25 > hoge 6D - dice(23 = [3, 4, 5, 2, 4, 5])
  • 04-15 17:37 > ほげー
  • 04-15 17:37 > fuga
  • 04-15 17:40 > hoge
  • 04-15 17:41 > @whtapple FOO!
  • 04-15 17:42 > うーん、なんかうまくうごいていない。
  • 04-15 17:42 > とれーすするか。
  • 04-15 17:43 > trace true
  • 04-15 17:43 > nice trace!
  • 04-15 17:45 > zap!
  • 04-15 17:45 > にほんごー
  • 04-15 17:45 > どうなる'くらきい
  • 04-15 17:50 > にほんごー
  • 04-15 17:54 > どうなる'くらきい
  • 04-15 17:57 > とれーす切った
  • 04-15 17:58 > ちゅうわけで、TIGからDLRを使ってWassrにクロスポストできるようにした。
  • 04-15 18:04 > @Tonbi_ko 自分もよくわかってなかったり。とりあえず、くろすぽすとしてみるてすと!
  • 04-15 18:05 > しかも、ユーザ名の変換テーブルなどを持たないとまともにクロスポストできないんだよなぁ。欲を言うとどのメッセージに返信したかも。
  • 04-15 18:07 > ちゃんとクロスポストできてるのかたまに気になる。ので、見に行く。 http://wassr.jp/
  • 04-15 18:10 > ちゃんとクロスポストできてるのかたまに気になる。ので、見に行く。 <a href="http://wassr.jp/" rel="nofollow" target="_blank">http://wassr.jp/</a>
  • 04-15 18:13 > sourceも追加してみたー
  • 04-15 18:15 > thx!
  • 04-15 18:15 > まちがえた。こうかっ。
  • 04-15 18:17 > んんん?
  • 04-15 18:17 > おお、sourceがセットできたぞ。
  • 04-15 18:18 > うーむ。シングルクォートの扱いは次回以降の課題にしよう
  • 04-15 18:18 > ほ'げ
  • 04-15 18:20 > うーむ。シングルクォートの扱いは次回以降の課題にしよう
  • 04-15 18:20 > @turugina いえー、さきほどの thx! という発言はPlaggerでWassrのフィードを拾っていて、この発言含め、Wassrの方にTwitterIrcGatewayからIronPythonでapiポストして、api[TwitterIrcGateway] となってます。
  • 04-15 18:20 > だんだん複雑になってまいりました。はい。
  • 04-15 18:22 > はりはり。 http://wassr.jp/user/takano32/statuses/xRKP8wSLQk
  • 04-15 18:22 > よくよく考えるとループしないか?これ。
  • 04-15 18:24 >  TIGからポストしているのが Wassr 経由でブーメランする予感。
  • 04-15 18:25 > というか、してるな。
  • 04-15 18:25 > Plaggerの方を切るか。
  • 04-15 18:27 > @turugina TIGからWassrとTwitterにクロスポストしていて、PlaggerでWassrから拾っているので、重複してTwitterにポストされているようです。ループはしていないけれど、二重投稿にw
  • 04-15 18:28 > どのくらいWassrに投稿するか、がキーになるけど、今のところあまり使っていないし、いいかな。
  • 04-15 18:29 > システムのセッションに出力していたトレースも切ろう。
  • 04-15 18:29 > Reloadっと。
  • 04-15 18:33 > あー。statusとsourceの順番逆にしたほうがいいか。なんか変な解釈されると発言に &source=TwitterIrcGateway
  • 04-15 18:33 > こんな風になりそうだ。
  • 04-15 18:36 > @turugina おおっ。っと "dog http://tinyurl.com/d76ohz | lv" してみましたが、のってないみたいですね・・・
  • 04-15 18:37 > 予想GUYのtinyurlize
  • 04-15 18:38 > 処理がウルトラ適当なので、クォート文字列あるとぶっこけるなぁ・・・もう少し真面目に作ろう。
  • 04-15 18:42 > @turugina おほー!ありがとうございます。CustomFeed::Wassr みたいなのつくればよさそうですね。
  • 04-15 18:47 > 責務を分けて P::P::F::WassrPostFromWeb とかしたほうがいいのか。よーわからん。
  • 04-15 18:50 > rt juko
  • 04-15 18:50 > やってみただけです。もしかしたら知らないうちに、と思って。
  • 04-15 18:50 > GetStatusFromTypableMapみたいなもんあるかなー。
  • 04-15 18:59 > トップドラストのナガタさん!
  • 04-15 19:14 > yknk
  • 04-15 21:28 > 会社の愚痴とか面談シートに書くと「君の将来を考えるとこれは考えた方がよくないか?」みたいなこと言われるお!なんとかハラスメントな期がするけどあまり気にしないことにしたお。
  • 04-15 21:28 > こうして外に漏れていくんだね!
  • 04-15 21:38 > @kira88 「特筆すべき要望と伝達はない」「同上」「同上」・・・しました!テラ不自然www
  • 04-15 22:49 > 鼻水とまらんなぁ。
  • 04-15 22:52 > ReTweet機能をDLRで実装しようと彷徨ったが、これはどうにもつらいなぁ・・・
  • 04-15 22:52 > *.dllで普通に実装するのはすぐにできそう。
  • 04-15 23:04 > 生まれたときから唯我独尊という、そんなモノに私はなりたくない。
  • 04-15 23:05 > MTM03カー。
  • 04-15 23:07 > げ。大神のばぁちゃん瞬獄殺で餅つくのかwww
  • 04-15 23:08 > sysutils/pdumpfs-rsync などがFreeBSDにはあるのかー
  • 04-15 23:08 > bontmiaなどマニアックなものを使っている
  • 04-15 23:10 > @ryuchi ええΣ! マジですか! 出展はまだわからないですが、会場には行きたいと考えてます。楽しみにしてまーす!
  • 04-15 23:11 > Photo: MAKE: Japan : Make: Tokyo Meeting 03 http://tumblr.com/xk51lfnip
  • 04-15 23:11 > おお。申込期限5月7日か・・・ http://tinyurl.com/cayr9u
  • 04-15 23:20 > @ryuchi おおー!本格的な予感。楽しみにしています!
  • 04-15 23:25 > Link: 世界のプログラミング言語マップ http://tumblr.com/xk51lfq6z
  • 04-15 23:38 > これにのっかって、書いたらねる。 http://tinyurl.com/d7ghlb
  • 04-15 23:41 > @turugina うひw自分も書いてみる、というくらいなのでw
  • 04-16 00:21 > 乗っかり done. http://tinyurl.com/c6jy69
  • 04-16 00:22 > えあ。もうこんな時間かよ。
  • 04-16 00:32 > Photo: 「せんとくん」の彼女に立候補…奈良・葛城市、女の子キャラ(読売新聞) - Yahoo!ニュース http://tumblr.com/xk51lg52a
  • 04-16 00:56 > Amazon.co.jpからもの凄い勢いで届いた荷物を週末まで開封しないという大人のライフハック
  • 04-16 00:58 > @ken2754 ふっ・・・一週間以上放置して返品不能になり、反省するのが真の大人なのです。(えー
  • 04-16 01:00 > Wassrのイイネをまとめた「わっさりぃな」みたいなサービスはないのかな。
  • 04-16 01:00 > [32nd Diary] オブジェクト指向の骨頂は実世界のモデリングという原則 http://tinyurl.com/c6jy69
本日のツッコミ(全2件) [ツッコミを入れる]
t2y-1979 (2009-04-16 (Thursday) 05:34)

名前、概念、とても重要です。ずれたコードを読むと、それだけで読む気なくなったりします。明らかにこの名前おかしーって気になって、気になって(^ ^;;

takano32 (2009-04-16 (Thursday) 06:28)

書いたその人がその日、あるいはその翌日までメンテナンスするのが楽勝だから困るんですよね・・・みな、脳みそを空にして翌日、翌月、翌年の自分、あるいは他人の立場になることを知らない、あるいはドキュメントでカバーしようとして失敗します(笑)。<br>昨日も「その変数は違う目的でもう使われてるダローが!しかも、たまたま整数型だけど命名から明らかにブール型の概念やんけ!!」という変数に新しい状態が追加されました。はふー。新しい変数の定義など、代替え案を提案すると、責務が分離されてないがゆえに、母体から算出された想定影響範囲がバカデカくなり、行程が回らなくなります。うーむ。歯がゆい。

本日のPingbacks(全0件)