並び順

ブックマーク数

期間指定

  • から
  • まで

161 - 200 件 / 260件

新着順 人気順

oopの検索結果161 - 200 件 / 260件

  • PHP オブジェクト指向 【再入門】 - RAKUS Developers Blog | ラクス エンジニアブログ

    はじめに こんにちは、弊社サービス「配配メール」の開発に従事している id:soachr(そーく)といいます。 以前は id:north_mky というユーザで投稿していましたが結婚を期になんとなくユーザを変えました。 ID の由来はとくにありません。 今回は、駆け出しエンジニアさん向けに「オブジェクト指向」を PHP でプログラミングしようと思います。 対象読者 オブジェクト指向の実務イメージがわかない・しっくりきていない駆け出しエンジニアさん if/for/配列などは理解して実装できる カプセル化?継承?ポリモーフィズム?なにがいいの?と思っている 記事を読んでわかること オブジェクト指向で書かれたプログラムの良さがイメージできる オブジェクト指向の入門書を改めて読み返して理解を深められるようになる オブジェクト指向、正直よくわからんってなっていませんか? オブジェクト指向はプログラミ

      PHP オブジェクト指向 【再入門】 - RAKUS Developers Blog | ラクス エンジニアブログ
    • クソコード動画『カプセル化 Mk-II』 で考える 上手くカプセル化できない理由 / encapsulation2

      オブジェクト指向カンファレンス2024 クソコード動画『カプセル化 Mk-II』 https://twitter.com/MinoDriven/status/1771763728234537310 下記セッションで用いたスライドです https://fortee.jp/oocon-202…

        クソコード動画『カプセル化 Mk-II』 で考える 上手くカプセル化できない理由 / encapsulation2
      • オブジェクト指向のプラクティスをフロントエンドで活用する

        Асинхронность неизбежна: как мы проектировали сервис уведомлений

          オブジェクト指向のプラクティスをフロントエンドで活用する
        • Rustを通して見るオブジェクト指向|TechRacho by BPS株式会社

          こんにちは。yoshiです。夏のTechrachoフェア2022ということで、夏とは何の関係もない記事を書いていこうと思います。 業務ではC++をやっていながら前回、前々回にTechrachoで書いた記事に引き続きRustをやっていく訳ですが、定期的に炎上しがち(?)なオブジェクト指向の話です。みなさん、オブジェクト指向は好きですか? オブジェクト指向って何だろう? A. なんもわからん なんて言ってしまったら話が終わってしまうのですが。 歴史的な話をするとオブジェクトという用語はSimulaが初出で、オブジェクト指向はアラン・ケイがSmalltalkで導入したもの、という話になりますが、一方でビャーネ・ストロヴストルップがC++に導入した「カプセル化・継承・ポリモーフィズム」の組み合わせのことを指すことが多く、SmalltalkのそれとC++のそれにも違いがあるので定義が定まらない概念で

            Rustを通して見るオブジェクト指向|TechRacho by BPS株式会社
          • [PDF]オブジェクト指向言語物語 小野寺民也

            • デザインパターンを Ruby で

              複雑なオブジェクトを段階的に構築できます。 このパターンを使用すると、 同じ構築コードを使用して異なる型と表現のオブジェクトを生成することが可能です。

              • 業務システムとオブジェクト指向 - Hot Heart, Cool Mind.

                業務システムの設計・開発を職業とする人々の間で、オブジェクト指向はいまだに一般的なものと受け止められていないように思える。しかし実際にやってみると、オブジェクト指向は業務システムにうまく馴染むし、システムの品質とメンテナンス性の改善につながる。 ==== オブジェクト指向の適用例 具体的な例で見てみよう。仕訳を作成して記帳するという、会計システムのもっとも基本的な処理を、Javaでオブジェクトを使って書いてみる: /** * 7月度の「帳簿(book)」を取得する。 */ 1: Book book = application.getBook("2006/7"); /** * 仕訳(JournalSlip)」を生成し、項目を設定する。 **/ 2: JournalSlip slip = book.createJournalSlip(); //仕訳日 3: slip.setJournalDat

                  業務システムとオブジェクト指向 - Hot Heart, Cool Mind.
                • ⚡️Ruby、オブジェクト指向、デザイン / Ruby, OOP, Design

                  Omotesando.rb #56 https://omotesandorb.connpass.com/event/192551/

                    ⚡️Ruby、オブジェクト指向、デザイン / Ruby, OOP, Design
                  • オブジェクト指向のはなしとGREE Tech Conferenceのおしらせ | GREE Engineering

                    みなさまこんにちは、グリー株式会社でCTOをやっておりますふじもと (@masaki_fujimoto) と申します。 今回は1週間後に控えたGREE Tech Conference 2022の宣伝も兼ねて、1年ぶりくらいにソフトウェアについてつらつらと書いてみます。というか、なにはなくとも10/25 (tue)、来週開催のGREE Tech Conference 2022にぜひぜひご参加ください。ひさびさにオフラインでも開催しますので! あとついでに、1年くらい前からデジタル庁というところのCTOも兼ねさせていただいてまして、なんかやっぱりあれこれ質問いただくことも多いので、そのあたりどうよ、みたいなところもついでに少しだけ触れてみたいと思います (なんかGREE Engineers' Blog、というところで書くにはちょっとコンテキスト違うかなとも思うのであくまでおまけ、ってことで..

                      オブジェクト指向のはなしとGREE Tech Conferenceのおしらせ | GREE Engineering
                    • Introduction - Rust Design Patterns

                      Introduction Participation If you are interested in contributing to this book, check out the contribution guidelines. News 2024-03-17: You can now download the book in PDF format from this link. Design patterns In software development, we often come across problems that share similarities regardless of the environment they appear in. Although the implementation details are crucial to solve the tas

                      • 日本のデジタル競争力、過去最低29位 中韓台にも後れ - 日本経済新聞

                        スイスのビジネススクールIMDは28日、2022年の世界デジタル競争力ランキングを発表した。63の国・地域のうち、日本の順位は前年から1つ下がり29位だった。17年の調査開始以来、過去最低を更新した。人材不足やビジネスのスピード感の欠如など課題が多く、上位に入る韓国、台湾など東アジアの国・地域からも取り残されている。世界デジタル競争力ランキングは毎年、各国の統計データや経営者・管理職への聞き取

                          日本のデジタル競争力、過去最低29位 中韓台にも後れ - 日本経済新聞
                        • ただのOSのロゴマークなのに、妻からあらぬ誤解を受けてしまったTシャツがこちら

                          リンク Wikipedia Ubuntu Ubuntu(ウブントゥ、 ( 音声ファイル); oo-BOON-too)はDebian GNU/Linuxを母体としたオペレーティングシステム(OS)である。Linuxディストリビューションの1つであり、フリーソフトウェアとして提供されている。概念はディストリビューションも参照。カノニカルから支援を受けて開発されている。開発目標は「誰にでも使いやすい最新かつ安定したOS」を提供することである。 Ubuntuは使いやすさを重要視している。例えばアプリケーションの観点では、標準的なシステムツールに加えて写真 156 users 428

                            ただのOSのロゴマークなのに、妻からあらぬ誤解を受けてしまったTシャツがこちら
                          • DDDとかドメインオブジェクトとかよくわからないけど、実際にコードに適用するとこうかな? - 技ビス : 技術、ビジネス、スタートアップ

                            最近DDDや値オブジェクトやドメインオブジェクトの定義が一部界隈で話題です。kumagi sanとかとじゅんさんの間で熱い議論が何日にも渡って繰り広げられています。 kumagi.hatenablog.com blog.j5ik2o.me kumagi.hatenablog.com kumagiさん眠たいんですが…。続きは明日でもいいですか。 — かとじゅん (@j5ik2o) 2022年5月19日 大変ですね! ぼくも違うチャネルでkumagi sanに色々理解をぶつけてみたものの全然違うようで色々と教えてもらったりしました。 しかしながら、これ実際どこでどう使うのかなと。大先生がこんな事を言ってました。 言葉遊びしてるんじゃねえんだぞ、動くものを作れ — Yoshi Yamaguchi (@ymotongpoo) 2022年5月19日 というわけで、最近書いたコードを題材にちょっとリフ

                              DDDとかドメインオブジェクトとかよくわからないけど、実際にコードに適用するとこうかな? - 技ビス : 技術、ビジネス、スタートアップ
                            • 状態の広がりと憑依 - 解釈をするために手を動かす

                              近年の実用に耐えるプログラミング言語には、構造体、クラスや ADT などのデータの塊(以後、単に「オブジェクト」と言う)を定義する機能が備わっています。 そういった言語でオブジェクトの構造を設計するとき、出来上がってきた設計について僕が真っ先に行う(おそらく最も、もっと言うなら唯一の)重要な sanity-check として、「その構造を持つオブジェクトoに仮に認識主体を認めた場合、oのどのプロパティがoの意思によって動きうる(生得的でない)のか1?そもそもoに認識主体を考えられるほどにoが『モノ』の形をしているか?o単体の意思によってプロパティが動きうる空間はどのような形をしているか?その一連の事情は設計・命名・コメントに反映できているか?」というものがあります。 ここで、「oに仮に認識主体を認めた場合」というのは、「もし、あなたがoそのものだったら」と読み替えて貰って構いません。頑張っ

                                状態の広がりと憑依 - 解釈をするために手を動かす
                              • Patterns for Reactivity with Modern Vanilla JavaScript – Frontend Masters Blog

                                “Reactivity” is how systems react to changes in data. There are many types of reactivity, but for this article, reactivity is when data changes, you do things. Reactivity Patterns are Core to Web Development We handle a lot with JavaScript in websites and web apps since the browser is an entirely asynchronous environment. We must respond to user inputs, communicate with servers, log, perform, etc.

                                  Patterns for Reactivity with Modern Vanilla JavaScript – Frontend Masters Blog
                                • Nimで知る「オブジェクト指向をする/しない」ということ

                                  Nim は、「もしアラン・ケイがオブジェクト指向と言わなかったら」という歴史の if を感じさせてくれる言語だと思った話をします。 私自身は Nim 初心者です。細部の「こいつ慣れてないな」感はご容赦ください。この記事は、この言語については初心者だけれど、プログラミング言語とパラダイムを考えるうえでとても価値があると思った気付きがあったのを、図々しくも記事にしました。複数のプログラミング言語を歴史的な観点で評価するうえで、Nim を通して 70 年代以前の言語と 80 年代以後の言語、具体的には、C with classes と C++ の境界線を見つめ直すことができるんじゃないかと思います。 ズバリ言うと、Nim はアラン・ケイのオブジェクト指向が通じない言語です。 Nim の言語標準には class キーワードがありません(マクロを作れば語句の拡張は可能ですがオプションです)。が、そん

                                    Nimで知る「オブジェクト指向をする/しない」ということ
                                  • 昔から使われている技術用語をさかのぼる: Value Object編

                                    考えてみればソフトウェアパターンが賑やかだった時代からはすでに20年以上たっているわけで、20年も変わるといろいろ状況も変わりますし、そんな昔のことなんて知ってるわけない、というか知ったことではない、という人も少なくないと思います。 とはいえ今でも使われている用語について、その当時の使われ方を知ると、考察が深まることもあるかもしれません。 そんな感じでOOPとかパターン方面の用語とかを遡りたい! というときには、WikipediaとかではなくてC2 Wikiを見るのがおすすめです。 C2 Wikiとは Wiki(WikiWikiWeb)の元祖みたいなやつですね。iki-ikiで紹介されています。 例えばValue Objectについて掘りたい、と思った時にはValueObjectで探すと見つかります。単語と単語をつなげるときに、単語の先頭を大文字にする感じです。 とはいえ、C2 Wikiも

                                      昔から使われている技術用語をさかのぼる: Value Object編
                                    • Pragmatic Functional Programming in TypeScript

                                      Pragmatic Functional Programming in TypeScript Yuichi Goto | TSKaigi 2025 on May 24, 2025 発表者について Yuichi Goto @yasaichi パーフェクトRuby on Rails共著者 株式会社EARTHBRAIN [PR] EARTHBRAINとプロダクトについて 2021年7月創業のテクノロジースタートアップ 建設生産プロセスの生産性・安全性の向上を実現するデジタル ソリューション「Smart Construction®」を開発・保守 相互連携する複数のソフトウェア・ハードウェアの形で提供 プロダクトの一部は世界20カ国以上で利用 本セッションについて 関数型プログラミング(FP)を学んでも、実務での活用方法に悩む方は少なくありません。純粋関数、イミュータブルな値、モナドなどの概念を、具

                                        Pragmatic Functional Programming in TypeScript
                                      • ClaudeでPerlのコードを生成する / きのこカンファレンスの前夜祭で登壇しました - Blog::kobaken

                                        きのこカンファレンスの前夜祭で、 わいとんさんと、Perlの生きのこりと題して、登壇しました。内容は、1990年頃のPerlのCGIから、2025年現在までの歴史を駆け上がり、ClaudeでPerlのコードを生成する内容です。貴重な機会をいただき、ありがとうございました! ここではClaudeによるPerlコード生成に関して、落ち穂拾いしたいと思います。 speakerdeck.com github.com Claudeは、Anthropic社によって開発された生成AIツールです。登壇では、Claude Desktopを利用して、インターネット掲示板に更新、削除のAPIを生やすデモをしました。プロンプトは以下の通りです。(正確には、この用意したプロンプトと違ったプロンプトを投げていたことに登壇後に気づき、焦りました😇 本来お見せしたかったものを共有します。) このプロンプトを投げ込むと期

                                          ClaudeでPerlのコードを生成する / きのこカンファレンスの前夜祭で登壇しました - Blog::kobaken
                                        • オブジェクト指向考古学 〜人類は再びDCIの夢を見るか〜

                                          トランザクションスクリプトはどこから来たのか トランザクションスクリプトは何者か トランザクションスクリプトはどこへ行くのか #sekkeinight

                                            オブジェクト指向考古学 〜人類は再びDCIの夢を見るか〜
                                          • 『データ指向プログラミング』読んだ / OOP以前とDOPとの対比と差分などについて - Lambdaカクテル

                                            先々月あたりに邦訳が出た『データ指向プログラミング』を読んだ。めちゃくちゃざっくり言うとオブジェクト指向における「データと振舞いの一体化」というドグマを手放させるもので、めちゃくちゃざっくり見るとC言語的な構造化プログラミングの世界に回帰するようにも見えることから、世間的には色々な評価があるらしい。 イミュータビリティが良い、みたいな話は重々承知なので適宜飛ばしながら読んだ。また、lodashまわりの話は単なるライブラリ紹介であり、特筆することがないので飛ばした。 こういう感じで言及されている zenn.dev slides.com 自分なりに読んで思ったことをまとめる。面白い本だったし、自分の思想にも近しいものがある。僕は普段ScalaやTSを書いているので、その観点からの感想が多いです。OOPの歴史に詳しいわけではないので、不足があったらすみません。 OOP以前の世界との差異 イミュー

                                              『データ指向プログラミング』読んだ / OOP以前とDOPとの対比と差分などについて - Lambdaカクテル
                                            • クラスが増えても大丈夫!成長するソフトウェアを支えるリファクタリングの技術 - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」

                                              開発部門(基盤本部)でエンジニアの育成を担当している高玉です。 基盤本部ではさまざまな勉強会を開催しています。先日も、BIGLOBE Styleでその様子をご紹介しました。 style.biglobe.co.jp 「クラスを増やすの、怖くないですか?」 オブジェクト指向プログラミング(OOP)を学んでいた時に聞かれたことです。業務ではJavaやドメイン駆動設計を活用しているので、クラスベースのOOPが題材になることが多いのです。OOPに慣れていない人からすると、クラスの数が増えることで全体を把握しづらくなったり、適切なクラスを見つけるのが大変になりそう、と感じるそうです。 「大丈夫!クラスを増やしたほうが楽になることがあるよ!」 と伝えたくて、この記事を書かせていただきました。何が楽になるのでしょう?それは、ソースコードを読むこと、です。「クラスを増やすと、ソースコードを読むのが楽になる?

                                                クラスが増えても大丈夫!成長するソフトウェアを支えるリファクタリングの技術 - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」
                                              • 2000年代のオブジェクト指向はやはり洗脳だったのか - naoya2kの日記

                                                2000年から2010年にかけて僕はとある大きな会社でJava技術に関しての重鎮の一人だった。組み込み系なので「Javaの重鎮=Javaの処理系を作れたり速くて省メモリなプログラムを作れたりする」であり、オブジェクト指向べったりということにはならず、僕らは結局洗脳されていなかった。そもそもJavaの処理系は全てが全てオブジェクト指向で書かれているわけではなかった(でもクラスライブラリの実装はJavaの各クラスが何なのかを正しく理解するのにとても役立った)。 C++と比べて比較的遅いJavaで、当時の組込みプロセッサで十分な速度を出そうとすると、オブジェクト指向をピュアに推進するわけにはいかなかったというのも理由のひとつだった。 daiyamamoto.hatenablog.com そんなわけで僕がいた世界ではJavaエンジニアはスーパースターではなかった。世界のJavaの潮流からは微妙にズ

                                                  2000年代のオブジェクト指向はやはり洗脳だったのか - naoya2kの日記
                                                • 現在地からオブジェクト指向プログラミングを捉えなおす、リ・オリエンテーション【OCC2024基調講演レポート】

                                                  AI時代の開発にオブジェクト指向は必要か、現代の開発における「オブジェクト指向プログラミング」とは何か──。3月24日に開催されたObject-Oriented Conference 2024で「オブジェクト指向のリ・オリエンテーション〜歴史を振り返り、AI時代に向きなおる〜」と題して羽生田 栄一氏が基調講演を行った。 「オブジェクト」とは? Alan Kayより、3つのメッセージ 講演冒頭、羽生田氏は「リ・オリエンテーション」と題した本セッションの意図を、以下のように説明した。 株式会社 豆蔵 取締役 羽生田栄一氏 「一つは『オブジェクト指向ってこんなもんだよ』というオリエンテーションをするということ。もう一つは、そうは言っても『AI時代にオブジェクト指向いらないんじゃないの』という声もあるので、単純にオブジェクト指向にどういう方向性があり得るのか『向き直る』という意味をかけています」

                                                    現在地からオブジェクト指向プログラミングを捉えなおす、リ・オリエンテーション【OCC2024基調講演レポート】
                                                  • https://twitter.com/pospome/status/1543119869100826624

                                                      https://twitter.com/pospome/status/1543119869100826624
                                                    • ICONIXプロセスから学ぶオブジェクト指向モデリング/ICONIX for Object-Oriented

                                                      2020.08.21 チェンジビジョンセミナー 株式会社ミライトデザイン CEO 林 宏勝 - なぜオブジェクト指向にモデリングは必要なのか? - ICONIXプロセスを使用したドメインモデリング https://astah.change-vision.com/ja/events/s…

                                                        ICONIXプロセスから学ぶオブジェクト指向モデリング/ICONIX for Object-Oriented
                                                      • リファクタリングとデザインパターン

                                                        ハロー、 ワールド! Refactoring.Guru を使えば、 リファクタリング、 デザインパターン、 SOLID 原則、 その他の賢明なプログラミング技法について、 知っておくべきことを簡単に見つけ出せます。 このサイトでは、 大局的観点、 お互いの関連、 なぜ重要かなどを説明します。 筆者は勿論これらの概念を発明したわけではありません。 ほとんどは、 今や過去となってしまった 20 世紀に発明されています。 しかし、 多くのプログラマーにとって、 リファクタリングとパターンと一般的プログラミング原則のつながりは、 謎の部分が多いと思います。 私はこの問題を解決したいと思います。 追伸 リファクタリングとデザインパターンに関する大量の情報を、 このサイトで見つけることができます。 当プロジェクトは常時改善していますが、 進捗状況を知るには、 メーリングリストに登録するか、 Faceb

                                                        • Operating Lambda: イベント駆動型アーキテクチャの設計原則 – Part 2 | Amazon Web Services

                                                          これらのサービスは Lambda と統合するように設計されており、Infrastructure as code (IAC) を使用してサービス内のリソースを作成、および破棄できます。アプリケーションをインストールしたりサーバーを設定したりすることなく、AWS SDK 経由でこれらのサービスを利用できます。Lambda 関数のコードを使用して、これらのサービスを使用することに習熟することは、適切に設計されたサーバーレスアプリケーションを作成する上で重要なステップです。 抽象化のレベルを理解する Lambda サービスは、Lambda 関数を実行する基盤となるオペレーティングシステム、ハイパーバイザー、ハードウェアへのアクセスを制限します。このサービスはインフラストラクチャを継続的に改善し変更することで、機能の追加、コストの削減、サービスのパフォーマンスの向上を実現します。あなたのコードはLa

                                                            Operating Lambda: イベント駆動型アーキテクチャの設計原則 – Part 2 | Amazon Web Services
                                                          • Polly Want A Message (DeconstructConf)

                                                            Object-oriented languages have opinions about how best to arrange code. These opinions lead OO to naturally offer certain _affordances_. Just as round doorknobs expect to be grasped and rotated, OO expects messages, polymorphism, loose-coupling and factories. The key to creating intuitive and maintainable OO applications is to understand and embrace these built-in affordances.

                                                              Polly Want A Message (DeconstructConf)
                                                            • ドメイン駆動設計に15年取り組んでわかったこと 「ビジネスルール・値オブジェクト・型」が3つのキーワード | ログミーBusiness

                                                              株式会社ビープラウドが主催するIT勉強会「BPStudy」。#151となる今回は、設計の代表格であるオブジェクト指向、モデリング、そして設計にフォーカスをあて、LT大会を開催しました。「ドメイン駆動設計に取り組んだ15年でわかったこと 」に登壇したのは、ドメイン駆動設計に15年取り組み続けている増田亨氏。ビジネスルールと値オブジェクトと型という3つのキーワードを軸に、ドメイン駆動設計をソフトウェア開発に落とし込む方法論について語りました。講演資料はこちら ビジネス活動に起因する複雑さに立ち向かうドメイン駆動設計増田亨氏(以下、増田):よろしくお願いします。私は2006年ぐらいからドメイン駆動設計に実際に取り組んで、15年ぐらいやっているんですけど、今日はそれを私なりにわかったことというか、けっこう最近振り切ってこうやってますよという内容を、みなさんの参考になればと思って少しお話しします。

                                                                ドメイン駆動設計に15年取り組んでわかったこと 「ビジネスルール・値オブジェクト・型」が3つのキーワード | ログミーBusiness
                                                              • ゲームプログラム オリジナルデザインパターン紹介 Try-Can-Do  - Qiita

                                                                はじめに RPGでHPクラスにHPを減らすメソッドを作るとき。 this.hp.Decrease(10)と書いたコードが、HPが0以下だとそもそも実行されてなくて困ったってことありませんか? アニメだけは動いてほしかったのにッ! Try-Can-Doパターンを導入すれば、この問題を解決できます。 今回は僕がゲームプログラムでメソッドの命名によく使っている Try-Can-Doパターン を紹介します。 Unity環境で開発しているので C# で書きますが、他の言語でもご利用できます。 自己紹介 こんにちは、ウェレイと申します。\うぇ~い/ Overdugeon や Craftopia のプログラムを少し書いた人間です。 よろしくお願いします。 基本的な使い方、その前に。 CharaクラスとHPクラスの設計を書いておきますね。 public class Character { private

                                                                  ゲームプログラム オリジナルデザインパターン紹介 Try-Can-Do  - Qiita
                                                                • Railsのデザインパターン: Interactorオブジェクト

                                                                  InteractorオブジェクトとはInteractorオブジェクトとは「デザインパターンのひとつで、ビジネスロジックをカプセル化するためのモデル層に属するクラス群」です。ひとつのInteractorオブジェクトはひとつの責務をもちます。 「ひとつの責務」とは、たとえば「記事を投稿する」「決済を行う」という、それ以上分割できない責務です。またInteractorオブジェクトを使うための共通のインタフェースが定義されます。 Interactorオブジェクトと同じ役割として、Serviceオブジェクトがあります。ただ、Railsの文脈で語られるServiceオブジェクトは定義があいまいで、特定のルールをもちません。ルールがないとインタフェースが統一されず、また複数の責務をもってしまうといった問題が生じます。 Interactorオブジェクトはビジネスロジックをカプセル化する役割をもち、インタフ

                                                                    Railsのデザインパターン: Interactorオブジェクト
                                                                  • オブジェクト指向設計の5つの原則「SOLID」を解説

                                                                    オブジェクト指向プログラミングにある程度精通していれば、この開発スタイルが、特定の言語やフレームワークの選択よりも、基礎となる設計手法に深く関わっていることを知っているだろう。オブジェクト指向の適切な設計については数多くの主張や見解があるが、「SOLID原則」は、オブジェクト指向設計に携わる全ての開発者が従うべきルールとして、その権威を確立している。 SOLIDの原則を真に理解するには、この原則が推奨する個々の設計プラクティスについて学び、「各原則を並べて議論する必要性」を理解しなければならない。そこで本稿では、SOLIDが表すオブジェクト指向設計の5つの原則をそれぞれ確認する。「各原則がどう違うか」ではなく「各原則を相互に結び付ける根本的な概念とは何か」について説明する。 オブジェクト指向設計のSOLID原則とは オブジェクト指向プログラミングには特有の5つの原則がある。この5つの原則は

                                                                      オブジェクト指向設計の5つの原則「SOLID」を解説
                                                                    • The plan-execute pattern

                                                                      The plan-execute pattern ✏ 2024-06-20 ✂ 2024-06-20 Background Plan Execution Build system example Instances and relatives Conclusion I feel uneasy about design patterns. On the one hand, my university class on design patterns revived my interest in programming. On the other hand, I find most patterns in the Gang of Four book to be irrelevant to my daily work; they solve problems that a choice of p

                                                                      • Ruby on Railsのデザインパターンまとめ

                                                                        この記事はRails Advent Calendar 2020の24日目の記事です。今月中旬に見てみたら24日だけ空いていたので参加を申し込みました。よろしくお願いいたします。 Ruby on Railsアプリケーションのディレクトリ構成としては、大きくmodelsとcontrollers、viewsがあります。ここにコードを書いていくことになります。実装が進むにしたがって問題になりやすいのが、Fat ModelやFat Controllerといったコードの肥大化に関する問題です。これは適切にデザインパターンを導入することで防ぐことができます。 この記事では、Railsにおけるデザインパターンとはなにか、その必要性やデザインパターンの一覧について書いていきます。なお、Railsアプリケーションの開発についてより詳しく学びたいときに参考になる本を次の記事でまとめています。あわせてご覧ください

                                                                          Ruby on Railsのデザインパターンまとめ
                                                                        • 49. GoFデザインパターンとDI + リファクタリング (後編) w/ twada | fukabori.fm

                                                                          話したネタ DIを勉強したい場合には何を参照する? 書籍: Dependency Injection Principles, Practices, and Patterns Laravel Pimple 書籍: Clean Architecture 達人に学ぶソフトウェアの構造と設計 単行本 GoFデザインパターンは、なぜここまで普及したのか? OOPを理解するきっかけになったため 差分プログラミングの誤解 継承には悪い面も多い 書籍: 増補改訂版Java言語で学ぶデザインパターン入門 OMT法とUML Don’t Repeat Yourself 原則 と 差分プログラミング 差分プログラミングは、継承以外の手法でも実現できる is-a と has-a 構造ではなくて、責務・振る舞いについてプログラミングする DIコンテナ と Main関数 継承があるデザインパターンの現代における利用価値

                                                                            49. GoFデザインパターンとDI + リファクタリング (後編) w/ twada | fukabori.fm
                                                                          • オブジェクト指向歴25年のオブジェクト指向おじさんが語るオブジェクト指向設計の処方箋 - Qiita

                                                                            Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事のターゲット この記事は以下の人々を対象としています。 オブジェクト指向を一通りわかっている人。 オブジェクト指向の設計力を高めたい人。 オブジェクト指向を使っているのに、設計が綺麗にならず悩んでいる人。 プログラムが大きくなるとオブジェクト指向設計が破綻する人。 オブジェクト指向に限界を感じている人。 共同開発メンバーの設計力に差があって困っている人。 以下の人は対象外です。 オブジェクト指向が何なのかわからない人。 オブジェクト指向を極めている人。 関数型など別のパラダイムに活路を既に見いだしている人。 オブジェクトは責任ベ

                                                                              オブジェクト指向歴25年のオブジェクト指向おじさんが語るオブジェクト指向設計の処方箋 - Qiita
                                                                            • [初心者向け]破滅的なクソコードを書かないために意識したい3つのこと - Qiita

                                                                              この記事で伝えたいこと ここでは、私が設計を勉強しながらコーディングした経験から、初心者でも簡単に実践できる簡単なルールを3つピックアップしました。 一つのクラスは150行以内に収める 循環参照はしない 継承はしない この3つを守れば、破滅的なクソコードであれば割と簡単に防げるかと思います。 この記事における「破滅的なクソコード」は「一切のリファクタリングの余地も残されていないほどのコード」を意味し、この記事の目的は、「破滅的なクソコード」から、「最低限リファクタリングすればなんとかなるコード」になる程度の手法を紹介することです。 マサカリは大歓迎ですがお手柔らかにお願いします。 読む上で留意して欲しいこと この記事はあくまで 「初心者のための破滅的なクソコードを書かないための簡単な方法論」 であって、「効率的で分かりやすい設計の方法論」ではありません。 この3つは「銀の弾丸」ではないです

                                                                                [初心者向け]破滅的なクソコードを書かないために意識したい3つのこと - Qiita
                                                                              • オブジェクト設計スタイルガイド

                                                                                オブジェクト設計において、コードの読みやすさ、書きやすさ、メンテナンス性を向上させるにはどうすればよいでしょうか? 本書は、より良いオブジェクト指向のコードを書くためのルールを紹介します。オブジェクトの種類に応じたオブジェクトの構築、メソッドの定義、状態の変更や公開など、設計ルールを説明します。Java、Python、C#など、あらゆるオブジェクト指向言語に適用できるテクニックを、擬似コードを使ってわかりやすく解説します。コードの品質を上げるためのルールを紹介する本書は、プログラマ必携の一冊です。 まえがき 序文 本書について 1章 オブジェクトを使ったプログラミング入門 1.1 クラスとオブジェクト 1.2 状態 1.3 振る舞い 1.4 依存関係 1.5 継承 1.6 ポリモフィズム 1.7 コンポジション 1.8 クラスの整理 1.9 Return文と例外 1.10 ユニットテスト

                                                                                  オブジェクト設計スタイルガイド
                                                                                • Serverless×Terraformモジュール設計のベストプラクティスの検討~IoTデータ収集基盤の例~ | DevelopersIO

                                                                                  以下公式ドキュメントから画像を引用します。モジュールごとの詳細については公式をご確認ください。 引用元: Module Creation - Recommended Pattern | Terraform - HashiCorp Learn 変更頻度や役割に応じてモジュールを分けることが明文化されています。 基本的には上記の方針に乗っ取って開発することで、リスクが少なく、スムーズに開発を進められると思います。 問題点 従来通りのWebアプリケーションの設計なら上記の設計で、後はモジュール内をVPC、RDSなどの単位で分割しても問題ないと思います。 しかし、Serverlessアプリケーション開発の場合はサービス間の結合が分かりづらくなる問題があるかと考えます。例えば以下のようにIAM、IoT Core、Lambda、S3をそれぞれ別のモジュールに分割して構築するとします。 上記の構築の場合

                                                                                    Serverless×Terraformモジュール設計のベストプラクティスの検討~IoTデータ収集基盤の例~ | DevelopersIO

                                                                                  新着記事