タグ

solidに関するkiyo_hikoのブックマーク (15)

  • SOLID原則を理解し、JavaScriptで実践するためのガイド - deve.K's Programming Primer - プログラミング初心者のための入門ブログ

    ソフトウェア開発者にとって、堅牢でテスト可能で拡張性があり、保守性の高いオブジェクト指向のソフトウェアシステムを設計することは重要です。 そこで登場するのがSOLID原則です。 SOLIDは、ソフトウェア開発中に生じるかもしれない特定の問題を解決するために5つの設計原則が組み合わさったセットです。 この記事では、SOLID設計の原則について詳しく学んでいきます。 具体的には、SOLID原則が何を意味しているのか、各部分がそれぞれ何を表しているのか、また実際のプログラム例を挙げながら現役のプログラマーが説明します。 さらに、JavaScriptを使ってこれらの原則を実装する方法も紹介します。 SOLID設計原則とは? 単一責任原則 (SRP) Open/Closed原則 リスコフ置換原理 (LSP) インターフェース分離原則 (ISP) 依存関係逆転の原則 最後に SOLID設計原則とは?

    SOLID原則を理解し、JavaScriptで実践するためのガイド - deve.K's Programming Primer - プログラミング初心者のための入門ブログ
  • 継承は禁止するべき

    キチガイに刃物、ゴミプログラマに継承。危険なものは取り上げるべきだ。 オブジェクト指向プログラミングにおける継承は強力な手法であるが、これを正しく使えるプログラマは残念なことに極めて少ない。たいていの場合、継承を使うことで却ってプログラムの保守を困難にしてしまう。継承のアンチパターンの最たるものは、単なるメソッドやメンバ変数の共有のために継承を使うパターンだ。これを行うとデータが密結合になってバグの原因になり、プログラムを把握することも極めて困難になる。 そもそも、熟達したプログラマの感覚では、業務で書くアプリケーションの実装に継承を使うべき局面などほとんど無い。ライブラリ等のより低レベルな処理で仕様が確定しているものについては、継承が効果的となる場合もあるが、複雑なアプリケーションのロジックに継承を使うのはほとんどの場合、時期尚早な抽象化となる。 また、凡庸なプログラマが継承で実現したい

    継承は禁止するべき
    kiyo_hiko
    kiyo_hiko 2020/10/22
    変数名で既に糞なコードと闘ってて高尚な話に思える。あとif-elseが50個ぐらい繋がってるアメリカの貨物列車みたいな長大コードとか、その入れ子… / 継承はstrategyやstateぐらいで使う / 追記:130分岐に出会った。狂ってる
  • PHPerKaigi 2018 ベストトーク賞「SOLIDの原則ってどんなふうに使うの?」スライド公開・配布 | QUARTETCOM TECH BLOG

    PHPerKaigi 2018 ベストトーク賞「SOLIDの原則ってどんなふうに使うの?」スライド公開・配布 カルテット開発部の後藤です。 PHPerKaigi 2018 にスピーカーとして参加してきました。そしてなんと、参加者の皆様からの投票の結果、ベストトーク賞を頂きました! tweet 発表を聞いてくださった方、投票してくださった方、そして素晴らしいカンファレンスを企画・運営してくださったスタッフの皆様、当にありがとうございました! スライドの公開とKeynoteファイルの配布 発表に使ったスライド(公開用に一部修正したバージョン)は、以下です。 また、トークスクリプトも含めて読んでみたい、自分たちの勉強会で使いたいという方向けに、Keynoteファイルも配布します。 SOLIDの原則ってどんなふうに使うの?〜オープン・クローズドの原則編〜 公開版 クリエイティブ・コモンズ BY-

    PHPerKaigi 2018 ベストトーク賞「SOLIDの原則ってどんなふうに使うの?」スライド公開・配布 | QUARTETCOM TECH BLOG
    kiyo_hiko
    kiyo_hiko 2018/10/18
    開放/閉鎖原則
  • Developing MVC applications using SOLID principles

    kiyo_hiko
    kiyo_hiko 2016/04/27
    WebでOCP満たそうとするの難しいな、、
  • C# で SOLID の原則に違反する危険性

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 C# で SOLID の原則に違反する危険性 Brannon King ソフトウェアを作成するプロセスが理論の段階から実際のエンジニアリングの段階に進化するにつれ、いくつか原則が生まれています。原則を当てはめるのは、コードの価値を維持できるコンピューター コードの 1 つの機能です。パターンとは、善し悪しは別にして、共通するコード シナリオのことです。 たとえば、マルチスレッド環境で安全に機能するコンピューター コードに価値を見出すかもしれません。あるいは、コードを変更してもクラッシュしないコンピューター コードに価値を求めることもあります。実際、有用な要素を数多く含むコンピューター コードには高い価値があり

    C# で SOLID の原則に違反する危険性
    kiyo_hiko
    kiyo_hiko 2014/10/28
    "有用な要素を数多く含むコンピューター コードには高い価値がありますが、日常目にするのはその逆です"
  • オブジェクト指向の法則集 - Qiita

    この記事は、故石井勝さんが1999年に書いた記事を Qiita に転載するものです。オブラブ(objectclub.jp)にて記事をホスティングしていましたが、現代でも十分に読める内容なので、たくさんの方に読んでもらいたいと思い、若干の編集(リンクとコンテキスト追加)を平鍋が行い、転載します。今でも、読みやすく、カジュアルな語り口のよい記事です。 オブジェクト指向の法則集(転載元:http://objectclub.jp/community/memorial/homepage3.nifty.com/masarl/article/oo-principles.html ) なお、この記事の他にも石井さんのオブジェクト指向やRubyに関する多くの記事をオブラブの「まさーるのページ」で読むことができます。では、以下に石井勝さん(旧メールアドレス masarl@nifty.com)の記事を転載します

    オブジェクト指向の法則集 - Qiita
  • ZendEngine勉強会で「拡張ライブラリでなるべく簡単に構文を追加する方法」というタイトルで喋ってきました

    ご無沙汰しております、アシアル笹亀です。 ブログを書くのは、大変久しぶりになります。実はアシアルでは最近、noteもはじめております。アシアルの仕事の取り組み方、考え方、様々なメンバーについて知ることができます!是非、ご興味があるかたはこちらも一読いただけますと嬉しいです。 https://note.asial.co.jp/ 久しぶりにiPhoneアプリをアップデート申請をするときありますよね? iPhoneのアプリを継続的に保守管理をしていると、申請作業をクライアント様におまかせして、あまりエンジニア自身で長い間、アップデート申請をしてこなかった方々は何気に多いのではないかとおもい(自分もその1人)、ブログにも残しておこうとおもいました。 こまめに改修などを加えており、その度にアップデートの申請をされている場合には、あまり実感はないかもですが、1年振りとかにアップデートの申請をしたりする

    ZendEngine勉強会で「拡張ライブラリでなるべく簡単に構文を追加する方法」というタイトルで喋ってきました
    kiyo_hiko
    kiyo_hiko 2014/08/19
    いい説明だった。SOLID全体についてはこの辺:http://naglly.com/archives/2009/07/post-393.php // よくみたらiphone用URLだった。まあいいか。
  • デザインパターンとともに学ぶオブジェクト指向のこころ を読んだ - takatoshiono's blog

    読んだ理由 最近、ソフトウェアの設計力が不足していると感じる。もっといい感じにクラスを設計して、オブジェクト指向ぽいプログラムを書けるようになりたい。しかもスピード感を持ってやりたい。ということで、いまさらだけど、オブジェクト指向についてもう一度学んでみようと思った。を読めばいいという訳じゃないけど、とりあえずもっと知識を増やしたい。渋谷の東急百貨店 7F の丸善&ジュンク堂書店に行って、 オブジェクトデザイン (Object Oriented SELECTION) エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践) オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES) の3冊で悩んだ結果、これを買った。決める要因となったのは、 ついでにデザインパターンについて理解を深められたらいいなと思った これまで

    デザインパターンとともに学ぶオブジェクト指向のこころ を読んだ - takatoshiono's blog
  • 依存関係逆転の原則(DIP)

    DIP:The Dependency Inversion Principle a. 上位のモジュールは下位のモジュールに依存してはならない。どちらのモジュールも「抽象」に依存するべきである。 b. 「抽象」は実装の詳細に依存してはならない。実装の詳細が「抽象」に依存すべきである。 下位のモジュールの再利用は、サブルーチンライブラリという形で行います。 上位のモジュールの再利用は、上位レベルのモジュールが下位のレベルのモジュールに依存していなければ、非常に簡単に行うことができます。依存関係逆転の原則とは上位モジュールを再利用するための原則なのです。そしてこの原則こそフレームワーク設計の核心なのです。 下記のモデルを例にとって見てみましょう。この構造では、上位のPolicyレイヤが、それよりも下位の全てのレイヤにおける変更の影響を受けてしまいます。影響が伝達しやすい依存関係になっているためです

    依存関係逆転の原則(DIP)
    kiyo_hiko
    kiyo_hiko 2013/09/01
    SOLIDの復習なう。
  • An introduction to the SOLID principles of OO design - dave^2 = -1

  • SOLIDオブジェクト指向ルールのオープン・クローズド原則への批判

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    SOLIDオブジェクト指向ルールのオープン・クローズド原則への批判
  • 開放/閉鎖原則 - Wikipedia

    開放/閉鎖原則(かいほうへいさげんそく、open/closed principle、OCP)とは、オブジェクト指向プログラミングの設計への提言である。 ソフトウェア要素(クラス、モジュール、関数など)は、拡張に対しては開いており、修正に対しては閉じているべきである。 software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification.[1] この原則に従っていれば、ソースコードの修正をせずとも、各要素の振る舞いを拡張することが可能になるとしている。 この開放/閉鎖の原則は、1988年にバートランド・メイヤーが提唱したものと、1996年頃にロバート・C・マーチン(英語版)らが提唱したものの二通りがある。どちらも継承やポリモーフィズムによる

    kiyo_hiko
    kiyo_hiko 2013/05/03
    最近?はバートランド・メイヤーからはいくぶん意味が変わっていて、インターフェースを重視しているらしい // b:id:entry:140386206がそういう話だった。
  • リスコフの置換原則 - Wikipedia

    この記事には複数の問題があります。改善やノートページでの議論にご協力ください。 出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。(2021年12月) 脚注による出典や参考文献の参照が不十分です。脚注を追加してください。(2021年12月) ほとんどまたは完全に一つの出典に頼っています。(2021年12月) 独自研究が含まれているおそれがあります。(2021年12月) 出典検索?: "リスコフの置換原則" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL リスコフの置換原則の概念は、バーバラ・リスコフにより初めて導入された。2010年に撮影された写真。 リスコフの置換原則(りすこふのちかんげんそく、英: Liskov substitution principle)は、オブジェ

    リスコフの置換原則 - Wikipedia
    kiyo_hiko
    kiyo_hiko 2012/12/19
    なるほど。例外も当然同じ型か、派生型を投げなければLSPが危うくなる 派生型であれば派生した例外もLSPを満たせば透過的に処理できる。
  • Java開発者必修! ソフトウェア・パターン専科 ソフトウェア・パターンへのいざない | ウルシステムズ株式会社

    はじめに ソフトウェア・パターンという言葉を聞いたことがあるだろうか。ソフトウェア・パターンの中ではデザイン・パターンが有名であり、すでに実際の開発現場で適用されている方も多いと思われる。 デザイン・パターン以外にも多くのソフトウェア・パターンが存在しているのだが、残念ながら、デザイン・パターン以外のパターンについてはあまりよく知らないという方が多いのではないだろうか。 ソフトウェア・パターンに関する知識は、我々ソフトウェア開発者にとって、今後ますます重要になってゆくであろう。 連載では、ソフトウェア・パターンについて学びたい読者や、デザイン・パターンは知っているけれど他のパターンについてはあまり知らないという読者を対象に、さまざまなソフトウェア・パターンについて解説していく予定だ。 ソフトウェア・パターンとは そもそも、ソフトウェア・パターンとは何だろうか。ひと言でいえば、ソフトウェア

    Java開発者必修! ソフトウェア・パターン専科 ソフトウェア・パターンへのいざない | ウルシステムズ株式会社
    kiyo_hiko
    kiyo_hiko 2012/12/19
    Yes OCPちょう大事
  • オブジェクト指向設計の原則がよく分かるかも知れない画像 | naglly.com

    下記のサイトで、オブジェクト志向開発における原則、いわゆる「SOLID原則」について、皮肉たっぷりの画像と文章を用いて解り易く解説しています。 SOLID Development Principles - In Motivational Pictures - new ThoughtStream("Derick Bailey"); - 大変良く出来ている画像だと思いましたので、勉強の為にそれぞれの原則をネットで検索しつつ、日語化してみました。 これは、オブジェクト指向設計の原則だけじゃなくて、ソフトウェア開発全般に適用できる原則だと思います。 The Single Responsibility Principle(SRP) The Open Closed Principle(OCP) The Liskov Substitution Principle(LSP) The Interface

    オブジェクト指向設計の原則がよく分かるかも知れない画像 | naglly.com
    kiyo_hiko
    kiyo_hiko 2010/11/24
    直球でわかりやすしおすし
  • 1