タグ

oopに関するtsuwatchのブックマーク (11)

  • 単一責任の原則(Single responsibility principle)について、もう一度考える | オブジェクトの広場

    単一責任の原則(Single responsibility principle)について、もう一度考える はじめに オブジェクトの広場をご覧の皆様ならば、「SOLID原則」という言葉を聞いたことがあるかもしれません。 SOLIDとは、以下の5つのソフトウェア設計原則を並べたバクロニムです。 Single Responsibility Principle:単一責任の原則 Open/closed principle:オープン/クロースドの原則 Liskov substitution principle:リスコフの置換原則 Interface segregation principle:インターフェース分離の原則 Dependency inversion principle:依存性逆転の原則 ソフトウェアエンジニアが知っておくべき設計原則のセットとして、Clean Architecture や

    単一責任の原則(Single responsibility principle)について、もう一度考える | オブジェクトの広場
    tsuwatch
    tsuwatch 2021/05/27
    大事な話
  • クラスの「継承」より「合成」がよい理由とは?ゲーム開発におけるコードのフレキシビリティと可読性の向上 | POSTD

    コード構造における重要な問題として、複数のクラスを共有する場合に合成と継承のどちらを用いるかという点があります。“has a”の関係と、“is a”の関係と言われる2つの対比です。例えば、“ソファには綿が入っている”と、“ソファは家具である”という違いのようなものです。この例では2つの違いは非常に明白ですが、実際には、“has a”の関係でも“is a”の関係でも意味を成すケースがたくさんあります。ゲームのキャラクターについて、これはコリジョンボックスを持っているかと聞くのと、これは衝突可能なオブジェクトかと聞くような場合です。この2つは全く同じことではありませんが、それぞれが(または両方一緒に)衝突を処理する主構造として用いられ、どちらの方がよいかは必ずしも明白ではありません。私の経験では、直感的には継承の方がよいと思うことも多いのですが、それだと問題がたくさんあって結局は合成の方がよか

    クラスの「継承」より「合成」がよい理由とは?ゲーム開発におけるコードのフレキシビリティと可読性の向上 | POSTD
    tsuwatch
    tsuwatch 2014/09/10
  • アジャイル設計と5つの原則 - かまずにまるのみ。

    アジャイルソフトウェア開発の奥義 第2部「アジャイル設計」の自分用まとめ。 アジャイル設計 アジャイルな設計 「原則」「パターン」「プラクティス」を継続的に適用することで、読みやすく変更に強い状態を保つことができる設計。 悪い設計 第2部の中で「貧弱な設計の兆候」「腐敗するソフトウェアの兆候」として、以下の7つが挙げられている。 硬さ (設計変更が難しい) 脆さ (設計が壊れやすい) 移植性のなさ (再利用が難しい) 扱いにくさ(正しい設計をするのが困難なソフトウェア、面倒な開発環境) 不必要な複雑さ("後で必要になるかもしれない"と考えて先行実装したコード) 不必要な繰り返し (コピペ) 不透明さ (目的や意図がわかりにくい) 原則 システムに悪い設計の兆候が見られるとき、その原因がオブジェクト指向設計の原則に反していることだったりする。 ただし無条件で原則に従うと「不必要な複雑さ」を招

    アジャイル設計と5つの原則 - かまずにまるのみ。
  • てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ! - Qiita

    てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ!RubyRails ちょっと煽り気味のタイトルにしてみましたが、Railsで開発する時は意識的にOOPに寄せないとオブジェクトの力が活かせなくなるよってことと、Railsが提供しているクラスの責務を分割することを支援してくれる機能について話をします。 ActiveRecordの性質 Rails開発においては、モデル層にロジックを書いてコントローラーは薄くしろ、というのはしつこく言われているので、概ね浸透してきていると思います。 それに加えて、最近私が結構しつこく主張しておきたいのが、モデル = ActiveRecordでは無いよ、ということです。 ActiveRecordは成り立ちから言うと、ロジックとDBへの永続化をまとめてカプセル化するアーキテクチャパターンから来ています。

    てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ! - Qiita
  • 【朗報】そんなあなたに - hitode909の日記

    コードを書く速度が遅いとお嘆きのあなた!!! なんか、とにかくコードを書く速度が遅いんだけど、何が一番のボトルネックになってるんだろう ...— Cside (@Cside_) 2014, 5月 27 あなた!!! > id:Cside コードを書くのがなんとなくお嘆きのあなた!!!オブジェクト指向入門第二版を読めば、大半の些細な悩みは解決することでしょう!!! 利用者の声 私も愛用しています!!!最高のです!!!最高過ぎて前歯が折れました 滋賀県在住マリンスポーツ氏 はこべさんも途中まで読んだそうです 滋賀県在住マリンスポーツ氏 ある昼下がり、しばゆーの机に下巻があるのを目撃したんです 滋賀県在住マリンスポーツ氏 お求めはこちらから 今ならAmazonプライムに加入することで24時間無料で発送いたします(Amazonが)。 オブジェクト指向入門 第2版 原則・コンセプト (IT Arc

    【朗報】そんなあなたに - hitode909の日記
  • 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 - Qiita

    あわせて読みたい 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 「オブジェクト指向プログラミング」と「関数型プログラミング」のたった一つのシンプルな違い あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ 2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 この記事について この記事は新人向けの研修内容を再編集してお送りいたします。 ここで述べる内容はどのようにして現在のプログラミングスタイルが生まれてきたかを理解することで、よりよいプログラムを書くためのもので、正確なソフトウェア工学の歴史を学ぶためのものではありません。正確な歴史を把握したい場合は、原典をあたるようにしてください。 また、想定している読者は「よくあるオブジェクト指向プログラミングの学習」を既にし

    新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 - Qiita
  • DCIアーキテクチャ - Trygve Reenskaug and James O. Coplien - Digital Romanticism

    この記事はartima developerに掲載されている、Trygve Reenskaug氏とJames O. Coplien氏による記事「The DCI Architecture: A New Vision of Object-Oriented Programming」を、著作権者であるBill Bennrs氏の許可を得て翻訳したものです。文内の図の著作権はArtima, Inc.に帰属します。(原文公開日:2009年3月20日) 要約 オブジェクト指向プログラミングはプログラマとエンドユーザの視点をコンピュータコードにおいて統一するものと考えられていた。この恩恵はユーザビリティとプログラムの分かりやすさの両面にわたる。しかし、オブジェクトは構造をとらえるのに長けている一方で、システムの動作をとらえることができていない。DCIはエンドユーザのロールに関する認識モデルとロール間の関係を

    DCIアーキテクチャ - Trygve Reenskaug and James O. Coplien - Digital Romanticism
  • Head Firstオブジェクト指向分析設計読んだ - にこにこインターネット

    Head Firstオブジェクト指向分析設計 ―頭とからだで覚えるオブジェクト指向の基 作者: Brett McLaughlin,Gary Pollice,長瀬嘉秀,永田渉,株式会社テクノロジックアート出版社/メーカー: オライリー・ジャパン発売日: 2007/12/04メディア: 単行購入: 4人 クリック: 77回この商品を含むブログ (26件) を見る オブジェクト指向なソフトウェアを設計するためのオブジェクト指向の原則やソフトウェア設計手法が書かれてる.ただつらつら書かれているのではなくて,Head Firstらしく絵図や会話をいれながら,実際にソフトウェアを設計・開発していきつつ説明を進めてくれる.こういう事例とともに学ぶべきことはHead Firstと相性が良くて,すごく頭に入りやすかった. 流れとしては,設計の依頼がくる→設計,開発していく→うまくいかなくなる→解決するノ

    Head Firstオブジェクト指向分析設計読んだ - にこにこインターネット
    tsuwatch
    tsuwatch 2014/03/12
    もうちょっと書いた
  • オブジェクト指向プログラミング再入門

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

    オブジェクト指向プログラミング再入門
  • OOコード養成ギブス - rants

    Binstock on Software: Perfecting OO's Small Classes and Short Methods The Pragmatic Programmersシリーズの新しい、The ThoughtWorks Anthologyの中に 興味をそそるエッセイがある。Jeff Bayの"Object Calisthenics"だ。 これは良いオブジェクト指向の性質を実証する小さなルーチンを書く方法をマスターするための 詳細にわたるエクササイズだ。オブジェクト指向なルーチンを書く能力を向上させたい開発者がいるなら このエッセイに目を通すことを勧める。ここにBayのアプローチを要約してみよう。 彼は次にあげられる制約のもとに1000行のプログラムを書くことを勧めている。 これらの制約は意図的に過剰な制限となっているが、これは開発者を手続き的なやり方から脱却させるた

    OOコード養成ギブス - rants
    tsuwatch
    tsuwatch 2013/10/05
  • オブジェクト指向と設計の話

    2013/07/06 ゆるかわPHPの会#2 の発表資料です。 オブジェクト指向とアジャイル設計などについて。 内容は書籍「アジャイルソフトウェア開発の奥義」と「オブジェクト指向のこころ」に書かれている話が中心となっています。

    オブジェクト指向と設計の話
    tsuwatch
    tsuwatch 2013/07/08
  • 1