タグ

oopに関するitengineerのブックマーク (14)

  • オブジェクト指向の憂うつ~設計編

    1960 年生まれ,独身フリー・プログラマの生態とは? 日経ソフトウエアの人気連載「フリー・プログラマの華麗な生活」からより抜きの記事をお送りします。2001年上旬の連載開始当初から,現在に至るまでの生活を振り返って,週1回のペースで公開していく予定です。プログラミングに興味がある人もない人も,フリー・プログラマを目指している人もそうでない人も,“華麗”とはほど遠い,フリー・プログラマの生活をちょっと覗いてみませんか。 ※ 記事は執筆時の情報に基づいており,現在では異なる場合があります。 前回の記事で「オブジェクト指向だからこそ悩む」という書き方をしたが,よく考えてみるとこれはあまり正しい表現ではない。なぜなら,オブジェクト指向プログラミング(以降,OOPと略す)の仕様を持ったプログラミング言語であるからといって,大抵の場合は必ずしもOOPを多用する必要があるわけではないからだ。 現に,少

    オブジェクト指向の憂うつ~設計編
  • オブジェクト指向談義 on Twitter - monjudoh’s diary

    今朝方Twitterでこのエントリを紹介したら、 オブジェクト指向談義が盛り上がったのでその議事録をば。 monjudoh とてもためになる読み物http://return0.dyndns.org/log/2008/08/10#s_2 monjudoh >「クラスベースのオブジェクト指向プログラミング言語はプロトタイプベースのそれの特殊ケースであり、プロトタイプベースは関数型言語で大抵はエミュレートできる、というか関数型言語のサブセットに近いと思ってる。」 nagise @monjudoh みねこあさんとこのエントリ読んでたら、自分の理解するOOPが実はOOPじゃないんじゃないかと思えてきて。 iratqq @monjudoh エミュレートは出来ても使い物になるものにするにはファーストクラスのマクロが必要で、つまりCL最強という話ですね、わかります。 deq @monjudoh クラスベー

    オブジェクト指向談義 on Twitter - monjudoh’s diary
  • アラン・ケイの「Is "Software Engineering" an Oxymoron?」 - Smalltalkのtは小文字です

    UPDATE!!: id:propella さんがすばらしい翻訳を公開してくださいましたので、そちらをどうぞ 「ソフトウェア工学」は矛盾語法か? "-- -- -- -- -- -- -- -- -- -- -- -- -- --" Is "Software Engineering" an Oxymoron? [PDF(勝手ミラー版)] タイトルの訳はよく分からないのですが「“ソフトウエア工学”は矛盾表現か?」みたいな感じでしょうか。 これは、Croquet(Squeak システム上に構築された仮想3D空間オーサリング用のフレームワーク。Qwaq 社による商用化もされている)の最初の公開バージョンのマニュアル(Croquet0.1.pdf)の付録に掲載された文章なのですが、なぜか公式サイトからは消えていて、ググって見つけた勝手アーカイブから入手できる元の PDF でも絵が壊れていたので、そ

    アラン・ケイの「Is "Software Engineering" an Oxymoron?」 - Smalltalkのtは小文字です
  • オブジェクト指向でなぜ作るのか を買ってみました - みねこあ

    オブジェクト指向をわかりたいなら今すぐ『オブジェクト指向でなぜつくるのか』を読め -思っているよりもずっとずっと人生は短い。 VS お勧め? - カレーなる辛口Java転職日記 について、http://www.kt.rim.or.jp/~kbk/zakkicho/08/zakkicho0807c.html#D20080728-4 さんよりお呼びが掛かりました。 普段、さんざ召還魔法を使いまくっている私としては、ここは恩返しのしどころです。けれど、敵はあまりに強大で...。 オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識― 作者: 平澤章出版社/メーカー: 日経BP社発売日: 2004/06/03メディア: 単行購入: 34人 クリック: 448回この商品を含むブログ (198件) を見る 結論から先に言えば、OO の入門書としては、書はダメで

    オブジェクト指向でなぜ作るのか を買ってみました - みねこあ
  • 限りなき旅は続く - みねこあ

    余談です。大変失礼ながら、「オブジェクト指向でなぜ作るのか」の最後のページ、「作者プロフィール」をみて、笑ってしまいました。*1 それから、「現実世界をそのままソフトウエアに表現するオブジェクト指向技術」を求めて10年余りの旅に出るが、当初の目標を達成出来ずに終わる。その経験を元に書を執筆する。 というのも、この興味深い旅路の軌跡を、目にしたことがあるからです。 オブジェクト指向は当に「オブジェクト」指向か? 3.1 多重分類と動的分類 実は現在主流となっているオブジェクト指向プログラミング言語にはある制約があります。それは「オブジェクトが帰属するクラスは唯一で、かつ帰属するクラスを変更することができない」というものです。あまり一般的な用語ではありませんが、前者を単一分類 (single classification) 、後者を静的分類 (static classification)

    限りなき旅は続く - みねこあ
  • 駄目なOO本の見分け方? - みねこあ

    正しいアプローチは 良書を読む・・ということなのですが、なにが良書かを判断するのは難しいです。なぜオブや憂が良書として紹介されているのですから、Web の書評の多数決もあんまりあてにならないです。 なので、せめて駄目なOOの見分け方をちょこっとだけ書こうと思います。とはいっても、毒キノコの見分け方 並にナンセンスな話なので、眉に唾を付けて読んでいただけると幸いです。 OOP とは 「カプセル化」「継承」「ポリモルフィズム」である、という説明(いわゆるオブジェクト指向3点セット) を是としていたり、議論の土台においてあるは ダメだとおもったほうが無難です。 「オブジェクト指向プログラミングとは何か?」[Stroustrup87] (PDF, ただし '91 改訂版) - Smalltalkのtは小文字です に詳しいのですが、これはもともとこれだけの言語機能があれば オブジェクト指向

    駄目なOO本の見分け方? - みねこあ
  • クラス設計の常識に反して、クラス名を動詞に、メソッド名を名詞にする - kなんとかの日記

    クラスを作るとき、ふつうはクラス名を名詞に、メソッド名を動詞にする。 class FileLoader { // クラス名は名詞 def load(name) { // メソッド名は動詞 ... } } しかし PHP のフレームワーク CodeIgniter では、一部のクラスでこれが逆になっている。つまり、クラス名が動詞で、メソッド名が名詞なのだ。 class Load { function model($name) { ... } function helper($name) { ... } function library($name) { ... } } CodeIgniter では、このクラスのインスタンスが、クラス名と同じ名前で $this に設定される。そのため、実際使うときはこんな感じ。 $this->load->model('User'); // モデルをロード $th

    クラス設計の常識に反して、クラス名を動詞に、メソッド名を名詞にする - kなんとかの日記
    itengineer
    itengineer 2008/07/11
    名詞と動詞についての面白い考察。
  • SELF: The Power of Simplicity(訳)

    戻る SELF: The Power of Simplicity DAVID UNGAR, RANDALL B. SMITH 原文 概要 SELFは、探求プログラミングのための オブジェクト指向言語で、 プロトタイプ、スロット、振る舞いという 少数の単純で具体的な考えに基づいている。 プロトタイプは継承とインスタンス化を一つにし、 多くのオブジェクト指向言語よりも単純で柔軟な枠組みを提供する。 スロットは、変数と手続きを単一の構造に一体化させる。 これにより継承階層を使い、 従来の言語における字句スコープ機能を採り入れられる。 そして最後に、SELFは状態と振る舞いを区別しないので、 普通のオブジェクトと手続きとクロージャとの間の相違が小さくなる。 SELFの単純さと表現力は、 オブジェクト指向計算に新たな洞察を与える。 To thine own self be true.(自己に忠実であ

  • 結論:結局、Javaはクロージャを使えるの? - lethevert is a programmer

    【追記 2008/7/2】とても昔のClosureについて書いた記事が注目を集めてしまったみたいですが、ぜひ、もっと後で書いた次の記事とその関連スレッドの方も確認してみてください。このときよりも、もう少し事情が分かってから書いたものなので、より正確に状況を理解できると思います。それに、私自身、この言葉にはまだ混乱しています・・・ http://d.hatena.ne.jp/lethevert/20070524/p2 - という問いに対して、そろそろ私の結論を整理しておきます。 これは、将来の自分に対する参照の便のための整理です。 前提知識 前提知識として、こちらの内容を読んで理解しておきます。 Closure (computer programming) - Wikipedia [id:lethevert:20060119:p1] [id:lethevert:20060121:p2] また

    結論:結局、Javaはクロージャを使えるの? - lethevert is a programmer
  • 第7回 オブジェクト指向は「正しい」のか?──科学技術としての考察 | gihyo.jp

    筆者よりプログラミングやソフトウェアエンジニアリングにずっと詳しい読者に対して、身の程知らずのそしりを免れないタイトルだが、この連載の開始にあたって「多角的な視点から」というのを強調したと思う。ひとつの考え方として捉えていただければ幸いだ。 オブジェクト指向の「波」 現役エンジニアの読者諸氏にしてみたら素人同然の私だが、これでもエンジニアとしてプログラミングや回路設計などでメシをっていた時代もある。初めてのプログラムというものに接したのはと雑誌で読んだBASICだった。実際に自分でプログラミングをしたのはアセンブラ(というかマシン語)が最初だ。SDK-85とかTK-80の時代だったので、BASICなんて「ASR-33」といったテレタイプ端末がないと使えなかったからだ。 就職してからは、ロジック回路などをやりながらFORTRAN、BASIC、C言語あたりを使っていた。COBOLの経験もあ

    第7回 オブジェクト指向は「正しい」のか?──科学技術としての考察 | gihyo.jp
  • デザインパターンとOpen-Closed Principle

    1999/06/11 石井 勝 概要 この記事では,まずOpen-Closed Principleの意味と解説を行い,その後デザインパターンをOpen-Closed Principleの観点から眺めます.デザインパターンのうちの多くはOpen-Closed Principleを満たすために用意されたものとみなすことができます.Open-Closed Principleを理解し,数あるデザインパターンの中から,どういう場合にどのパターンを使うのが一番効果的なのかを考えます. 目次 はじめに ソフトウェアと連続性 仮想仕事の原理 修正と追加 Open-Closed Principle Open-Closed Principleの例 Open-Closed Principleの反例 オブジェクト指向とOpen-Closed Principle デザインパターンとOpen-

  • 自己流オブジェクト指向&Java参考書 『非』お勧め版 - カレーなる辛口Javaな加齢日記

    お奨めリスト*1と対をなす,非お勧め版の入門書・参考書リスト.*2 あくまで『非』お勧めの、駄、屑リストである点に注意。しかし皮肉な話だが,初心者を惑わす入門書を避けるためにも要チェックだろう. 主に「何故か有名だけど悪い」を取り上げる予定.「無名だけど悪い」はきりがないので,ここではパス.結果として持ってないが中心になるので詳細について触れるつもりはない.*3 「オブジェクト指向」 実は「オブジェクト指向」というのは,あまり専門的な用語ではない.*4オブジェクト指向プログラミング(OOP),オブジェクト指向設計(OOD),オブジェクト指向分析(OOA)などと,きちんと区別すべきだ.ただ口頭で話す時は「オブジェクト指向プログラミング」と言うのは冗長だしOOPと言っても理解してもらえない.しかたがないので省略して「オブジェクト指向」と言う時も少なくない. ここで挙げるのは「いわ

    自己流オブジェクト指向&Java参考書 『非』お勧め版 - カレーなる辛口Javaな加齢日記
    itengineer
    itengineer 2008/04/13
    「非お勧め」っていうのは面白いアプローチ
  • 指向性メモ クロージャとOOPとJavaScriptの謎仕様

    ページ情報 制作日 2005-07-24T03:14:49+09:00 最終更新日 2005-10-28T11:35:21+09:00 ページ内目次 Navigation Comments Trackbacks Post a comment JavaScriptはクロージャでガリガリ書いていく言語だという説もあるが、OOP原理主義としてはプロトタイプベースでもいいからOOPで書きたいのである。というか、クロージャは中途半端で気持ち悪い。 さて、事の発端は『JavaScript とクロージャ』という記事である。この記事によると、なにやらイベントにクロージャを渡すと幸せになれるという事らしい。ふむふむ、たしかにシンプルでいい感じである。 ……が、しかしだ。オブジェクト指向なアレに対して、クロージャには決定的な弱点が有るはずなのだ。そう、メソッド(クロージャ)間での(メンバ)変数の共有である。

  • ハタさんのブログ(復刻版) : 私は如何にしてJavascriptのprototypeを身につけたか。

    javascriptのprototypeはなかなか理解してもらえないですねぇ。 ここ1年間でマジマジと実感しました。 特に、大規模開発をしているとこだと、いろんな知識が入り乱れていて(ホームページ時代からAjaxを読んだ人とか)が、javascriptが単なる関数型列挙な言語(語弊があるけど)という見方が大多数を占めているように見えます。 そんな中で "String.prototype.trim" みたいなコードを見せても、説明下手なのか中々上手く伝わらないですねぇ。 ということで(?)、僕がjavascriptのprototypeを身に着けるまでやったこと、とか。これも備忘 prototype.jsのソースコードを眺める Array.mapとかEnumerable, Hashは勉強になりますねー。 ただ、prototype継承されすぎて、ちょっと多すぎなこともあります。 var

  • 1