タグ

ooに関するHayatoのブックマーク (12)

  • オブジェクト指向と10年戦ってわかったこと - Qiita

    この記事の内容 オブジェクト指向は難しい!わかった気になって実践すると詰みます... ウギャー この記事は10年以上オブジェクト指向と戦った筆者が、通常とは異なるアプローチでオブジェクト指向を解説したものです。 筆者はJavaを使って格的なシステム開発をしたことがありませんが、オブジェクト指向言語として最もポピュラーなJavaをベースにオブジェクト指向について解説させていただきました。 また、この記事の続編にあたります「なぜオブジェクト指向は難しいのか」を更に2年の時を経て執筆させて頂きました!是非こちらも一読していただけると嬉しいです。 オブジェクト指向三大要素の謎 オブジェクト指向三大要素ってありますよね。オブジェクト指向は「カプセル化」「継承」「ポリモーフィズム」の3つの要素で成り立つと言われています。最近では、この三大要素が語られる傾向は薄いようですが、一度は耳にしたことがある

    オブジェクト指向と10年戦ってわかったこと - Qiita
    Hayato
    Hayato 2016/05/15
    可塑性
  • オブジェクト指向入門をもう一度 - @m_seki の

    プログラミングが好きでTDDが好きで昔話に興味があるあなたに「オブジェクト指向入門」を勧めます。 いまさら「オブジェクト指向」に「入門」なんて、と思うかもしれません。ちょっと控えめなタイトルのこのは、私のプログラミングスタイルにとても大きな影響を与えました。 私はこのから著者メイヤーの説く多くの概念を学んだだけでなく、言語デザインからその意図や主張を汲み取ることの楽しさも教わりました。私にとってはプログラミングの指針を両面から得られた、プログラミングの入門書でした。それから、やり過ぎに注意、という教訓も得たような気がします。 メイヤーはEiffelという言語を用い、「モジュール」を出発点として様々な議論を展開します。インターフェイスの重要さ、契約/表明を使ったデザイン、開かれてかつ閉じている開放/閉鎖原則を満たす型システムなどなど、「正しいソフトウェア」を構築するためのさまざまな概念を

    オブジェクト指向入門をもう一度 - @m_seki の
  • Mixin hierarchy in Ruby 1.9

    Mixin hierarchy in Ruby 1.9 in Ruby 1.9 where I(x) and (x) are in RHG notation. it means, * I(x) is an incarnation class of the module x. * (x) is an eigenclass of object x. source: module Inteligence; end module Prayable include Inteligence end class Cattle; end class Yapoo < Cattle include Prayable end class Pegasus < Cattle include Inteligence end Done

    Mixin hierarchy in Ruby 1.9
    Hayato
    Hayato 2010/02/28
  • 青木淳「オブジェクト指向システム分析設計入門」

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

    Hayato
    Hayato 2007/11/05
    オブジェクト指向システム分析設計入門
  • The Universe of Discourse : Design patterns of 1972

    Mon, 11 Sep 2006 Design patterns of 1972 "Patterns" that are used recurringly in one language may be invisible or trivial in a different language. Extended Example: "object-oriented class" C programmers have a pattern that might be called "Object-oriented class". In this pattern, an object is an instance of a C struct. struct st_employee_object *emp; Or, given a suitable typedef: EMPLOYEE emp; Som

    The Universe of Discourse : Design patterns of 1972
    Hayato
    Hayato 2006/12/08
    Patterns are signs of weakness in programming languages.
  • Amazon.co.jp: 入門 オブジェクト指向設計―変更に強く生産性が高いシステムを: 滝沢克泰 (著), 睦,今野 (監修): 本

    Amazon.co.jp: 入門 オブジェクト指向設計―変更に強く生産性が高いシステムを: 滝沢克泰 (著), 睦,今野 (監修): 本
  • prototype.js でデザインパターン - Iterator

    Ruby on Rails や Catalyst のプラグインなんかでは prototype.js という JavaScript のライブラリを使って、Ajax サポートを実現しています。prototype.js とフレームワークが必要な Ajax の JavaScript コードを吐き出してくれるので、Ruby プログラマや Perl プログラマは JavaScript の実装を意識しなくても Ajax なインタフェースが作れる、という風になっています。 こんな感じで prototype.js は Ajax な部分に注目が集まっていますが、ほかにも "Class-style OO" なフレームワークも内包してます。 JavaScript はプロトタイプベースのオブジェクト指向言語で、C++Java のようなクラスベースのオブジェクト指向言語とはちょっと実装が異なります。プロトタイプ

    prototype.js でデザインパターン - Iterator
  • サルでもわかる 逆引きデザインパターン 第1章 はじめてのデザインパターン はじめに:

    第1章 はじめてのデザインパターン はじめに デザインパターンとは 特集の構成 すぐわかるオブジェクト指向 すぐわかるUML おわりに 第2章 逆引きカタログ ロジック編 Singleton (シングルトン) Factory/Factory Method (ファクトリ/ファクトリメソッド) Strategy (ストラテジ) Composite (コンポジット) Visiter (ビジタ) 第3章 逆引きカタログ J2EE編 Template Method (テンプレートメソッド) Facade (ファサード) ViewHelper (ビューヘルパ) DAO (Data Access Object) 第4章 逆引きカタログ その他 ユーティリティクラス 実行時例外を標準的に使う Nullオブジェクト 第5章 デザインパターン適用の勘所 はじめに アプリケーションの仕様 リファクタリング前のサ

    Hayato
    Hayato 2005/07/23
  • - オブジェクト指向の再定義

    新連載として「オブジェクト指向の再定義」を開始する。特に最近の アジャイル開発の動向から、オブジェクト指向を見つめなおしてみたい、とい う動機だ。なおこの連載は、最近の、セミナー、blog、私信メール、そして 実践から感じていることを、新発想として提示していこう、という意気込みで あり、まだ業界としての定説に至っていない、もしくは至りつつある内容が中心である。ぜひみなさん、読んだ感想をフィードバックして、平鍋に連載の勇気をください。

    Hayato
    Hayato 2005/07/13
  • - プログラム詳細

    プロジェクトを成功へ導くために、プロジェクトマネジメントは必須の知識体系 です。その中でも、メンバーの能力を100%以上引き出す手法としてのファシリ テーションにフォーカスしてその価値、原則、実践を紹介します。特に、エンジニア として過ごす人生の時間の質(QoEL=Quality of Engineering Life)を高めるために、 どいうった工夫ができるか、についてをお話します。

    Hayato
    Hayato 2005/07/12
  • デザインパターンを利用したDBアクセスの実装

    Webシステムが主流となり、データベース・アプリケーションはJavaやC#といったオブジェクト指向言語で開発することが多くなった。しかし、データベース設計はオブジェクト指向モデルとうまくかみ合わず、データモデル設計に苦労するエンジニアは少なくない。連載は、オブジェクト指向モデルとデータベースモデルのインピーダンスミスマッチに対応するテクニックを紹介する。(編集局)

    デザインパターンを利用したDBアクセスの実装
  • Command パターンはやめよう - philosophical

    プログラミングの世界では Command パターンと呼ばれる手法が存在します。 これは GoF 定義の、かなり実用性のあるパターンなのですが、最近は優位点を生かせるような状況じゃないところに適用して、効率を落としているだけみたいな状況を見かけます。 なので、ちょっとネタとして。 Command パターンにはもともと以下のような弊害があります。 ・コマンドをどうやって選択するかが問題 ・execute で渡されるパラメタが一般化されすぎてしまう これを避けるために、Command の具象クラスの属性としてコマンド特有のパラメタを持たせるといったことが行われるのですが、当然この部分は汎用的に記述できないため、Command を呼び出す側ではなく、Command をインスタンスする側で行うことになります。 そうすると、Command を呼び出す時点のコンテキストに依存するパラメタを与えられ

    Hayato
    Hayato 2005/06/19
  • 1