タグ

オブジェクト指向に関するd4-1977のブックマーク (22)

  • オブジェクト指向のハードコア

    オブジェクト指向のハードコアは2019年5月25日にゼロベースサロンで行われたイベントです。「オブジェクト指向」というキーワードについて、プログラミング、デザイン、哲学などの分野を横断しつつ知的な議論ができました。記録映像は必見。 企画意図/招待状 この研究会の企画意図については、私が送った招待状を見ていただくのが早いでしょう: いくつか異なる分野で「オブジェクト指向」がキーワードとして注目されています。昨年からGUIデザインの分野では「オブジェクト指向ユーザーインターフェイス」(OOUI)の議論がホットです。ソフトウェア開発の分野では、数年前からオブジェクト指向の見直しとしての「ドメイン駆動設計」(DDD)が広まっています(※原著である英語版から日語への翻訳は数年遅れています)。さらには「オブジェクト指向存在論」(OOO)も思想業界でブームになっています。 これはもうオブジェクト指向の

    オブジェクト指向のハードコア
  • 設計要件をギッチギチに詰めたValueObjectで低凝集クラスを爆殺する - Qiita

    /// <summary>契約コントローラー</summary> public class ContractController { private ContractAmount _contractAmount; /// <summary>税込金額を計算する。</summary> /// <param name="amountExcludingTax">税別金額。</param> /// <param name="salesTaxRate">消費税率。</param> /// <returns>税込金額。</returns> public int CalculateAmountIncludingTax(int amountExcludingTax, decimal salesTaxRate) { return (int)(amountExcludingTax * (1.0m + sales

    設計要件をギッチギチに詰めたValueObjectで低凝集クラスを爆殺する - Qiita
  • オブジェクト指向プログラミングを学ぶための推薦図書 - ソフトウェア設計を考える

    オブジェクト指向プログラミングを学ぶ オブジェクト指向プログラミングという言葉は、広い意味で使われている。 オブジェクト指向プログラミングをキーワードにすべての情報をかき集めて理解するというアプローチは現実には無理。 目に付いた重要そうなところを見繕って集めてみても、たぶん混乱するだけ。 この記事では、オブジェクト指向プログラミングのいろいろなアプローチの中で、 クラスを使って独自の「型」を定義するプログラミングスタイル 関連するデータとロジックをまとめて、小さな入れ物に格納する「カプセル化」を重視するプログラミングスタイル を学ぶための参考図書を紹介したい。 型とカプセル化に重点を置く設計スタイルがわかってくると、それとは異なるスタイル、異なる力点を置くアプローチとの違いが具体的にわかるようになってくる。*1 *2 まずは、オブジェクト指向プログラミングの中で、型・クラス・カプセル化に力

    オブジェクト指向プログラミングを学ぶための推薦図書 - ソフトウェア設計を考える
    d4-1977
    d4-1977 2019/10/12
    最近の本が出てこないのは、出版業界の理由もあるとは思いつつ、書き手がいないという問題もあるのかなあ
  • よくわかるSOLID原則1: S(単一責任の原則)|erukiti

    ソフトウェアエンジニアが知っているべきSOLID原則についての記事です。SOLID原則は、5つの原則の頭文字を並べた言葉で、S・O・L・I・Dそれぞれの原則について、5回に分けて説明します。 1) Single Responsibility Principle:単一責任の原則 2) Open/closed principle:オープン/クロースドの原則 3) Liskov substitution principle:リスコフの置換原則 4) Interface segregation principle:インターフェース分離の原則 5) Dependency inversion principle:依存性逆転の原則 今回はSingle Responsibility Principle(単一責任の原則 / SRP)についてです。 なぜSOLID原則が必要なのか?初回なので、なぜソフトウェア

    よくわかるSOLID原則1: S(単一責任の原則)|erukiti
  • インスタンスメソッドとクラスメソッドはどのようにして使い分けるべきか?(Rubyの場合) | mah365

    Rubyといったオブジェクト指向言語を学ぶと、メソッドの定義方法としてインスタンスメソッドとクラスメソッドという2通りの定義方法があることを学ぶと思います。しかし、言語自体のガイドブックには「定義方法にインスタンスメソッドとクラスメソッドがある」と書いてあるだけで、大抵その使い分けについては書かれていません。 そういう訳で、このエントリではその使い分けについて少し考えてみたいと思います。理論的に厳密な使い分けを目指すというよりは、そもそも使い分けの検討が全くつかない!という方に向けて、その指針の一助となることを目指します。 インスタンスメソッドとクラスメソッドとはそもそものところ、Rubyといった「オブジェクト指向の考え方」を実装した言語の機能です。その機能がなぜあるのか?というそもそものところは、オブジェクト指向の考え方にさかのぼることになります。 そこで、インスタンスメソッドとクラスメ

    インスタンスメソッドとクラスメソッドはどのようにして使い分けるべきか?(Rubyの場合) | mah365
  • オブジェクト指向とは何ですか?

    回答 (7件中の1件目) 英語では「object-oriented」で「OO」と略され、1960~1980年代のプログラミング手法(OOP)から始まり、その応用としてソフトウエアの設計・分析の手法(OOD/OOA)、近年はユーザーインターフェース・エクスペリエンスのデザイン(OOUI/OOUX)、オブジェクト指向存在論(OOO)なる哲学分野にまで、広く使われる用語です。ここではOOPについて説明を試みます。 オブジェクト指向の「オブジェクト」は、1967年に発表されたSimula 67 [1] というプログラミング言語に組み込まれた当時としては新しい同名の言語機能(あるいはそれに準ずる...

    オブジェクト指向とは何ですか?
    d4-1977
    d4-1977 2019/05/02
    お腹いっぱいになる話(読みきれませんでした😇)
  • 「オブジェクトベースUIの基礎と事例」に参加しました | セミナー | mkasumi.com

    3月25日(月)に大阪で開催された、オブジェクトベースUIの基礎と事例【大阪開催】 | Peatixに参加しました。 講師はソシオメディア 上野学さんです。ソシオメディアさんのブログでは有益なことを発信されていて以前から読んでいたのですが、ふわふわとしている知識に確信を得るため今回はセミナーに参加しました。 オブジェクトベースUIとはなにか オブジェクトを元に設計されたユーザーインターフェースのこと。OOUI(Object-Oriented User Interfacesの略)と呼ばれたりすることもあります。 「オブジェクト指向」といえば聞いたことがある方もいるかもしれませんが、最近では多くのプログラミング言語で取り入れられている概念です。オブジェクトベースUIを簡単にいえば、オブジェクトを選んでからアクションすることができます。 オブジェクトベースUI と タスクベースUIの例 例えばi

    「オブジェクトベースUIの基礎と事例」に参加しました | セミナー | mkasumi.com
    d4-1977
    d4-1977 2019/04/22
    イベント行きたかった。 人月の神話を読むと良いよ、ってデザイナー向けのイベントでは聞かないから、マスマス気になりますね
  • OOUIデザインのトレーニング:モデルとレイアウト

    オブジェクトのモデルができれば、二次元のGUIのレイアウトができあがるわけではありません。ただし、この両者の関係性をパターンを用いて整理することができます。 モデルとレイアウトの関係性を整理すると、様々な場面での判断に役立ちます。 大きく5つあります。 1つのクラス 関連のない複数のクラス 自己再帰する1つのクラス 関連のある複数のクラス 再帰する複数のクラス (クラス図風の表現なのでクラスといっていますがざっくりとオブジェクトと捉えても構いません) この他にもありますが、組み合わせの最小単位として5つに絞ってみましょう。 1.1つのクラス クラスが1つだけ。例えば「生徒」です。 1つのクラスはオーソドックスに考えると、コレクション(例:生徒の一覧)とシングル(例:生徒の詳細)の2つを持ちますのでコレクションで1画面、シングルで1画面にすると以下のレイアウトが考えられます。 ナビゲーション

    OOUIデザインのトレーニング:モデルとレイアウト
    d4-1977
    d4-1977 2019/04/22
    オブジェクト指向UIのパターンについて。これはデザインパターンってことかな🤔
  • スケッチノート | 「オブジェクトベースUIの基礎と事例」 上野学さん(ソシオメディア)|くぼみ

    こんにちは、くぼみ(@kubomi____)です。 先日大阪で開催された、ソシオメディアの上野学さんの講演、 「オブジェクトベースUIの基礎と事例」に参加してきました。 テーマは OOUI (Object Oriented User Interface) オブジェクト指向ユーザーインターフェースと呼ばれる、「オブジェクト(ユーザの関心の対象物)を手がかりに操作設計されたユーザーインターフェース」です。 ソシオメディアではこれまでデザインコンサルティングを行うために数百の業務アプリケーションを見てきましたが、世の業務アプリケーションのおよそ8割はタスクベース(ユーザーの業務の流れの順番)のUI構成になっていると思われます。それらのほとんどは、オブジェクトベースのUI構成に変えるだけで劇的に改善できるのです。デザインはトレードオフの集合であり、常に有効なテクニックというものはほとんどありません

    スケッチノート | 「オブジェクトベースUIの基礎と事例」 上野学さん(ソシオメディア)|くぼみ
  • ドメインオブジェクトの責務について - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 設計するとき、「このオブジェクトの責務は何だろうか?」とか「この責務に名前をつけるなら何か?」とか、責務について考えることがよくあります。そもそもその責務とは何か、という根源的な疑問について再確認すると共に、ドメイン駆動設計の観点からドメインオブジェクトの責務についても考えてみたいと思います。 責務とは 困ったときの古典引用。もう絶版になった、オブジェクトデザインという、書籍を紐解いてみましょう。DDDからの引用が多い書籍で、DDDの設計スタイルは、この書籍で紹介する「責務駆動設計(responsibillity-driven desi

    ドメインオブジェクトの責務について - Qiita
  • JavaScript初心者にclassを伝える - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    JavaScript初心者にclassを伝える - Qiita
  • Rails tips: Service Objectパターンでリファクタリング(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Use service object pattern to make refactoring of your Ruby on Rails app 原文公開日: 2018/02/03 著者: Paweł Dąbrowsk このリファクタリングパターンは非常にシンプルですが、私が作業しているどのアプリでも非常に有効であることがわかってきました。Service Object(訳注: 単にServiceと書かれることもありますが、記事では略さない方に統一しています)パターンは、クラスやメソッドのコード量が増えてしまったときにいつでも使えます。私はServiceを作るときは以下のルールを守るようにしています。 Service Objectのクラス名の末尾には必ずServiceを付ける 単一責任の原則を守る(この原則はService Obj

    Rails tips: Service Objectパターンでリファクタリング(翻訳)|TechRacho by BPS株式会社
  • オブジェクト指向UX | POSTD

    (注:2015/11/18、記事およびタイトルを一部修正いたしました。) CNN.com で働いていた2012年6月に、大統領選挙投票日の夜のユーザエクスペリエンス(以後UX)のデザインを任されました。私はそれからの6カ月間を投票日の夜のための仕事に専念しました。しかし、仕事が成功するかしないかは、選挙結果に関係はありませんでした。私が懸念していたのは、情報の見つけやすさやデータの見やすさ、canvasでのオブジェクトの変形、そして一体どのようにしたら、iPhoneでマウスオーバーのフライアウトが動作するのかでした。CNN.com史上初めてWebデザインをレスポンシブにすることにしたのです。さらに史上初めて私が、その デザイン を担当することになったのです。 大きな賭けでした。CNN.comにとって大統領選挙投票日の夜と言えば、スーパーボウル(プロアメリカンフットボールの優勝決定戦)の日曜

    オブジェクト指向UX | POSTD
  • オブジェクト指向による恋愛論 - PlayGround

    この記事は、みんなのウェディング Advent Calendar 2017 - Qiita 20日目の記事です。 (注:記事中の思想は著者および所属する組織とは一切関係ありません) 序 アドベントカレンダーに寄せるにあたって、ウェディングとエンジニアリングを掛け合わせた何かよい主題がないかと考えたところ、ソフトウェア開発に於ける発明のひとつであるオブジェクト指向によって恋愛を論ずるのが面白かろうという考えに至った。そういう訳で、これから述べることは個人の見解ではなく架空の思想であることに注意されたい。 オブジェクト指向の必要 技術者の諸兄は日々変化する要求に精神を擦り減らし、空虚な会議でやる気を擦り減らし、疲労と倦怠を揚々とその身体に刻み付けていることだろう。 そんな過酷な環境に身を置きながらも健やかな心身を保守運用するため、ソフトウェア開発に於けるオブジェクト指向設計の恩恵を私生活、殊に

    オブジェクト指向による恋愛論 - PlayGround
    d4-1977
    d4-1977 2017/12/20
    恋愛論をオブジェクト指向で、かまされた Advent Calendar はこちらです。
  • RubyでNull Objectパターンを使えるようにするgem「Naught」のすすめ - Qiita

    Null Objectパターンの実装を支援するgemとして、Naught というgemがあるのですが、Qiitaでは、業界のjoker1017さんの 俺がGitHubでスターを付けたリポジトリ一覧 という記事ぐらいしか見つからなかったので、その使い方と有用性をざっくり説明したいと思います。 Null Objectパターン is 何? 私も最近になって知ったのですが、 こちらの記事 NullObjectパターン によると、 あるオブジェクトが nil でなければ、メソッドを呼び出す こういうパターンが頻出する場合、obj に nil の代わりに何もしないメソッドを持つオブジェクト を格納しておく インターフェースだけ持って、何もしないオブジェクトを用意することで、 そのオブジェクトを使う側は、オブジェクトが生成されなかった場合を気にする必要がなくなる → オブジェクトの状態を意識する必要が無

    RubyでNull Objectパターンを使えるようにするgem「Naught」のすすめ - Qiita
  • オブジェクト指向の法則集 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事は、故石井勝さんが1999年に書いた記事を Qiita に転載するものです。オブラブ(objectclub.jp)にて記事をホスティングしていましたが、現代でも十分に読める内容なので、たくさんの方に読んでもらいたいと思い、若干の編集(リンクとコンテキスト追加)を平鍋が行い、転載します。今でも、読みやすく、カジュアルな語り口のよい記事です。 オブジェクト指向の法則集(転載元:http://objectclub.jp/community/memorial/homepage3.nifty.com/masarl/article/oo-p

    オブジェクト指向の法則集 - Qiita
  • BEMという命名規則とSass 3.3の新しい記法 - アインシュタインの電話番号

    BEMを使った命名がとても明快で、このところHTMLCSSを書くのによく使っている。CSSのクラス名として書く場合は、BEMCSS用に使いやすくしたMindBEMdingという書き方を採用している。最初にこれを知ったときは「こんな汚い記述の仕方は使いたくない」と思ってたんだけど、すっかり慣れて、今ではその明快さにちょっと心酔しかけているほど。 BEMの方法論とMindBEMdingのルールについてはそれぞれの文書を読んでもらうとして、それらをひっくるめて大雑把に説明すると、BEMとはBlock、Element、Modifierの頭文字を取ったもので、構成する要素をそのどれかに当てはめて命名していく方法。どの場合でも必ずBlockもしくはそのModifierがルートにあり、その中に、所属するElementもしくはそのModifierが含まれる構成になる。 Block - 構成のルートとな

    BEMという命名規則とSass 3.3の新しい記法 - アインシュタインの電話番号
  • オブジェクト指向CSS(OOCSS)とSassとUIデザインのベストな関係 | GeNERACE labo

    こんにちは、マークアップエンヅニアのゆーじろーです。 今回は掲題の通り、オブジェクト指向CSSという概念について書きます。 ちなみに恥ずかしながら私はつい最近までこのOOCSSという概念を知りませんでした。 ただ、私が普段CSSコーディングする際に行っている行為がどうやらこれらしい。というのと、 いくつかドキュメントを探してみたら、概念を誤解しているようなものも散見されたので改めて纏めました。 オブジェクト指向CSS まず基のおさらいですがCSSでは主にエレメント、クラス、IDの三種類の要素を使用してスタイルを定義します。 p{color:#ff0000;} /*エレメント*/ .red{color:#ff0000;}/*クラス*/ #red{color:#ff0000;}/*ID*/ 上記はどれも結果として返す値は変わりません。 ですので慣れてきた人であればこう書きます。 p, .re

  • オブジェクトは難しくない。難しいのはクラス

    オブジェクト指向はしばしば,とっつきづらく難しい技術と言われます。その理由の一つには,対象とする分野が広く,それぞれに深みがあることが挙げられます。しかし,それ以上にこの技術を難しくしている落とし穴とも言うべき原因が二つあると筆者は考えています。それは比喩を乱用する説明の仕方の問題と,「もの中心」を意味するコンセプト自体の問題です。 事実、オブジェクト指向というのは最初は子供向けだったのだ。 このことを、現在「オブジェクトとはなんぞや」という大人たちは忘れてしまっている。 それで、オブジェクトとは何か、といえば、「自分が何が出来るのかを知っているデータ」ということになる。それ以上でもそれ以下でもない。犬は吠えることはできても話すことは出来ない。URLからホスト名やパスを取り出すことは出来ても、URLどおしを足すことは出来ない。犬が哺乳類で、URLが文字列でというのはその後でかまわない。 人

    オブジェクトは難しくない。難しいのはクラス
  • Javaのクラスとオブジェクトについて再度解説を試みる - 達人プログラマーを目指して

    オブジェクト指向プログラミングの考え方については、今までこのブログでも何度か取り上げてきました。 [オブジェクト指向] - 達人プログラマーを目指して オブジェクト指向プログラミングはプログラミング技法のすべてではないとはいえ、Javaのようなオブジェクト指向言語で格的なプログラムを作るには理解を避けて通ることができませんし、また、関数型言語など他のパラダイムの言語を利用するにしても、オブジェクト指向の考え方をまったく理解しないまま使いこなすということは困難でしょう。オブジェクト指向の考え方はデータ構造やアルゴリズムといったことと同様に、プロフェッショナルなプログラマーが理解しておくべき基的な素養といってもよいと思います。実際、海外では募集要項でオブジェクト指向の理解を前提とすると書かれていることが普通ですし、プログラマーの面接試験で、アルゴリズムと並んでオブジェクト指向プログラミング

    Javaのクラスとオブジェクトについて再度解説を試みる - 達人プログラマーを目指して