タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

SOLIDに関するsiik02のブックマーク (4)

  • SOLID原則で考えるReact設計

    こんにちは、株式会社スタメンでオンラインサロンFANTSのフロントエンドエンジニアをしている@0906kokiです。 今回はSOLID原則の5つの設計原則を、Reactのコードをベースにして解説できればと思います。 SOLID原則とは? SOLID原則とは、ソフトウェアを柔軟に、メンテナンス性を高く設計するための5つの原則となります。 Robert C. Martinによって、5つの原則の頭文字をとってSOLIDという名前が付けられました。5つの原則とは以下の通りです。 SRP: 単一責任の原則 OCP: 開放閉鎖の原則 LSP: リスコフの置換原則 ISP: インタフェース分離の原則 DIP: 依存性逆転の原則 元々、SOLID原則はJavaなどのオブジェクト指向プログラミングに対して、メンテナンス性の向上や分かりやすいプログラムを担保するために提唱された原則ありますが、オブジェクト指向

    SOLID原則で考えるReact設計
  • 単一責任原則で無責任な多目的クラスを爆殺する - Qiita

    この記事は クラウドワークスアドベントカレンダー2020 8日目の記事です。 概要 こんにちは、クソコードを爆殺リファクタリングするのが大好きなミノ駆動です。 今回は単一責任原則の話です。 単一責任原則はSOLID原則のひとつとして有名で、2020年のオブジェクト指向カンファレンスのアンケートでも、SOLID原則の中で最も人気がありました。 皆さんは単一責任原則を遵守した設計をしていますか。 どんな構造が単一責任設計で、一方どんな構造が単一責任でない設計か、明確に意識していますか。説明できますでしょうか。 ところで「単一責任原則とはなんぞや」について、少なくとも私の観測範囲では、概念的な話にとどまっているものが多く、コードレベルで具体的に説明しているものは少ないように感じます。 そうした状況からか、単一責任原則の解釈が人によって違っていたりしているように感じます。 記事は、今一度単一責任

    単一責任原則で無責任な多目的クラスを爆殺する - Qiita
  • リスコフの置換原則(LSP)をしっかり理解する - Qiita

    SOLID 原則の1つ「リスコフの置換原則」についての記事になります。 この原則に関する幾つかの記事を眺めてみても、どうも他4つの原則と比べて腹落ちしない部分があったので理解の為しっかり調べてみました。 S が T の派生型であれば、プログラム内で T 型のオブジェクトが使われている箇所は全て S 型のオブジェクトで置換可能 ([1] wikipedia より引用) リスコフの置換原則は上記のようにシンプルに説明されている事が多いですが、基底型と置換可能な派生型となるには幾つか遵守すべきルールがあります。この原則は Barbara Liskov 氏が 『A Behavioral Notion of Subtyping』([9]) という論文で提唱した内容であり、後に「リスコフの置換原則」として認知されるようになりました。元々の論文名から分かるように、その質は「サブタイプ(派生型)の振る舞

    リスコフの置換原則(LSP)をしっかり理解する - Qiita
    siik02
    siik02 2020/05/26
  • オープン・クローズドの原則 - TypeScriptで学ぶSOLID原則 part 1 - Qiita

    SOLID原則を勉強中です。 TypeScriptでOCPを説明している記事があまりなかったので、自分なりにまとめてみました。 オープン・クローズドの原則(OCP)とは? software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification クラス・モジュール・関数は「拡張」に対して開いていて、「修正」に対して閉じていなければならない という原則です。 これだけ読んでも「拡張に対して開いて、修正に対して閉じている? 何も分からん🤔」という感じですが、 自分の中では機能の拡張の際、既存コード修正せず、新しくコードを追加するだけで対応できる設計にすることだと解釈しています。 以下の仕様でプログラムを書くと仮定して、OCPに違反したコード・遵

    オープン・クローズドの原則 - TypeScriptで学ぶSOLID原則 part 1 - Qiita
    siik02
    siik02 2020/05/13
  • 1