追記: id:Nagiseさんからエントリいただきました。 というわけで、ややしつこく感じられるかもしれないけど誤りだと思うところはツッコミを入れさせてもらいます。人に恨みがあるとかそういうわけじゃなくて、説に用事があるってところをご理解いただければ幸いです。 こちらも建設的な議論をしたいと思っているので、もちろん、そのつもりです。 中間のクラスが〜という話題は、開放閉鎖原則を破って境界面に変更を加えた場合に話であって、検査例外が開放閉鎖原則を破るわけじゃない。 なるほど。よくわかりました。 目的と手段で分離してみた場合、「開放閉鎖原則」を「検査例外」を使って破っているだけであって「検査例外」自体の存在が「開放閉鎖原則」を破っているわけでない。「開放閉鎖原則」を破るのは「非検査例外」でもできるわけで、直接の因果関係は成立しないということですね。これは、私の論じ方に問題あったようです。ここに
MVC とは、もともとの出自は Smalltalk で、対話型のアプリケーションを作成するためのアーキテクチャのことでした。 Smalltalk なんて知らない人多いでしょうに、普通のプログラミングの話題でこうも顔をピョコピョコ出すのが、なんというか、憂いヤツです。そんな何かと気になるアイツこと、Smalltalk の MVC について、抜群にわかりやすいこちらの梅沢さんの記事をおすすめしておきます。 Happy Squeaking!! -オブジェクト指向再入門- [第五回:デザインパターン事始め] さて、こちらから引用して、MVC の M、V、C がそれぞれどんなモノかというと、 処理を受け持つ部分は、Modelと呼ばれます。アプリケーションで必要となる実際のデータを保持しており、業務に特化した処理を実行します。(中略) Modelの状態を表示する部分はViewになります。ビットマップデ
Recent entries Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23 Herokuの発音 inoue 2010-12-20 雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18 IPA未踏のニュース inoue 2010-12-15 労基法とチキンゲーム inoue 2010-12-06 フロントエンドエンジニア inoue 2010-12-03 ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25 技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24 雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22 RESTの当惑 inoue 2010-11-22 「プ
「ジェネリクス指向」と言うのを、恥ずかしながら今まで全く聞いたことが無くって、それでその語感をすっごく胡散臭く感じてしまったのです。 まず、「なんとか指向」がどうも buzzっぽく感じて胡散臭い。そして、ダックタイピングすら出来ない 奇形OOPL が、漸くそれが出来るようになったとき、「俺っちてば、OOPを超えたぜっ」と中二病を発症したかのような印象を受けてしまってどうにも胡散臭いです。 Smalltalk派じゃないOOP の 祖(?)、C++ にしても確か「総称の実装は必須」と最初から言い切ってたし、メイヤー先生の OO も総称はあって当たり前って感じでしたし。宗派に依らず総称をOOP外のパラダイムと言ってしまうのは違和感を感じます。でも一方で、サブタイプによる多態しか持たない言語にとって、総称は新たなプログラミングテクニックですし、総称と多態は重なるけれど 同じものではないですし。だか
id:happy_ryoに「わかんねーんだよ、説明してみろゴルァ」されたので、書いてみる。 前書き*1 とりあえず、本日のエントリのキモを最初に。「オブジェクト指向は、隠す技術である」(俺談w)ということを意識して読んで見てください。隠すとは何か? 公開しすぎない事。分かりやすく言えば、publicをprivateに変える事。これが「隠す」。 んじゃあ、隠すと何が良いのか。あるクラスから、見えるもの(=操作できる可能性の範囲(scope))が狭ければ狭いほど出来る事のバリエーションが減るから、プログラムは単純になる。つまり、隠すと複雑性(complexity)が下がる*2。 要件を満たした上で、いかに型(class, interface, etc.)やメンバ(field, method)の可視性を落とすか。可能な限り可視性を下げ、プログラムを単純化し、メンテナンス性を上げるにはどうしたらい
その67 日経ソフトウェアの今月号(6月号)の特集に「コレで納得!オブジェクト指向」という見出しが表紙にあって、ふと本屋で立ち読みしました。内容的には「うーん」な感じ。 3部構成になっていたのですが、1部目がちょっと酷いです。だいたいが「オブジェクト指向でなぜつくるのか」の要約・・と言う流れなのですが、比べものにならない程劣化しています。だって、「とぶ」インターフェイスの実装として「飛ぶ」と「跳ぶ」という別の実装ができるのがポリモーフィズムだ、、、とか書いてあって、もう、どこから突っ込んだら良いのやら・・・orz 一方、続く2部目のほうは打って変わってまともな印象。アプローチとしてはDVDと本のレンタルシステムを非OOPからOOPへ書き換えながら、OOPを説明する内容、ざっと見た限り問題はない、かな?コラムの方が好印象で、クラスの無いOOPLの存在や、継承の危険性とかに、一言触れたりで(な
「素人でもわかりやすい」かどうか、素人には分からない。- うっくつさん本を読む。さんに なるほど、と思いました。 「わかりやすい」とは「素人でもわかりやすい」の意。 「わかりやすい説明」を求める人はその分野に関して素人である。これは「素人」という言葉の定義に由来するものだ。「素人」である以上、その対象を厳密に理解することはできない。だから「わかりやすい説明」は掻い摘んだ概要説明となる。 (中略) 「素人でもわかりやすい」かどうか、素人には分からない。 これが最大の問題だ。しばしば言われるのとは逆だが、素人には自分が正しく読み取れたかどうか判断できないのだから、同語反復と言っても良いほどに正しい。 そのため、素人が言うところの「素人でもわかりやすい」は「読みやすい」に過ぎない。 「素人でもわかりやすい」かどうか、素人には分からない。- うっくつさん本を読む。 ならば、ただ読みやすさだけを求め
自分の中でひっかがりを感じることを整理するため、なんとなく、こんな図を書いてみて、それからそれに文章を付けてみます。 マルが OOPやOOの名前、四角がそれを構成する要素・・・みたいな感じの適当な図です。また、赤の四角がプログラムの構造についての考え方、青の四角が型チェックについての考え方。用語や関係は適当です。(ご容赦) クラスには「型」と「モジュール」の、二つのとらえ方があります。メイヤー先生の「オブジェクト指向入門」から(artonさんをパクって)引用すると、 繰り返しになるが、クラスを型と見るか、またはモジュールと見るかによってすべては決まる。型として見る場合、継承はis-a(……は……の一種である)という関係であり、明らかに特殊化である。"犬"は"動物"よりも特殊な概念であり、"長方形"は"多角形"よりも特殊化されている。この関係はすでに述べた部分集合の関係に対応する。(中略)
今朝方Twitterでこのエントリを紹介したら、 オブジェクト指向談義が盛り上がったのでその議事録をば。 monjudoh とてもためになる読み物http://return0.dyndns.org/log/2008/08/10#s_2 monjudoh >「クラスベースのオブジェクト指向プログラミング言語はプロトタイプベースのそれの特殊ケースであり、プロトタイプベースは関数型言語で大抵はエミュレートできる、というか関数型言語のサブセットに近いと思ってる。」 nagise @monjudoh みねこあさんとこのエントリ読んでたら、自分の理解するOOPが実はOOPじゃないんじゃないかと思えてきて。 iratqq @monjudoh エミュレートは出来ても使い物になるものにするにはファーストクラスのマクロが必要で、つまりCL最強という話ですね、わかります。 deq @monjudoh クラスベー
なんかぐちゃぐちゃになってしまいました。sumimさん、ごめんなさい。 質問に出す前に、くまさんを目の前においてエントリーを書いてみよう。(くまさんは、実はいないから アリア社長に代理でいてもらおう) いったい何がしたかったの? オブジェクト指向でなぜ作るのか、や、憂鬱本を dis りたい。(ぉ このとき、「こういうのもOOPなんだよ」と、なんでも OOP 化が邪魔になる。 (うわ、イビルだ) もうちょっと具体的に 構造化定理を満たすもの(= 三大制御構造のみで書いてあるプログラム)を「構造化プログラミング」と定義すると、駄目なプログラムもその許容範囲に入ってきてしまう。 幸い、ダイクストラ先生は、三大制御構造のみを使うことを「ツール」と位置づけ、実際に構造化された良いプログラムを書くにはどうすればよいかを、「構造化プログラミング論」の中で丁寧に説明されている。上の定義は嘘800だと安心し
return0.infoに移転。昔の日記はまんま残してるので読みたい人はどうぞ。 世界樹の迷宮関係のコンテンツは移行が面倒なのでこっちに残すことにした。 世界樹の迷宮プレイ記録 世界樹の迷宮IIプレイ記録 世界樹の迷宮IIIプレイ記録
Binstock on Software: Perfecting OO's Small Classes and Short Methods The Pragmatic Programmersシリーズの新しい本、The ThoughtWorks Anthologyの中に 興味をそそるエッセイがある。Jeff Bayの"Object Calisthenics"だ。 これは良いオブジェクト指向の性質を実証する小さなルーチンを書く方法をマスターするための 詳細にわたるエクササイズだ。オブジェクト指向なルーチンを書く能力を向上させたい開発者がいるなら このエッセイに目を通すことを勧める。ここにBayのアプローチを要約してみよう。 彼は次にあげられる制約のもとに1000行のプログラムを書くことを勧めている。 これらの制約は意図的に過剰な制限となっているが、これは開発者を手続き的なやり方から脱却させるた
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く