自分の中でひっかがりを感じることを整理するため、なんとなく、こんな図を書いてみて、それからそれに文章を付けてみます。 マルが OOPやOOの名前、四角がそれを構成する要素・・・みたいな感じの適当な図です。また、赤の四角がプログラムの構造についての考え方、青の四角が型チェックについての考え方。用語や関係は適当です。(ご容赦) クラスには「型」と「モジュール」の、二つのとらえ方があります。メイヤー先生の「オブジェクト指向入門」から(artonさんをパクって)引用すると、 繰り返しになるが、クラスを型と見るか、またはモジュールと見るかによってすべては決まる。型として見る場合、継承はis-a(……は……の一種である)という関係であり、明らかに特殊化である。"犬"は"動物"よりも特殊な概念であり、"長方形"は"多角形"よりも特殊化されている。この関係はすでに述べた部分集合の関係に対応する。(中略)
オブジェクト指向の入門書と言えば『オブジェクト指向でなぜつくるのか』に決まってるよね、と話していたら、「ええ、そうなんですか?」と、この本に推薦のことばを寄せていた平鍋さんの会社の人に言われてショックでした。ちょっと駄目すぎです。角谷さんなんとかしてください(<無茶振り)。 オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識― 作者: 平澤章出版社/メーカー: 日経BP社発売日: 2004/06/03メディア: 単行本購入: 34人 クリック: 448回この商品を含むブログ (198件) を見る 私もご他聞に漏れず、オブジェクト指向の本はいろいろ読んでみたのですが、『オブジェクト指向でなぜつくるのか』に勝る本は内外合わせてまだお目にかかれていません。率直に言ってプログラマ必読書だと思います。 その素晴らしさは随所にあるのですが、章立てに追って説明しましょ
Hi, I’m Mark Nottingham. I write about the Web, protocol design, HTTP, Internet governance, and more. This is a personal blog, it does not represent anyone else. Find out more. Comments? Let's talk on Mastodon. @mnot@techpolicy.social other HTTP APIs posts Designing Headers for HTTP Compression Tuesday, 27 November 2018 How to Think About HTTP Status Codes Thursday, 11 May 2017 Five Reasons to Con
日々のプログラミングの雑感です。 やはり仕事のプログラミングですと、他の方が書かれたプログラムを修正して....というのが、大きなウェイトを占めるのは当然です。このとき、いつも私が気になること、というとか「私がいつも気をつけて実践している、複雑さを低減する有効な手段なんだけども、あまり他の人が理解していない」と見受けられることについて書きましょうか。 その基準、というようなものは、単純にこのコトバで表せます。ゲッタは、外部から見える副作用を持つべきではない ということです。この原則を私が理解し受け入れたのは、やはり Meyer の「オブジェクト指向入門」での主張がきっかけです。Meyer が作った言語 Eiffel は Pascal(Ada)ベースですから、値を返す function(関数)← Java だとゲッタはこれ と、値を返さない procedure(手続) ← Java での典型
オブジェクトとクラスの関係について、次のような説明を見かけました(文言の引用ではなくて、檜山による要約)。 オブジェクトとクラスは全体としてツリー構造をしていて、ツリーの末端をオブジェクト、末端以外のノードをクラスという。末端であるオブジェクトは、その親ノードであるクラスのインスタンスと呼び、クラスどおしの親子関係を継承関係と呼ぶ。 うーむ、この説明、ある意味「簡潔でわかりやすい」とも言えるのだけど、ちょっと単純化し過ぎでしょ。 オブジェクトやクラスの概念て、そんなに美しくもなきゃ、整合的でもありません。実用性やら実装上の都合やらでゴチャゴチャですがね。しかし、そのゴチャゴチャが悪いともいえません。ゴチャゴチャを無理に単純化することなく、必然性を持った(幾分は偶発的だけど(苦笑))複雑さとして理解すべきかと思います。 というわけで、メタクラスやレイフィケーション(reification)な
http://capsctrl.que.jp/kdmsnr/wiki/transl/?UsingPatternLanguagesForOOP この文章は本当に重要。 私はいままでパターンと言われていたものについて、 ものすごく誤解していたということを、ようやく理解した。 まず、パターンの源流はどこにあるのかという点。 私はいままで、GoF (Gang of Four)が源流なのだと思っていた。 全然違うんだね。 この文章が源流なのだとすれば、それは、 Apple Computer の Kent Beck氏と、Tektronix の Ward Cunningham氏の二人が、現在パターンと呼ばれている概念の原型を作り上げたのだということ。 この二人が源流なのであれば、現在XPと呼ばれている概念が パターンと直結していることも理解できるし、またもう一つ、 WikiWikiWebと呼ばれているシ
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
今回から数回にわたり、Windows Vistaリリースのタイミングで登場する新しいコミュニケーション基盤技術「Windows Communication Foundation」(以降、WCF。以前はIndigoというコードネームで呼ばれていた)に関して、その登場の背景から、主要概念、プログラミング、既存資産の移行などなどを順にご紹介する。 そもそもマイクロソフトはなぜ新しい通信インフラ技術を提供することになったのか、そこにはどんな狙いがあるのか、さらにはそのテクノロジを採用するメリットは何なのか、また既存の分散アプリケーション・テクノロジからの移行性や相互運用性はどうなっているのか、などWCFに対してはいろいろな疑問を持たれている方が少なくないはずだ。当記事を読み進める中でそういった当初遭遇するさまざまな疑問を解消し、WCFをより知っていただくためのきっかけとなれば幸いである。 なお、こ
http://d.hatena.ne.jp/m-hiyama/20060203/1138935625 を見て笑った。 僕も「動物クラスのサブクラスに犬クラスと猫クラスを作って、『歩け』メッセージを送って歩かせてみましょう」とか馬鹿なことを書いてある本を読んでまったく意味がわからなかった。”うんうん抽象化と情報隠蔽と多態ですか。で、それは何がうれしいの?” オブジェクト指向を理解できた気分になったのは、GoFを読んでからだ。”なるほど!オブジェクト指向言語はこういうことができるのか!” 僕はプログラムで犬や猫を歩かせようと思ったことはなかったが、GoFに書いてあるような設計上の具体的な問題には多少心当たりがあった。 抽象的な説明のメリットは、それが実装に縛られないことだ。まったく違う処理系を持ってこられても説明だけは生きのこる。一方、デメリットはその説明が役に立たないことだ。例えて言うと、高
以下の文章は、Kent Beck、Ward Cunninghamによる「Using Pattern Languages for Object-Oriented Programs」の日本語訳である。 Ward Cunningham氏の許可を得て、ここに掲載する。 Kent Beck, Apple Computer, Inc. Ward Cunningham, Tektronix, Inc. Technical Report No. CR-87-43 September 17, 1987 Submitted to the OOPSLA-87 workshop on the Specification and Design for Object-Oriented Programming. 概要 オブジェクト指向プログラミングへのパターン言語の適合について概説する。ウィンドウ・ベースの
翻訳 原文:Classical Inheritance in JavaScript著者:Douglas Crockford ※原文のコード内に誤りがあり、このまま記述しても動作しません。著者のコメント及び補足情報は翻訳メモを参照下さい。 君は自分が利口で階級にも属さず 自由だなんて思い込んでる―John LennonJavaScriptは、クラスという概念に囚われていない言語です。JavaScriptでは、古典的な継承の代わりにプロタイプ的な継承を使用します。これはC++やJavaのような旧来のオブジェクト指向言語に長けたプログラマを当惑させるかもしれません。JavaScriptのプロトタイプ的継承が、古典的継承に比べていかに表現力が優れているかを、これから見ていきましょう。 JavaJavaScript強い型付け弱い型付け静的動的古典的プロトタイプ的クラス関数コンストラクタ関数メソッド関
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く