タグ

ooに関するmas-higaのブックマーク (25)

  • オブジェクト指向は継承で多態するプログラミング - きしだのHatena

    オブジェクト指向って継承による多態があるからこそなんだけど、継承が非推奨になって以降に雰囲気でオブジェクト指向を知った人には、継承はオプションでカプセル化だけでオブジェクト指向って言ってしまいがちに思います。 実際はカプセル化はオブジェクト指向固有じゃなくて、クラスでカプセル化を実現してるだけです。 さまざまな人のオブジェクト指向の定義 来ならどのように継承こそがオブジェクト指向なのかという説明をするんですが、かなり長くなりそうなので、とりあえずはいろいろな人たちのオブジェクト指向の定義を抜き出してみます。 「ここに挙がってるのはオブジェクト指向の一派にすぎない」というような意見もありますが他の派閥についてまとまって定義され共通認識になっているようなものは見当たらないので、プログラミングの指針には なりづらいと思います。 ストラウストラップ C++を産んだストラウストラップは「C++の設

    オブジェクト指向は継承で多態するプログラミング - きしだのHatena
    mas-higa
    mas-higa 2022/08/26
    多態が目的であって継承は手段でしょ。カプセル化の定義にもよるけど、状態と振舞いがまとまってるのがオブジェクト(指向)だと思ってる。
  • 2021年の「オブジェクト指向」を考える

    きしださんが先日もたのしいお題を投下されていました。 出遅れましたがこのネタについて少し掘り下げてみます。 念のため個人的なスタンスをあらかじめ表明しておくと、オブジェクト指向に対してはそれなりに好意的ですが、別に時代の最先端だとかソフトウェア開発に必須の知識というほどではない(でも知っておくと便利というか、知らないと不便なこともあるかもしれないのでわざわざ避けるのはおすすめしない)というくらい温度感です。 オブジェクト指向 is 何 そもそも「オブジェクト指向」という言葉自体、座りの悪い言葉です。 意味が明確なのは「オブジェクト指向プログラミング(OOP)」、「オブジェクト指向プログラミング言語(OOPL)」、「オブジェクト指向設計(OOD)」「オブジェクト指向分析(OOA)」といった「オブジェクト指向なんとか」の方で、それらをふわっとまとめた(ような気がする)単語が「オブジェクト指向」

    2021年の「オブジェクト指向」を考える
    mas-higa
    mas-higa 2021/10/11
    s/あなたち/あながち/ ? ; 自分のオブジェクト指向○○は世間とはズレてる自覚ある。
  • オブジェクト指向システム分析設計入門 青木淳

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

    mas-higa
    mas-higa 2021/04/12
    メッセージパッシングのオブジェクト指向かな?
  • Object-Oriented Conferenceに参加した - hitode909の日記

    普段参加する勉強会では、幅広いテーマのなかに、たまにドメイン駆動設計について話してる人がいたら見に行ったりしていた。 Object-Oriented Conferenceはオブジェクト指向の勉強会で、5並行のセッションが丸一日あるという気前の良い勉強会だった。 普段聞かないような話題を多く聞くことができたのがよかった。機能要求由来の関心事と非機能要求由来の関心事は分けて扱うべし、という話で、全社は会計ドメインとかそういうものになるけど、後者はフレームワークを使うと言った形として現れる、ということ(だと理解した)で、そういうふうに区別したことは言われてみるとなかったのでなるほどとなったり、聞いたこと無いワードがどんどん出てきたので、出たワードをメモしたりしていた。読んでないけどとりあえず控えておこう、というときに「読んでない」というタグをつければあとで読むこともできるし読まなくてもいい、とい

    Object-Oriented Conferenceに参加した - hitode909の日記
    mas-higa
    mas-higa 2020/06/09
    "継承の話を全然聞かなかった" コード書いてて継承がキレイにキマった経験はそんなにない。使える所が限られてる。継承は 30年くらい前に流行ってたので今さら話すことないほど語り尽されてる可能性。
  • オブジェクト指向を5000%理解できたら、次に5000兆%理解できように実社会の例でオブジェクト指向を考えてみる。

    オブジェクト指向を5000%理解できたら、次に5000兆%理解できように実社会の例でオブジェクト指向を考えてみる。オブジェクト指向 こんにちは。shamojiです。 オブジェクト指向入門について、様々な記事で扱われている昨今ですが、どれもこれも一部分しか切り取って教えていないものばかりで、結局全体として分かりにくい入門になっているかと思います。 私もUnity+C#で開発する中でようやく質と思えることが分かったので、 コードなどは一切書かずに概念だけ共有しておきます。 オブジェクト指向は何を目的としている? 質 オブジェクト指向が一番目指したい部分は何かというと、 「責任の所在がどこにあるのかはっきりさせる」 というただこの一点のみだと私は考えています。 会社の例で考えてみる 会社の例を一つ考えてみましょう。 ある事業部に部長と次長、そして平社員がいました。 部長は、新しい予算で新しい

    オブジェクト指向を5000%理解できたら、次に5000兆%理解できように実社会の例でオブジェクト指向を考えてみる。
    mas-higa
    mas-higa 2018/09/28
    オレは % というものが理解できていないようだ
  • 「オブジェクト指向言語解体新書」が神ってた話 - りんごとバナナとエンジニア

    10月に行われた技術書典3、行きましたか? 私も当日いろいろを買ったのですが、その中の一冊「オブジェクト指向言語解体新書」が、今年読んだの中で一二を争うレベルですばらしい内容だったので、感想を書き残しておきます。 ※技術書典から1ヶ月以上経っているのは、単に積ん読してたからです。こんなにいいだとは思わなかったもので... http://shop.comiczin.jp/products/detail.php?product_id=34612 オブジェクト指向は、初心者でつまづかない人はほぼいない、一種の鬼門なわけですが、 入門書では何かしらの比喩を使って説明しているものが多いです。 例えば「哺乳類を継承した犬とがいて、両方とも「鳴く」「歩く」などができる」みたいな。 こういう比喩を使う理由もわかります。全くの初心者が相手の場合、「なんとなくわかる」レベルでもいいのでとりあえずコード

    「オブジェクト指向言語解体新書」が神ってた話 - りんごとバナナとエンジニア
    mas-higa
    mas-higa 2017/12/21
    "オブジェクト指向として本当に重要な性質は『多態』です" なるほど、良さそう。
  • 『オブジェクト指向プログラミングとは? : スティーブ・ジョブズの答え | Yakst』へのコメント

    ブックマークしました ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください Twitterで共有

    『オブジェクト指向プログラミングとは? : スティーブ・ジョブズの答え | Yakst』へのコメント
    mas-higa
    mas-higa 2017/11/15
    継承の説明をしていないのがいい。あれはオブジェクト指向に必須じゃないんだよ。単なる実装の手段。
  • オブジェクト指向プログラミングとは? : スティーブ・ジョブズの答え | Yakst

    スティーブ・ジョブズによる、オブジェクト指向プログラミングとは何かという非常に平易な言葉でのわかりやすい説明。 オブジェクト指向プログラミングに関するいい説明にはなかなか出会えていませんでした。正式なエンジニアリングの教育を受けたわけではないけれど、いつも技術やデザイン、芸術といったやることすべてに明確なアイディアを持って説明する、ある人の言うことを聞くまでは。 ここに挙げるのは1994年の「ローリングストーン」のインタビューの引用で、スティーブ・ジョブスがオブジェクト指向プログラミングとは何かを説明しているものです。 Jeff Goodell : そもそもオブジェクト指向ソフトウェアとは何か、簡単な用語で説明していただけますか? Steve Jobs : オブジェクトとは人間のようなものだ。生きていて、何をどうすべきかという知識を自分の中に取り込み、物事を覚えていられるようにメモリーを持

    mas-higa
    mas-higa 2017/11/15
    自分で洗濯機を操作しないとこを見るとジョブズは洗濯の具体的なやり方を知らないらしい。
  • JavaScriptで継承を使わないプログラミングスタイル - JavaScript勉強会

    JavaScriptでは「継承による差分プログラミング」はモダンではない、という意見がありました。 なるほど、「継承による差分プログラミング」を使わないスタイルもあるんですね?(参考になります) JavaScriptのオブジェクト指向プログラミング OOPのアンチパターン SOLID原則 オブジェクト指向の基機能 データ構造としてのオブジェクト デメリット メリット PACアーキテクチャー マイクロサービス指向アーキテクチャー JavaScriptのオブジェクト指向プログラミング jsstudy.hatenablog.com オブジェクト指向って便利なの? - JavaScript勉強会 うへええええ継承による差分プログラミングとか現代に言わないでくれよ。しかも「JSはプロトタイプベースのOOP」を初めとして間違いが多いぞ 2017/03/27 09:42 b.hatena.ne.jp

    JavaScriptで継承を使わないプログラミングスタイル - JavaScript勉強会
  • Scalaのnull/Nothing/Nil/Noneはやりすぎなのか? - ぐるぐる~

    Twitterしてたら目に入ったので軽く。 Javaにおけるnull。これまでとこれから この後のスライドで、 Scalaにおける「何もないもの」の分類はやり過ぎ感はある と言われているんですが、ある程度は誤解に基づく意見だよなぁこれは、ということを言っておこうかなと。 Scalaについて 日では説明が不要なくらいScalaって有名になってると思うんですが一応。 ScalaはJVMの上で動作する、(クラス指向の)オブジェクト指向プログラミングと関数型プログラミングを融合させた言語です。 そして、Scalaのコア機能はどちらかというとオブジェクト指向プログラミング寄りです。 オブジェクト指向プログラミングをベースに、関数型の色々なものを実現している感じです*1。 オブジェクト指向プログラミング的な機能として真っ先に思いつくのは何でしょうか? 割と上位の方に、「継承」とか「型階層」とか来るん

    Scalaのnull/Nothing/Nil/Noneはやりすぎなのか? - ぐるぐる~
    mas-higa
    mas-higa 2015/04/16
    "オブジェクト指向プログラミング的な機能として真っ先に思いつくのは…「継承」とか「型階層」とか" いや polymorphism でしょ
  • オブジェクト指向入門読み終わった - はこべにっき ♨

    ちまちま読んでたオブジェクト指向入門を読み終わった。だいたい入門と言っているが、原題は"Object-Oriented Software Construction"で入門感はないし、上下巻あわせて2000ページくらいあって読みきるのが大変だった。 原著は18年前に発売されただが、内容のほとんどは今でも有益で、全体を通してためになる。オブジェクト指向が解決しようとしている課題や、背景にある理論や考え方について解説してくれるだけではなく、実際にソフトウェアを設計する際にどのようにクラスを見つけ、どんな場面で継承を使い、ソフトウェア全体をどのように形作っていくのかという実践的な議論も充実している。 の序盤では、ソフトウェアの品質の様々な側面についての解説や、オブジェクト指向以前から使われていたモジュールや型の概念のがもつ諸課題について詳しく解説してくれる。それらの問題をふまえ、次に、ソフトウ

    オブジェクト指向入門読み終わった - はこべにっき ♨
    mas-higa
    mas-higa 2015/03/27
    なんの言語か気になる。持ってるけど読んでない本。
  • ■ - hitode909の日記

    オブジェクト指向な言語で書いてて、何か問題があると、じゃあ継承すると解決するのでは、となるけど、変な書き方をしてると、継承できないことがあって難しい。 たとえば、そのクラスの主要な機能がクロージャで書かれてる、とかあると、通常の継承とはスコープが違う構造になると思う。 DSL書いてるときなどは、拡張性については、あまり考えてない、ということがある気がする。 最初から普通に書きたい。

    ■ - hitode909の日記
    mas-higa
    mas-higa 2015/03/20
    なんでもかんでも継承されると拡張できなくなったりもするけどね
  • (あなたの周りでも見かけるかもしれない)インスタンス変数の間違った使い方 - Qiita

    (2021-8-28追記) この記事の改訂版を書いてみました。改訂版の方が易しい内容になっているので、プログラミング初心者の方はこちらを参考にしてみてください。 はじめに:「引数があるよりは、ない方が良い」? 先日、同僚の西見さん(@mah_lab)がこんな技術ブログを書いていました。 インスタンスメソッドとクラスメソッドはどのようにして使い分けるべきか?(Rubyの場合) 同じ内容を僕だったらどういうふうに書くかな~?と思って、ちょっと書き始めてみたんですが、わかりやすく実践的な説明をするのは意外と難しく、内容も西見さんのブログとほぼ同じになりそうだったので、途中で断念しました。 というわけで、インスタンスメソッドとクラスメソッドの使い分けが未だにあやふやだという方は、ぜひ西見さんのブログを読んでみてください! ・・・なんですが、1点だけ気になる点がありました。 それはインスタンスメソッ

    (あなたの周りでも見かけるかもしれない)インスタンス変数の間違った使い方 - Qiita
    mas-higa
    mas-higa 2014/12/04
    (あなたの周りでも見かけるかもしれない)めっちゃ見かける。いつもげんなりしてる。
  • 「オブジェクト指向でなぜつくるのか」を読んだ - ✘╹◡╹✘

    オブジェクト指向でなぜつくるのか 第2版 作者: 平澤章出版社/メーカー: 日経BP社発売日: 2014/03/05メディア: Kindle版この商品を含むブログ (2件) を見る TL;DR 多くの人の「このを読むべきかどうか」という関心事に先に回答しておくと、「万人が読んでおいて損は無いとまでは言い切れないけれど、オブジェクト指向に興味があって元気もあるという奇特な人間は読んでも良い」です。 オブジェクト指向とは何か 平澤 章さんが書いた「オブジェクト指向でなぜつくるのか」というを読みました。オブジェクト指向を「難しいソフトウェア開発を楽に行うための総合技術」と表現しながら、「オブジェクト指向とは何か」という問いに対して現実的な解を与えようという一貫した姿勢に親しみを覚えました。 保守や再利用を目的とした技術 目的という側面では「オブジェクト指向はソフトウェアの保守や再利用をしやす

    「オブジェクト指向でなぜつくるのか」を読んだ - ✘╹◡╹✘
    mas-higa
    mas-higa 2014/10/09
    "オブジェクト指向は現実世界をそのままソフトウェアに表現する" そんなこと思ってる人いるのかな?
  • 徒然なるままに|Rubyの継承についてのはなし(インスタンス変数,クラス変数,クラスインスタンス変数,インスタンスメソッド,クラスメソッド,定数)

    Rubyにおける継承はJavaにおける継承と異なる細かな点がいくつもあったのでまとめる必要があった。 この記事はO'ReillyのRubyを参考にしている。 まず、基型。 「Point」をスーパークラスとするサブクラス「Point3D」を宣言する方法は以下の通り。 #super class class Point #ここはPointクラスの実装(implementation) #メソッド(インスタンスメソッド・クラスメソッド), #変数(インスタンス変数・クラス変数・クラスインスタンス変数), #定数 #などが入る end class Point3D < Point #ここはPoint3Dクラスの実装(implementation) end これからPointで宣言された以下の六つの要素がどのように、Point3Dに継承されるのか(あるいは継承されないのか)を一つずつ見ていく。 1、イ

    mas-higa
    mas-higa 2014/08/12
    Rubyist はあんまり継承使わないからなぁ
  • オブジェクト指向は禁止するべき - きしだのHatena

    プログラムがまだ不慣れな人が「プログラムちょっとわかるようになったけど、まだぜんぜんオブジェクト指向とかできてません」のように言ったり、ちょっと慣れた人が「このソース、ぜんぜんだめ。オブジェクト指向ができてない」にようなことを言ったり、まるで、オブジェクト指向ができてるかどうかがよいプログラムかどうかを表すことになってるようだ。 Javaのアルゴリズムのに、「Javaなのにオブジェクト指向ができていない」のような書評がついているのを見たときには、お前は何を求めてるんだと思ったりもした。 そのようなオブジェクト指向は、窓から投げ捨てるべきだ。オブジェクト指向はプログラムのよしあしの基準にならない。 むだにHogeインタフェースとHogeImplクラスがあったり、むだにnewするだけのcreateメソッドがあったり、どこで値が設定されてるかわからないオブジェクトがひきまわされてたり、ソースコ

    オブジェクト指向は禁止するべき - きしだのHatena
    mas-higa
    mas-higa 2014/07/22
    Java の人達は大変らしい
  • https://qiita.com/kenokabe/items/13ea8d2da6adce1b3b9a

    mas-higa
    mas-higa 2014/07/15
    "そこからさらに操作できるように多様性を完備するクラス群の設計などという発想とは程遠いはず" それで某言語には void なメソッドが多いのか! あれメチャ不便。
  • 私が愛するオブジェクト指向とそれを使わない理由 - takuto_hの日記

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

    私が愛するオブジェクト指向とそれを使わない理由 - takuto_hの日記
    mas-higa
    mas-higa 2013/06/14
    "生粋のオブジェクト指向好きです" あー、変態ですね。
  • JavaScriptのオブジェクト指向は、逆の順番で学んだほうが理解しやすいと思うので…

    事の発端というか、きっかけは、id:perlcodesampleさんとid:gfxさんの下のポストを見て、 JavaScriptで一番簡単にオブジェクト指向プログラミングを行う方法 (id:perlcodesampleさん) JavaScriptにおけるオブジェクトの定義 (id:gfxさん) newとかprototypeを使うのが推奨されてないとか、直接代入するほうが楽とかじゃなくて、挙動が違うんだよなぁ、と思ったこと。 挙動が違うんだから、もちろん使いどころも違うんですよね。 でも実際、JavaScriptのオブジェクト指向は混乱しやすいと思います。 自分もご多分にもれず、さんざん混乱させられたクチですしね。 わかってしまえば、どってことなくて、とってもシンプルなんですけどね。 せっかくなので、今だからこそ言える、自分だったらこうやって教えて欲しかったなぁ、っていう説明をしてみようかと

    mas-higa
    mas-higa 2013/02/01
    途中まで mam を man に空目してて、違和感あるなぁ…とか思ってて、すみません。
  • Ruby脳が理解するJavaScriptのオブジェクト指向

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