タグ

OOPに関するislejpのブックマーク (13)

  • すべてのソースコードが手元にあるのに不要な抽象化を行うのはよくない

    「よい」とされているプログラミング手法のひとつに差分プログラミングがある。クラスを継承して親クラスとの差分だけのコードを書けば、親ですでに実装されている機能はそのまま使えて、かつカスタマイズもできるというやつだ。 たとえばGUIのボタンをカスタマイズしてマウスオーバーするとなにかちょっと特殊なことを行うボタンを作りたいとしたら、ボタンクラスを継承して、マウスオーバーのイベントハンドラをちょいちょいとカスタマイズしてやればよい。差分プログラミングは大変素直でよいプログラミング手法のような感じがする。 よいのはよいと思う。 しかしこういういい例だけをみてそれをどこでも真似しようと思ってしまうと、不必要な抽象化を積み重ねる困ったプログラマになってしまう(そういう人は結構たくさんいる)。自分でプログラムを書く場合には、よくできたクラスライブラリやフレームワークをお手にして抽象化を行うのは、ほとん

    islejp
    islejp 2014/12/29
    すでに書かれているけど差分プログラミングのための継承はあまり推奨されない。それはさておき、手元にソースがあっても修正や拡張時の影響範囲は局所化できるように作っておいた方が良い。
  • そのオブジェクト指向入門は間違っている(大げさ) - Webアプリエンジニア養成読本 AdventCalendar2014 25日目最終日! - uzullaがブログ

    はい、Webアプリエンジニア養成読 AdventCalendar2014です。突然トリをやる事になってしまったので、どうしたもんかとおもいます…。 「最終日だぞ…ちゃんとかかないといけない…しかしネタはない…そうだリンク集を作ろう!」とか思ったんですが、そもそもアドベントカレンダーってリンク集だよねって気付いて愕然としているクリスマスの夜です。現在朝の4時、これを書き終えて寝たい。 さて…何を話そう ここまでWebアプリエンジニア養成読アドベントカレンダーということで続けてきました。そして今日は25日、ついに最終日です! Webアプリエンジニア養成読 Advent Calendar 2014 - Qiita Webアプリエンジニア養成読[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus) 作者:和田 裕介,石田 絢一 (uz

    そのオブジェクト指向入門は間違っている(大げさ) - Webアプリエンジニア養成読本 AdventCalendar2014 25日目最終日! - uzullaがブログ
    islejp
    islejp 2014/12/25
    プリミティブなメモリ操作→変数の概念→配列→構造体などのユーザー定義型ときて、データ構造を隠蔽し責務として抽象化したものがオブジェクトという理解。結合を疎にして再利用性・保守性を高めたことがOOPの利点。
  • 今さらながらデザインパターンを語る : 落語・将棋・サイクリング時々Lispにわかに電子工作とプラモデル。PC98のレトロゲーム。オブジェクト指向黎明期も語るブログ

    2013年07月15日00:55 カテゴリオブジェクト指向 今さらながらデザインパターンを語る デザインパターンはもはや最前線の話ではない。でも僕がこの業界に入った頃は一世を風靡していたものだ。MVC構造を広めたという意味では一役買ったが、その過程でさまざまな弊害をもたらした。こどもはかなづちを持つと何でも叩きたがる、ということわざがあるがまさにあの頃そんな連中が多かった。大学を出たばかりでものの分かっていない僕もそうだった。そして、この道何十年の人でもそういう人は結構いた。目的のために手段を選ばないのは立派なことだが、手段のために目的を選ばないのは単なるオタクなのだ。そしてそれを誇らしげに語るから始末が悪い。オブジェクト指向コンサルと言われる連中がエンドユーザーにまで「なんとかパターンを使って設計します」がと話すような世界になっていて客からしたらそんなこといわれても知らんのだが、彼らは得

    今さらながらデザインパターンを語る : 落語・将棋・サイクリング時々Lispにわかに電子工作とプラモデル。PC98のレトロゲーム。オブジェクト指向黎明期も語るブログ
  • 高慢と偏見(1)隣は何をする人ぞ:Press Enter■:エンジニアライフ

    ふつーのプログラマです。主に企業内Webシステムの要件定義から保守まで何でもやってる、ふつーのプログラマです。 高学歴で長い経験に自信を持つエンジニアは他人の話を聞かなくなる、というのは広く世に知られた真理の1つである。 K自動車ICTシステム部の三浦技術担当マネージャは、そのようなエンジニアの生き見のような人だった。初めに言葉ありき。私が聞いた三浦マネージャーの最初の言葉はこうだ。 「オブジェクト指向など、実業務では使いものにならない!」 私の名前は川嶋ミナコ。横浜市内の某所にオフィスを構えるシステム開発会社――いわゆるベンチャー企業というやつ――に勤務しているエンジニアだ。社員数は20人前後。最近は受託開発の案件はほとんどなく、大手ベンダやエンドユーザーのシステム部門に常駐して開発を行うことが多い。 K自動車への常駐もその1つだった。部品調達システムの大規模なリニューアル中で、あちこ

    高慢と偏見(1)隣は何をする人ぞ:Press Enter■:エンジニアライフ
  • オブジェクト指向 v.s. 関数型プログラミング

    近年、関数型プログラミングの重要性はいろんなところで叫ばれています。 Javaの最新バージョンに関数型プログラミングに関する新機能が加わりました。 Rubyも昨今、関数型プログラミングへのサポートが手厚くなってきています。 プログラミングの教科書の大手、オライリー社から、Javascriptで関数型プログラミングを行うための解説書が発行されました。 関数型プログラミングへの注目度は高まってきています。 おそらく、みなさんは既にオブジェクト指向が何か、を知っています。 でも関数型プログラミングとは何か、胸を張って語れる人は、周りに見当たらないかと思います。 実際、オブジェクト指向によってプログラミングする方法は、わかりやすい解説があちこちにある一方で、 関数型プログラミングとは何か、何が良いのか、ということについての、よいまとめは見つけることはできませんでした。 この記事を読む方の中で、「関

    オブジェクト指向 v.s. 関数型プログラミング
  • オブジェクト指向できていますか?

    3. 自己紹介 1992年~1997年 某ゲーム会社 プログラマ SFC,GB,PS1,N64のゲーム開発経験 1998年~現在 日工学院八王子専門学校 @mozmoz1972 専任講師 プログラミング教育を中心に担当 twitterもfacebookも実名です。よかったらフォローしてください。

    オブジェクト指向できていますか?
  • Do subclasses inherit private fields?

  • オブジェクト指向再入門/オブジェクトに仕事をさせる、ということ

    関数に仕事をさせる、ということ あるまとまった処理があるとき、それを「関数」(サブルーチン)にするのは、 ド素人を除き、プログラマなら誰でも日常的にやっていることでしょう。 たとえばC言語では、「文字列を数値に変換する」という関数があります。 「文字列」と「数値」はCでは全く違う型であり、 「"123"」という文字列はそのままでは「123」という数値として 扱うことはできません。 「文字列を数値に変換する」は、自力でも書こうと思えば書けますが、 まともなプログラマならatoi()などのライブラリ関数を使うことでしょう ※1。 int a; char str[] ="123"; a = atoi(str); もし、ライブラリ関数にatoi()相当の関数がなかったとしたら、 きっと自分で同様の関数を作るはずです。 ライブラリ関数を使うにせよ自分で同等の関数を書くにせよ、 ある程度まとまった処理

  • 2011-09-25 - オブジェクト指向言語が生まれた必然性を考える(1) - プログラマ―ズログ

    さて、4月からこのBLOGを書いていますが、プログラマーズログと銘打っているのにこの記事が初めての技術系の記事ですw なぜ唐突に技術系の記事を書き始めたのかというと、ダジャレクラウドの使用技術が JAX-RS(RestEasy) Google App Engine/Java Slim3 Twitter4J jQuery という技術を使っているので、これら周辺の技術を身につけたいIT技術者も結構いるんじゃないかと考え、ダジャレクラウドの実装で得た知識をベースにした実践的な勉強会を開こうかと企画しているからです。 とりあえずは、技術者向けでなく自分でWebサービスを立ち上げたいが、フロントエンドはともかくとしてバックエンドがよくわからないWebデザイナーやイラストレータだけどWeb系の知識をつけたい人のようなグラフィック系のスキルを持った人を対象に基礎的な講座を開こうかと思っています。グラフィ

    2011-09-25 - オブジェクト指向言語が生まれた必然性を考える(1) - プログラマ―ズログ
  • 普通の構造化プログラマーがオブジェクト指向の存在意義を理解するコツ - 達人プログラマーを目指して

    オブジェクト指向言語の存在意義を理解するのは難しい? id:amapetasさんによる、ちょっと興味深い記事がありました。 オブジェクト指向言語が流行した必然性について考える(1) - Programmer’s Log そして、その記事の中で説明されているのですが、やはり、C言語など構造化言語のプログラマーにとってはオブジェクト指向の存在意義を理解するのがなかなか難しいところがあるようですね。 初心者向けの書籍を最近読んでいないので、最近の書籍ではうまく説明されているのかもしれませんが、そんな話を聞いたことがないので、たぶん今でもオブジェクト指向に関する説明の始まり方は 「世界は全部オブジェクトで出来ているんじゃぁぁーーー」 という「オブジェクト至高教への洗脳」から始まっているものと推察しますw テンション高めの説明から入るのでドン引きする人多数な感じがかなりアレですね。オブジェクト指向の

    普通の構造化プログラマーがオブジェクト指向の存在意義を理解するコツ - 達人プログラマーを目指して
  • “オブジェクト指向”の本質 - Smalltalkのtは小文字です

    「OO(OOP)とは何か?」については、ネタが割れてしまえばそんなに複雑なものではない…と個人的には最近、考えるようになってきています。 リスコフのユーザー定義型(aka、抽象データ型。データと手続きのセット)そのもの、あるいはその「ユーザー定義型」をクラスやそれに準ずる機能で実現しようとするOO(ストラウストラップ。aka、クラス指向。継承を使ったプログラミング)。もしくはそれらを一般化したOO(クック。aka、手続きによる抽象化)。 メッセージングにより動的性を実現しようとするOO(ケイ。aka メッセージ指向) 今回登場した、後者のメッセージングのOOのミニマリズムをおしすすめることによって派生的に生じたOO(アンガーとスミスからの 派生 変形。aka、プロトタイプベースOO。フレームとスロット、あとは委譲機構があれば十分…というミニマル化の結果、アンガーとスミスの頃には重要だった“

    “オブジェクト指向”の本質 - Smalltalkのtは小文字です
  • オブジェクト指向の概念の発明者は誰ですか? - Smalltalkのtは小文字です

    忙しい人のためのまとめ 一般に「オブジェクト指向プログラミング」と呼ばれる考え方には発案者が異なる二系統がある。(ただし簡単のため、次のうち前者から批判的に派生して生じたプロトタイプベースのオブジェクト指向はここには含めていない) アラン・ケイによる、変化に強い長期運用可能な遅延結合システムを SIMULA67 にあった「オブジェクト」をメッセージの受け手とすることで実現(オブジェクトにメッセージ送信)するアイデアに基づく「メッセージングのオブジェクト指向」と、 ビアルネ・ストラウストラップ(前後して抽象データ型を発案したリスコフ人、オブジェクトクラスを考えたニガードらSIMULA陣営、Eiffelのメイヤーらも同様の着想を得ている)による、ユーザー定義型(抽象データ型)を SIMULA67 にあった「クラス」という言語機能を使って実現(カプセル化、継承、多態性)するアイデアに基づく「抽

    オブジェクト指向の概念の発明者は誰ですか? - Smalltalkのtは小文字です
  • オブジェクト指向再入門/なぜわからなくなってしまうのか?

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

  • 1