タグ

oopに関するcoppieeeのブックマーク (23)

  • new を不当に貶める陰謀と JavaScript におけるクラスの継承構造の話 - vivid memo

    私は陰謀論者じゃないですし JavaScript の new 演算子が大好きなわけでも大嫌いなわけでもないです。 念のため。 記事は Hiraku さんが書かれた下記記事への言及です。 newを封印して、JavaScriptでオブジェクト指向する(1) newを封印して、JavaScriptでオブジェクト指向する(2) newを封印するべき4つの理由 new 演算子は使うな!? 「newを封印するべき4つの理由」 でも new がいかに糞であるかが書かれていますし、その記事からも言及があるように Crockford さんが書かれた書籍 『JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス』 でも new 演算子は Bad Parts に分類されています。 new 演算子が忌避される理由はいろいろあるみたいですが、Hiraku さんの記事では n

    new を不当に貶める陰謀と JavaScript におけるクラスの継承構造の話 - vivid memo
  • mvc.fm

  • 憂鬱本を買ってみました - みねこあ

    javablack さんが最近とりあげ、 ちょっとだけ話題再燃したの憂 こと「憂なプログラマのためのオブジェクト指向開発講座」。以前借りて読んだことがあるのですが、「酷いわ」と思ったこと以外具体的なことは何も覚えていません(^^; で、具体的になにが酷かったのかのかな?とザザッとWebを流してみたのですが、見つからない。というか「これはいいだー」という感想ばっかりで、予想以上に「酷い」というレビューがないのに改めてビックリです。 むー、これはネチっこいレビューの需要があるかな?とスケベ心をだして買ってしまいましたョ。 憂なプログラマのためのオブジェクト指向開発講座 (DDJ Selection) 作者: Tucker出版社/メーカー: 翔泳社発売日: 1998/05/31メディア: 大型購入: 10人 クリック: 508回この商品を含むブログ (78件) を見る で、改めて読み

    憂鬱本を買ってみました - みねこあ
  • オブジェクト指向再入門/なぜわからなくなってしまうのか?

    いい加減、わけのわからない「たとえ話」はやめよう オブジェクト指向の入門書では、 「謎のたとえ話」から始まるものが多いように思います。 典型的な例は、はじめにでも挙げた、 「哺乳類を継承して犬とを作り、 『鳴く』というメッセージを送ると犬なら『わん』、なら『にゃあ』と鳴く」 って奴でしょう。 他にも、ちょっとWebをぐるぐるすると、清原選手をオブジェクトにしてみたり、 箪笥をオブジェクトにしてみたりなどなど、 およそプログラミングとはかけ離れた説明が蔓延しています。 こんな説明を読んで、なんだかわかったような気分になれる人は、 どっちかというと思考力に欠ける人なんじゃないかと思います。 「わけわからん」という反応のほうが技術屋としては正常でしょう。 いい加減、こういうわけのわからないたとえ話はやめたらどうかと。 あんなもん、わかったつもりの半可通と、 理解できない挫折組を生み出すだけで

    coppieee
    coppieee 2010/11/24
  • クラスが持つ3つの役割 - 西尾泰和のはてなダイアリー

    某所のチャットで話題になって、流れ去りそうだったのでもったいないから転載しておいた。事後承諾で。 MIYAMOTO Daisuke: 型の継承と実装の継承を区別する方法がないんだよな。 西尾泰和(nishio.hirokazu): 型を継承させずに実装を継承させたい→それ移譲で ってことかな? MIYAMOTO Daisuke: そそ。そもそも、クラスに「型としての役割」と「実装としての役割」という複数の責務があることに、俺は長い間気づかなかった。これに気づかないと、型継承と実装継承が頭の中で整理できない。 西尾泰和(nishio.hirokazu): 僕が最近気づいたことも加えると、クラスには「ユーザ定義型」「インスタンスを作成する道具」「実装の再利用の単位」という3つの役割がある。 MIYAMOTO Daisuke: あぁ、インスタンスの生成器ね。 西尾泰和(nishio.hiroka

    クラスが持つ3つの役割 - 西尾泰和のはてなダイアリー
    coppieee
    coppieee 2010/10/10
    Rubyも型はあるでしょ。動的型付けなだけ。
  • 多重継承まとめ - 西尾泰和のはてなダイアリー

    JavaはInterfaceという特殊な実装を持たないものだけ多重継承できる。実装を多重継承する仕組みはない。同じシグネチャのメソッドを持っている2つのInterfaceを継承した際にエラーにならないので衝突に気付けない。 Pythonはクラスを多重継承できる。同じ名前のメソッドを持っている2つのクラスを継承した際にどのメソッドが呼ばれるかはC3線形化を使って決定される。see: A Monotonic Superclass Linearization for Dylan RubyはModuleという「なにかを継承することはできなくてインスタンス化もできないもの」だけは多重継承できる。Moduleが別のものを継承できないためメソッドの解決は素朴な探索でOK(include A include BしたらBでの実装が優先) SmalltalkにはTraitという実装の多重継承ができるしくみがあ

    多重継承まとめ - 西尾泰和のはてなダイアリー
    coppieee
    coppieee 2010/09/24
  • BeInteractive! [ArtisticCoding: オブジェクト指向のそもそも]

    先月や先々月は鼻から DisplayObject がパーティクルの如く吹き出そうなぐらいバリバリ実装をしていた反動か、今月は設計やデザインに指が動く今日この頃です。というか、現実問題として実装前フェーズの案件が沢山あるってだけなんですけどね。 そんで色々考える訳なのですが、ふと、「オブジェクト指向そのもの」についてきちんと勉強したことが無い気がしてきました。これはいけません。なんかバイブル的なものってあるんでしょうか。 で、インターネッツを漂流していたらオージス総研さんの「オブジェクトの広場」にいい感じのまとめをいくつか発見しました。 技術書籍紹介 [オブジェクト指向を学ぶための入門書ガイド] これだけは読んでおきたい!オブジェクト指向関係の文献ガイド オブジェクト分野別ランキング [デザインパターン] オブジェクトの広場編集員が贈るオススメ書籍 - 今、このがアツい! - で、気に

  • クラスはサブルーチン由来(Simula)の補足 - みねこあ

    某しっくりこないな エントリですが、コメント欄でガンガンご人が燃料を投下するというすさまじい事態になっています。炎上の鎮火方法に「燃やしつくす」ことを選ぶとは、なんとも恐ろしいことをする御仁です(これが生き残りの極意か....)。 と、まぁ、人の心配は置いておいて、今は自分のこと。 元ネタの炎上と相まって、わたしのとこのエントリもつられてブクマが予想外に増えていく。あのエントリは勢いと記憶だけで書いてしまっていて、あんまり注目されるとちょっとヤバいというか、具体的には 書く前にちゃんと原典にあたってなかったりですとか、ちょっとアレレ?な事を書いてたりですとか、残したツッコミどころが案外多くって、類焼しないかと恐怖を感じた一週間でした。 というわけで、補足説明。 補足の1 先のエントリーでは「サブルーチン」と言ってしまってますが、正確には Simula (SIMULA 67) の クラスは

    クラスはサブルーチン由来(Simula)の補足 - みねこあ
    coppieee
    coppieee 2010/05/01
    「型継承(インターフェイス継承)」と「実装継承」
  • はてなブログ | 無料ブログを作成しよう

    トルコ水紀行 -前編 イスタンブール- みなさんこんばんは、地図子です!8月は久しぶりに毎月更新にしようと思います。今までずっと名古屋について書いてきましたが、ワープして・・・ トルコについて書きたいと思います。 2024年6月に念願のトルコに行ってきました。いつからトルコに行きたかったかわから…

    はてなブログ | 無料ブログを作成しよう
  • 札幌Ruby会議02「知らないと損をするSmalltalk」の仮想空間を再現するためのコード - Smalltalkのtは小文字です

    MagLev は各々で試していただくとして、Croquet(Squeak Smalltalk 上に構築された、来はピアツーピア接続を介した仮想空間共有プラットフォーム)を今回、プレゼンツールとして改変したコードと空間内に列べたスライドの画像データを公開しました。 SapRubyKaigi02-sumim.zip 件のプレゼンをお手元のホストOS上で再現するためには Croquet SDK が必要です。 Main Page - Croquet Consortium http://croquetconsortium.org/downloads/Croquet_SDK_v1.0.18.zip とりあえず、Croquet_SDK_v1.0.18.zip を適当な場所に展開し、Croquetを起動(Win では .bat をダブルクリック、OS X では Croquet.1.0.18.image

    札幌Ruby会議02「知らないと損をするSmalltalk」の仮想空間を再現するためのコード - Smalltalkのtは小文字です
    coppieee
    coppieee 2009/12/07
    メッセージングのOO!
  • 【本】「いちばんやさしいオブジェクト指向の本」を読んだメモ | _level0 - KAYAC Front Engineer Blog

    普段オブジェクト指向言語であるActionScriptを触っているわけですが、実際にオブジェクト指向とはなんぞや、と言われると今ひとつ理解できていない気がしたので、を読んでみました。 「いちばんやさしい」というくらいだからさぞわかりやすいだろう、ということでこちらのをチョイス。 以下、改めて内容を振り返ってみる為のメモも兼ねてとりとめなく書いてみます。 プログラミングのではない 目的達成のための手段であるオブジェクト指向をその成り立ち、概念、プログラミングにおける導入方法等の様々な面で広く浅く解説した入門書。 目次と概要 オブジェクト指向の歴史 →SmallTalkやSimulaといったオブジェクト指向の起源からJava, C++への歴史的な流れ オブジェクト指向の概念を理解する →現実世界を例にとったオブジェクト指向の概念解説 オブジェクト指向プログラミングへの道 →大規模開発にお

    【本】「いちばんやさしいオブジェクト指向の本」を読んだメモ | _level0 - KAYAC Front Engineer Blog
    coppieee
    coppieee 2009/12/04
    第二版が出てるっぽいよ!安かったから、つい購入してしまった。
  • クラスとは変数をまとめて使う事のできるテンプレート - やさしいデスマーチ

    クラスってなにか、というのは教える相手によって結構表現が違うわけで、いきなりオブジェクト指向が…とか騒ぎ出す人はどうかと思う。 で、「なかなか覚えられないPHPのclassについて考えてみた」というエントリーから。 空いている時間にPHPの学習をはじめてずいぶん経つのですが、「クラス」の概念がなかなか理解できませんでした。 どう書けばどう動くまでは把握しているのですが、「なぜこんな風に書くのか」がつかめない。 http://blog.webbingstudio.com/2009/09/php_class.html どうなんでしょうね? 個人的にはCMSを使うという範囲ではクラスという概念は覚える必要がないような気もします。たぶん、ほとんど使わないし、使うとしても既存のクラスのインスタンスを操作するケースかと思うので。 とはいえ、どうしてクラスがあるのかを理解することは重要かと思います。これ

    クラスとは変数をまとめて使う事のできるテンプレート - やさしいデスマーチ
    coppieee
    coppieee 2009/09/10
  • オブジェクト指向の学び方 - 千里霧中

    ソフトウェア開発 実は最近オブジェクト指向に関する指導などで、オブジェクト指向の学び方について考える機会が増えています。今回は思考の整理も兼ねて、その学び方についてまとめてみようと思います。オブジェクト指向をめぐる混乱 オブジェクト指向の定義やアプローチに関しては、一部混乱が存在します。そららは学習を阻害するリスクを十分持っていますので、学び方に入る前の予防的な確認として、一度主要なものを列挙したいと思います。 工程間での混乱 オブジェクト指向は様々な工程に導入されていますが、それぞれで独自の世界が形成されている領域があります。 例えば分析工程では、アクターやデータベース、機能プロセスといった現実世界や仕様上の構成要素にオブジェクトやクラスを割り当て、その挙動やコミュニケーション手段を継承やプロパティで表現する方法論が、オブジェクト指向分析やUMLモデリングといった形で確立されています。そ

  • アラン・ケイが考えるオブジェクト指向プログラミング - @katzchang.contexts

    OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I'm not aware of them. Dr. Alan Kay on the Meaning of "Object-Oriented Programming" 私が考えるOOPはメッセージング、状態処理のローカルでの保有・保護・隠蔽、そして全ての物に対する強力な遅延束縛、これだけだ。これはSmalltalkとLISP

    アラン・ケイが考えるオブジェクト指向プログラミング - @katzchang.contexts
    coppieee
    coppieee 2009/07/13
    型付けを取り込むか、取り込まないかで意見の別れどころなのか。
  • 第127回 Ruby vs Java ダックタイピングとインタフェースで見る多態性 - bingo_nakanishiの他言語出身者のためのPerl入門

    前回は、Perlで書いたのだけど、 Rubyでも書いてみたので載せます。 動的型付け言語と静的型付け言語における多態性 オブジェクト指向では、多態性(ポリモーフィズム)という発想がでてくる。 この多態性を実現する方法を今回は2つ紹介する。 Rubyは動的型付け言語であり、ダックタイピングという手法で、多態性を実現できる。 対して、静的型付け言語であるJavaでは上位の型を作ることで多態性を実現できる(今回はインタフェースを用いてみた)。 ダックタイピング Rubyでのタックタイピングを見てみよう。 human = Human.new dog = Dog.new duck = Duck.new human.touch(dog) human.touch(duck)いま、このようにhumanがtouchすると、おのおのの動物が鳴くソースを書いてみる。 duck(アヒル)はhuman(人間)に触ら

    第127回 Ruby vs Java ダックタイピングとインタフェースで見る多態性 - bingo_nakanishiの他言語出身者のためのPerl入門
  • Smalltalkのtは小文字です

    2022-09-09改訂: gcc バージョンが古すぎたのと、C が内部計測でなかった点を改め計測しなおしました。結果、Rust は C より速くはなくなりました。紛らわしいことで、ごめんなさい。また、gcc のバージョンアップに伴い、Python および Ruby についてはビルドと計測をしなおしたので、これらも少し速い値に変わっています。この点もどうぞあしからず。 2022-09-10追記:ご要望のあった Python numba.njit 使用時と Go の結果を追加しました。PHP は JIT 有効化が面倒だったので断念しました^^; 2022-09-10追記2:C の計測で clock() を使うのはフェアではないという指摘がありましたので、念のため clock_gettime() を使用したコードに差し替えました。結果に大きな差はありません。 2022-09-10追記3:PHP

    Smalltalkのtは小文字です
    coppieee
    coppieee 2009/06/14
    きっとOOPについて日本一正確なことが書かれてるblog
  • dpinfo.html

    目次 はじめに Abstract Classパターン Abstract ClassパターンRuby版 (by 助田雅紀さん) Balkingパターン Before/Afterパターン Futureパターン FutureパターンRuby版 (by 助田雅紀さん) Generation Gapパターン Hook Operationパターン Hook OperationパターンRuby版 (by 助田雅紀さん) Immutableパターン Marker Interfaceパターン Monostateパターン MonostateパターンRuby版 (by 助田雅紀さん) MonostateパターンPerl版 (by 宮川さん) Null Objectパターン Null ObjectパターンとSingletonパターン Producer-Consumerパターン Sharableパターン Singl

    coppieee
    coppieee 2009/06/03
    デザパタ本読んだら、こっちも見ようね!
  • http://hmdt.jp/oop/index.html

    coppieee
    coppieee 2009/05/14
    なにここ。ためになりそう。
  • "ソフトウェア"

    coppieee
    coppieee 2009/05/04
    佐原伸のソフトウェアのページ。MLの論文が参考になるかも。
  • 青木淳「オブジェクト指向システム分析設計入門」

    はじめに このはオブジェクト指向技術を利用してソフトウェア開発することを目指す技術者および管理者のために書かれたです。プログラムのコードや難しい数式などを排除してあり,図と文章によって基概念や適用技術を平易に解説しています。オブジェクト指向技術数学(形式)ぬきで探求する試みといえるでしょう。 来,オブジェクト指向技術を,瓶から瓶へ水をもらさぬように,正確に伝えるには,数学(型理論)を必要とします。数学的形式化が行われていないと,オブジェクト指向で表面化する問題の議論がかみ合わず空転することが多いからです。あの時はこうだっだ,この時にはああだったと経験則の披露になりかねないのです。やはり何かしらの形式化は必要でしょう。しかし,数学的形式化の苦しみときたら並大抵ではありません。特に,後述するインヘリタンス(継承) や並列などが絡んだあかつきには残酷なのです。私だけかもしれません

    coppieee
    coppieee 2009/05/04
    OOPの歴史。すべてはSimulaから始まった