タグ

プログラミングとオブジェクト指向に関するsakenのブックマーク (12)

  • Mixin - Wikipedia

    mixin とはオブジェクト指向プログラミング言語において、サブクラスによって継承されることにより機能を提供し、単体で動作することを意図しないクラスである。言語によっては、その言語でクラスや継承と呼ぶものとは別のシステムとして mixin がある場合もある(#バリエーションの節で詳述)。 オブジェクト指向プログラミングにおいて、継承は来は特化を意図したものである。すなわち、継承する側(派生型)と継承される側(基底型)の間にはリスコフの置換原則があることを前提とする。 しかし実際のところは、実装の再利用のための手段として使われることが多い(濫用されがちであるが)。mixin における継承も、前述のような特化のためではなく、複数の機能を集めるための手段である。特にクラスの多重継承が可能なシステムでは、複数の mixin クラスを多重継承し、「単に複数の機能を持つクラス」を簡単に作る、というよ

  • オブジェクト指向やデザインパターンはどんどんやるべき - 業務エンジニアの攻撃は最大の防御ブログ

    「オブジェクト指向にこだわった設計をしたい」「デザインパターンを使って良い設計にしたい」という人がいればドンドンやればいいと思います。 少なくとも個々の開発者の成長のためにはドンドンやらせるべきだと思います。 不真面目な考えかもしれませんが、そう思います。 色んな人が「オブジェクト指向やデザインパターンを中途半端な知識で使うな」という趣旨の事を仰っています 正論です。パターンや設計手法は「考え方の見」であり、それらを考えなしに使うというのは末転倒です 中途半端な知識でオブジェクト指向やデザインパターンをやろうとしたせいで処理が追いにくいだけのゴミの集まりになる事は数多くあります。 そのために、無駄に保守コストがかかったり、自分自身でそういうソースを書いてしまって後悔したりといった例も枚挙に暇がありません。 そういった経験から、デキる人達は警鐘を鳴らしておられるのだと思います けれど私は

    オブジェクト指向やデザインパターンはどんどんやるべき - 業務エンジニアの攻撃は最大の防御ブログ
  • 猫型プログラミング言語史観(1) 〜あるいはオブジェクト指向における設計指針のひとつ〜 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    TL;DR 手続き型プログラミングでは手続きを抽象化することで保守性を挙げることに成功したが、データを守ることには失敗してしまった。そこでオブジェクト指向はデータと手続きをひとかたまりにすることでデータを外から守るというコンセプトを打ち出した。 ここから、「手続き型プログラミングで書いてるのに手続きが十分に抽象化されていないのはヤバいね」とか「オブジェクト指向で書いてるのにひとかたまりじゃない雑多なデータに関心をもっちゃってるのはヤバいね」などの設計指針を導くことができるのである。そして純粋関数型言語の場合は……という話です。 はじめに プログラミング言語にはいろいろなパラダイムがあるが、その中で手続き型プログラミング、オブジェクト指向、純粋関数型言語について、わたしなりのひとつの史観を示すのがこの稿の目的である。となんかかっこつけて言ってみたんだけど、要するに、それぞれのパラダイムがどん

    猫型プログラミング言語史観(1) 〜あるいはオブジェクト指向における設計指針のひとつ〜 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • オブジェクト指向プログラミング再入門

    論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...

    オブジェクト指向プログラミング再入門
  • 重要なのはオブジェクト指向じゃないと思うんだよ - Line 1: Error: Invalid Blog('by Esehara' )

    最近になって、オブジェクト指向がよくわからないという御仁とご一緒することになった。別段、それ自体が悪いことではない。確かに、その人の書いた、以前のコードというのはめちゃくちゃであった。当然のことながらif文は何十にも繰り返されているし、その中でネストが3つにも4つにも増えていくという恐るべきコードだ。そして、どうやら僕の前に、教えてくれた人がいるらしく、その人に「オブジェクト指向というのを教えてもらったから、もう少し上手く書けるようにになっている筈だ」ということを言っていた。 僕はそのことに、特段ケチをつけたいとは思わない。誰だって無知から始まる。僕もオブジェクト指向にとんちんかんなことを言って恥をかくことがある(もしかしたらこれからもね!)。無知が恥なのではなく、学ばない姿勢が恥なわけだから、僕はそういうのはいいなあ、と素直に思える。しかし、どうも僕は引っ掛かっていることがある。それをメ

    重要なのはオブジェクト指向じゃないと思うんだよ - Line 1: Error: Invalid Blog('by Esehara' )
  • 私が愛するオブジェクト指向とそれを使わない理由 - takuto_hの日記

    この記事では、私がオブジェクト指向のどこを愛しどこを素晴らしいと感じていて、そのうえでなぜオブジェクト指向を使うことを避けているのかを書き留めておきます。関数型言語使いの方で、「オブジェクト指向の何がいいのかわからない」「オブジェクト指向難しすぎ・複雑すぎ」とおっしゃる方にぜひ読んでいただきたいと思っています。また、「オブジェクト指向言語完璧に理解したわ」と思っている方にも読んでいただきたく思います。 なお、ここでのオブジェクト指向の定義は、「各言語でオブジェクト指向と呼ばれているものすべて」とします。JavaScalaJavaScriptやSmalltalkやRubyやCommon LispやOCamlがオブジェクト指向と呼んでいるものすべての総称です。もっとまともな定義が知りたい方は以下の記事がおすすめです。 オブジェクト指向の概念の発明者は誰ですか?(改訂版) - Smallta

    私が愛するオブジェクト指向とそれを使わない理由 - takuto_hの日記
  • Ruby脳が理解するJavaScriptのオブジェクト指向

    (追記:2012-12-15) 記事およびこれに続くその2,その3をまとめて電子書籍化しました。「Gumroad」を通して100円にて販売しています。内容についての追加・変更はありませんが、誤記の修正およびメディア向けの調整を行っています。 電子書籍Ruby脳が理解するJavaScriptのオブジェクト指向」EPUB版 このリンクはGumroadにおける商品購入リンクになっています。クリックすると、オーバーレイ・ウインドウが立ち上がって、この場でクレジットカード決済による購入が可能です。購入にはクレジット情報およびメールアドレスの入力が必要になります。購入すると、入力したメールアドレスにコンテンツのDLリンクが送られてきます。 購入ご検討のほどよろしくお願いしますm(__)m 関連記事: 電子書籍Ruby脳が理解するJavaScriptのオブジェクト指向」EPUB版をGumroadか

  • オブジェクト指向プログラムでgetter/setterメソッドを使わなければならない10の理由

    オブジェクト指向プログラムで getter/setterメソッドを使わなければならない 10の理由 福盛 秀雄 fukumori at m.ieice.org JavaC++などのオブジェクト指向言語でプログラムを書いているときに、単純なメンバ変数を参照したり操作するために anObject.getX() [以後これをgetterメソッドと呼ぶ] とか anotherObject.setY(y) [以後これをsetterメソッドと呼ぶ] と書くのはなぜだろうと思ったことはないだろうか? int型の変数ひとつを操作するのになぜわざわざメソッドを定義するのだろう? 単純に代入を使えばいいじゃないか? この文章はそんなあなた(かつての僕も含む)が、getter/setterメソッドを使うべきである理由についてまとめたものである。 ということで早速論へ。 1. クラス内部のデータ表現を変えた場

  • オブジェクト指向できていますか?

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

    オブジェクト指向できていますか?
  • オブジェクト指向言語が与えた開発手法への変化(補足) - Programmer’s Log

    前記事で「数学的に美しいコード」と書いたら 「数学的に美しいコードなんてみたことねー」とか 「数字表現(マシン語)から離れた時点で文学性は出てきたよね」とか 「オブジェクト指向以前の世界で、答えが常に1つだったんなら、みんなこんなに苦労してないと思うんだけど」 という至極まっとうな意見を頂きました。 「確かにw」と思ったので、この記事は補足(言い訳)を書きます。その為オブジェクト指向を結構わかっている人向けの記事になっています。まあ、前記事はノリといきおいで書いたトンデモ文章だったりするんでそこらへんは割り引いていただけると幸いです。あとで書きなおすかもw あの文章は「オブジェクト指向には文学的と数学的という二種類の側面がある」という二方向の観点を示すことで、その後の説明に入りやすくするために書いた文章です。その後の説明とは「メソッド」というものが持つ関数的性質を数学的、多態性(ポリモーフ

    オブジェクト指向言語が与えた開発手法への変化(補足) - Programmer’s Log
  • 第1回 オブジェクト指向プログラミング

    最近、新聞やテレビで注目を集めているプログラミング言語に、米MITメディアラボが開発した子供用ビジュアルプログラミング環境「Scratch」がある。 Scratchの登録ユーザー数は90万人(ダウンロードだけなら登録不要なので実際はもっと多い)、アップロードされた作品数は208万に達している(2011年10月現在)。TIOBEの人気プログラミング言語ランキングでは35位と、トップ50にランクインしている(2011年10月)。ちなみに1位、2位、3位は、Java、C、C++の順である。Scratchと同じく最近注目を集めているScala(関連記事)は50位だ。Scratchが子供用のプログラミング言語であることを考えると、並み居る大人用言語の中で健闘していると言えるだろう。 子供用プログラミング言語だけど侮れない 現代の子供たちは学校や塾などの習い事で結構忙しいうえ、身の回りにはゲームやア

    第1回 オブジェクト指向プログラミング
  • オブジェクト指向

    オブジェクト指向プログラミングとは、オブジェクト(もの)を中心に考えていくプログラミング手法のことで、数年前から特に注目を集めているものの、実際にはもっと古くからある手法です。 巷にあるの解説には、「もの」ということを取り上げて、解説していますがが、それではオブジェクト指向が何を意味しているのかわかりづらいものです。 オブジェクト指向に対するプログラミング手法には、手続き型プログラミングがあり、それと対比をするとわかりやすくなります。 以下の説明はまだ洗練されていないので、時々内容がアップデートするかもしれませんがご了承ください。 オブジェクト指向と手続き指向の違い オブジェクト指向:Java, C++, Smalltalkなど 手続き型:Basic, C, COBOL, アセンブラなど プログラミングとは、コンピューターに対する一連の命令を作成することです。 例えば、画面に文字を表示す

  • 1