並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 260件

新着順 人気順

oopの検索結果81 - 120 件 / 260件

  • 削除のビジネスロジックをドメイン層に閉じ込める簡単で強力な「DeletableIDパターン」の紹介

    この記事は 株式会社ログラス Productチーム Advent Calendar 2023 13日目の記事です。 はじめに 〇〇を削除できるかどうかのビジネス処理、皆さんはどう実装していますか? 同僚の話題になった記事でも削除の認可処理をどこに記述すべきか?は難しいと説明されています。今回はお題は認可っぽいもので書きますが広範に「削除ができるかどうか?」のビジネスロジックをドメイン層にどう閉じ込めるかの便利な実装パターンを紹介します。 削除処理のビジネスロジックの取り扱いは難しい 削除処理のビジネスロジックの実装はシンプルだけど更新処理や作成処理と比べて意外と難しいです。 それはなぜかというとドメインオブジェクト内の実装に削除処理を書くことができないからです。 例えば権限に管理者と一般ユーザーの二つの権限があるとします。

      削除のビジネスロジックをドメイン層に閉じ込める簡単で強力な「DeletableIDパターン」の紹介
    • Unityにおける設計パターン

      CA.unity #1 2021/02/19 https://meetup.unity3d.jp/jp/events/1271

        Unityにおける設計パターン
      • DIすると何がいいんだっけ

        はじめに こんにちは、majimaccho です。 読者の皆さんは最近、DI(Dependency Injection:依存の注入)してますでしょうか。 DI は素晴らしい仕組みである一方で全く DI しない Ruby on Rails のようなフレームワークが支配的な時代もありました。 それでも DI は今でも有用な考え方として残っている中で、DI にどう向き合っていけばいいのでしょうか。自分なりに考えをまとめるために調べてみたので、同じような疑問を持っている方に参考になれば幸いです。 TL;DR 単純にコード量が増加することに加え、DI の仕組み自体が複雑さを内包しているので開発生産性が低くなることがあります。そのため、DI は言語によっては局所的かつ限定的に利用する方が良い場合があります。 いくつかの工夫によって DI が持つメリットを享受しつつ、不要な複雑さを排除して、シンプルかつ

          DIすると何がいいんだっけ
        • 現実世界の事象から学ぶSOLID原則

          # Object-Oriented Conference 2024 https://fortee.jp/oocon-2024/proposal/e1eb34cf-78ef-43f6-8a03-bb26c996cb62 概要 オブジェクト指向プログラミング (OOP) のコーディング慣例として広…

            現実世界の事象から学ぶSOLID原則
          • DDDとORMのEntityを混同しないための考え方

            2つの ”Entity” ある種の ORM では RDB のテーブルスキーマモデルとなるクラスのことをEntityと呼んでいます。例えば PHP のDoctrineや TypeScript のTypeORMなどがそうです。 そういった ORM を採用したプロジェクトで DDD に取り組むとき困るのが用語の衝突です。ORM の Entity は RDB のための定義を含むため当然 DDD の Entity とは異なるのですが、なにぶん同じ名前なので混同してしまいがちです。 本記事では両者を混同せず扱うための考え方をまとめます。 Entity の定義 まずは定義から確認します。 DDD での定義 エヴァンス本の日本語訳から引用します。 主として同一性によって定義されるオブジェクトはエンティティと呼ばれる Eric Evans. エリック・エヴァンスのドメイン駆動設計 (Japanese Edi

              DDDとORMのEntityを混同しないための考え方
            • DDDの正体は実装パターンとモデリングの組み合わせ - パンダのプログラミングブログ

              PoEAA を通して DDD の半分を理解する マーティン・ファウラーの PoEAA を読んでから、DDD のことを考え続けている。今まで DDD の話題はあえて避けてきた。分厚く難解な書籍、増えるコード量、教祖とその信徒たち(MV)、全てをその視点から解釈しようとする試み、少しでも間違えたら求められる自己批判、無知な者に対する SNS 上のオルグ、いつまでも出てこない総括、それでも信じるものは救われる。「一匹の亡霊がIT界隈を徘徊してる。DDDという亡霊が...」 まあ早まらないでほしい。何も DDD こき下ろそうというわけではない。自分の実力不足が主な原因と思い、深入りする前から「わからないもの」と決めつけていた DDD は、PoEAA というライトに照らされてその姿を私の前に姿を表し始めた。それは亡霊ではなく、確固たる手触りのある実体(Entity)だったのである。 PoEAA は

                DDDの正体は実装パターンとモデリングの組み合わせ - パンダのプログラミングブログ
              • ドメイン固有型(値オブジェクト含む)を再考する - かとじゅんの技術日誌

                Value Objectが盛り上がっているらしい。 Value Objectについて整理しよう - Software Transactional Memo Value Objectの説明に異論がないものの、主題はValue Object Obsessionのほうですよね。 こちらも聞いてみた。 fukabori.fm よい機会なので、よくわかっているつもりの、値オブジェクトというかドメイン固有型について再考してみよう。 それは値か属性か それはエンティティの全メンバーやデータベースの全列のために「顧客郵便番号」「送付先郵便番号」「事業所郵便番号」「契約日」などのクラス(メンバではなくクラス!)を定義して、immutableな振る舞いを強制する事を以てValue Objectであると言い張り、ドメイン知識の断片をそれぞれのクラスに書き散らして「高凝集になった」「型システムが守ってくれる」と喜

                  ドメイン固有型(値オブジェクト含む)を再考する - かとじゅんの技術日誌
                • マインスイーパでオブジェクト指向の設計を学んだ

                  はじめに オブジェクト指向の学び方について悩んだことはありませんか? 私は設計の技術書を読んでもイマイチ腹に落ちない感覚を何度も味わってきました。 本記事では、「マインスイーパ」を題材としてオブジェクト指向の設計をします。私はこの設計を通じてオブジェクト指向がチョットワカルになったので是非最後まで読んでいただけると嬉しいです。 対象読者 オブジェクト指向を学びたい方 ソフトウェア設計の技術書を1冊読んだことがある方 ソフトウェア設計に興味がある方 (番外編にて)Rubyのメタプログラミングを学びたい方 サンプルコード サンプルコードはこちらです。 メインロジックはRubyで書かれていますが、WebAssembly上で実行可能にするruby.wasmを利用しています。そのため、Rubyの実行環境がなくてもhttpサーバーを立ち上げてブラウザからindex.htmlにアクセスすればマインスイー

                    マインスイーパでオブジェクト指向の設計を学んだ
                  • オブジェクト指向プログラミングは終わった カプセル化が悪い(感想戦) - Qiita

                    が(良くも悪くも)注目頂き、その観測で思ったことのメモです。1年後の自分用です! もっかい言いたいこと再考のポエムです。 概要 関数型には意図的に触れたくなかった 継承や再利用性への懐疑の共通認識 抽象化戦略開発戦略で補う話 タイトルは釣り 抽象化という言葉のふわっと感 カプセル化が問題 関数型言語には意図的に触れたくなかった ポリモーフィズムのくだりで、関数型のご指摘が多かったのですが、あえて直接は触れたくありませんでした。これは、オブジェクト指向 vs 関数型にしたくなかったからです。(結果、Rust/Goに被弾させました) なぜかと言えば、オブジェクト指向を(結果として)衰退させたのは、あくまでも 開発手法の変化 や設計論の精錬が主軸だと認識しています。 不確実性に適応する上で、継承やカプセル化による状態隠匿という戦略が、良い筋に動かず、オブジェクト指向なりに変化を遂げた結果だと考え

                      オブジェクト指向プログラミングは終わった カプセル化が悪い(感想戦) - Qiita
                    • ポリモーフィズムが1種類しかないと思ってたエンジニアの備忘録

                      この記事は毎週必ず記事がでるテックブログ Loglass Tech Blog Sprint の72週目の記事です! 2年間連続達成まで残り34週となりました! はじめに ソフトウェアエンジニアの福土(@ryoya_cre8or)です。 ふと社内のSlackで「ポリモーフィズムを使っているときに、冗長になるコードをジェネリクスを使うことで綺麗にまとめる事ができる」と呟いたところ、「ジェネリクスもポリモーフィズムの1種だよ」とツッコミをいただき、それを機にポリモーフィズムの概念について整理したいと思っていたので、年末年始にオリャっとまとめちゃいます。 実は共変性・反変性の概念を理解する上でもポリモーフィズムの概念を整理することはすごく良かったので、そこまで記事を書き切りたかったのですが息が足りず... 続きは次回とし本記事ではポリモーフィズムが何なのかについてまとめています。 ポリモーフィズム

                        ポリモーフィズムが1種類しかないと思ってたエンジニアの備忘録
                      • 17歳JKだけど、インターン先で「彼氏いるの?」って聞かれた

                        田舎の高校三年生です。 先輩がいるから、って先生の推薦で ワンデイインターンシップ行ってきました。 作業服きた社員さんのうちの一人から「OOちゃんは彼氏いるの?」って 至近距離で聞かれて怖かったです。 ガタイもよくて・・・ 男女比率を聞いてもあいまいにされたし、 男性ばかりの職場だったので毎日やっていける自信がありません。 今からでも先生に言って断った方がいいですよね??

                          17歳JKだけど、インターン先で「彼氏いるの?」って聞かれた
                        • 7 Must Know Software Design Patterns

                          Photo by charlesdeluvio on UnsplashWhy Should We Care About Design PatternsSimply put, design patterns help us solve problems by creating a reusable solution that we can use as a template for our software. That being said, design patterns aren't algorithms and you can't paste them into the code base. They give you a template of sorts, but if misused some patterns may cause additional complexity an

                            7 Must Know Software Design Patterns
                          • プロダクトにドメイン駆動設計を適用するためにはじめたこと - ContractS開発者ブログ

                            こんにちは。最近Slackのカスタム絵文字作りにハマっている友野です。Holmesでサーバーサイドエンジニアをしています。 Holmesが提供するホームズクラウドは、今年8月にサービスローンチ3周年を迎えました! これまでの支持に感謝し、これからも長く使ってもらえるようにプロダクト改善に取り組んでいます。そのひとつとして、ドメイン駆動設計(以下、DDDと表記します)適用に関する取り組みについてご紹介します。似たような状況や同じ課題を持つ誰かの一助になれば幸いです。 背景と現状 まずはじめたこと 戦略的モデリング そして、戦術的な設計 採用するパターン2つ ドメインモデルを反映したオブジェクトを置くパッケージの作成 既存テーブル構造に依存しないRepository+Adapterパターン ふりかえり まとめ 最後に 背景と現状 ホームズクラウドはPMF(Product Market Fit:

                              プロダクトにドメイン駆動設計を適用するためにはじめたこと - ContractS開発者ブログ
                            • リファクタリング自爆奥義集 - Qiita

                              こんにちは、リファクタリングが大好きなミノ駆動です。 この記事は READYFORアドベントカレンダー2021 、13日目の記事です。 これはなに? コードが複雑化し、技術的負債が蓄積していくと、コードの変更が難しくなり、開発生産性が低下していきます。技術的負債の解消にはリファクタリングが必要です。 しかし、リファクタリングの実施には数々の罠やハードルがあります。 下手すると逆に負債を作り込んでしまうといった、自爆技をやりかねません。 この記事は、リファクタリングのアンチパターンと、その対策をまとめたものです。 この記事のゴール リファクタリングには様々なアンチパターンがあることを知る。 アンチパターンにハマらないためのアプローチを知る。 リファクタリングの効果を高めるにあたり、何のために実施するのか意義を理解する。 前提知識 なぜ自爆技となるのか、自爆だと理解するのに必要な前提知識を挙げ

                                リファクタリング自爆奥義集 - Qiita
                              • 難解なソフトウェアをデザインする人にこそお勧めしたいOOUI(オブジェクト指向UI)

                                ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog みなさまこんにちは。ヤフーでデータソリューション事業のUI/UXデザインを担当している、横内です。 2022年11月に弊社が運用するデータ可視化ソフトウェアのDS.INSIGHTで人流データを分析できるPlace機能を大幅アップデートしました。その際使用したOOUIという設計手法から得られた学びをプロジェクトの実例を交えながらご紹介します。 OOUIとは そもそもOOUIとは何者でしょうか。OOUIとは、Object Oriented User Interfaceの略語で、通称オブジェクト指向UIと呼ばれています。 オブジェクトとはその名の通り「役割を持ったモノ」を指す言葉です。例えばお店で買うクロワッサンや、ECサイトでカゴに入

                                  難解なソフトウェアをデザインする人にこそお勧めしたいOOUI(オブジェクト指向UI)
                                • Laravel大規模開発入門!MVC分離のFatModel問題に対する責任分離と依存管理、その設計と考え方について|ハイクラス転職・求人情報サイト AMBI(アンビ)

                                  Laravel大規模開発入門!MVC分離のFatModel問題に対する責任分離と依存管理、その設計と考え方について ナイル株式会社メディアテクノロジー事業本部の工藤さんにMVC分離のFatModel問題に対する責任分離と依存管理、その設計と考え方について解説いただきました。 こんにちは、ナイル株式会社メディアテクノロジー事業本部で開発マネージャをしています工藤@ta99toです。 今回は大規模で複雑度の高い開発をMVCフレームワークベースで構築する際に僕が課題と捉えているポイントやその具体的な解決手法について解説させていただきたいと思います。 「MVC以上の責任分離イメージがつかないよ!」 「DDDとかクリーンとかオニオンとかあのへんの設計パターンの導入モチベーションが不明」 「どうやっても最終的には複雑になって追加開発や修正開発が怖い状態になっちゃう」 ↑このような悩みを持った方に対して

                                    Laravel大規模開発入門!MVC分離のFatModel問題に対する責任分離と依存管理、その設計と考え方について|ハイクラス転職・求人情報サイト AMBI(アンビ)
                                  • 型変換やオブジェクト変換の関数/メソッドに対する習慣や知見

                                    Noriyuki OHKAWA @notogawa データ型Aとその操作を定義しているモジュールX.Y.Aてよく作ると思うけど,型Bと型Aの間の変換操作をX.Y.A内から露出させるときにfromA/toAはやめてくれー.toB/fromBにして欲しい.import X.Y.A as AでA.toB/A.fromBだから. 2016-11-18 09:52:37 Noriyuki OHKAWA @notogawa データ型Aとその操作を定義しているモジュールX.Y.Aてよく作ると思うけど,型Bと型Aの間の変換操作をX.Y.A内から露出させるときにfromA/toAはやめてくれー.toB/fromBにして欲しい.import X.Y.A as AでA.toB/A.fromBだから. 2016-11-18 09:52:37

                                      型変換やオブジェクト変換の関数/メソッドに対する習慣や知見
                                    • オブジェクト指向は継承で多態するプログラミング - きしだのHatena

                                      オブジェクト指向って継承による多態があるからこそなんだけど、継承が非推奨になって以降に雰囲気でオブジェクト指向を知った人には、継承はオプションでカプセル化だけでオブジェクト指向って言ってしまいがちに思います。 実際はカプセル化はオブジェクト指向固有じゃなくて、クラスでカプセル化を実現してるだけです。 さまざまな人のオブジェクト指向の定義 本来ならどのように継承こそがオブジェクト指向なのかという説明をするんですが、かなり長くなりそうなので、とりあえずはいろいろな人たちのオブジェクト指向の定義を抜き出してみます。 「ここに挙がってるのはオブジェクト指向の一派にすぎない」というような意見もありますが他の派閥についてまとまって定義され共通認識になっているようなものは見当たらないので、プログラミングの指針には なりづらいと思います。 ストラウストラップ C++を産んだストラウストラップは「C++の設

                                        オブジェクト指向は継承で多態するプログラミング - きしだのHatena
                                      • なぜUserクラスは負債化しやすいのか “風刺動画”から理解する情報システム開発とモデリング | ログミーBusiness

                                        「“開発者体験”で世界をエンパワメントする1日。」と題し、チームや組織の課題に日々取り組む方々に向けて開催された「Developer eXperience Day CTO/VPoE Conference 2021」。ここで、READYFOR株式会社の仙塲氏が「『Userクラス』で考える技術的負債解消の観点」をテーマに登壇。まずは情報システム開発とモデリングの定義について紹介します。 クソコード動画『Userクラス』仙塲 大也(以下、仙塲氏):こんにちは。ミノ駆動と言います。不運な時間がやってまいりました。まじめなセッションだらけなのに、はたしてこういう動画を流していいものかと。完全にネタ枠です。 このセッションの説明です。多くのサービスで技術的負債になりやすい筆頭格として、Userクラスがあります。本セッションでは、Userクラスの負債により引き起こされる弊害を描いた、風刺動画を上映します

                                          なぜUserクラスは負債化しやすいのか “風刺動画”から理解する情報システム開発とモデリング | ログミーBusiness
                                        • つらくないRepositoryパターンを求めて

                                          この記事は SMat Advent Calendar 2024 の12月11日分の記事です。 こんにちは。エスマットエンジニアの金尾です。 皆さんはリポジトリパターンでつらい思いをしたことはありますか? 僕はあります。 本記事はそもそもリポジトリパターンとはどういう実装パターンなのかについて検討した内容をまとめたものです。なお文中に出てくるコードはGo言語を前提としています。 リポジトリパターンとは リポジトリパターンとは、ドメインモデルのデータ処理をアプリケーションの他の部分から分離する実装パターンです。 対応するドメインモデルのCRUDや集計のメソッドを提供し、データストレージに関する処理をカプセル化します。 各クライアントは、データストレージのマッピング処理を考えずにUserモデルを利用できる なぜリポジトリパターンを使うのか リポジトリパターンを使うことによって以下のメリットが期待

                                            つらくないRepositoryパターンを求めて
                                          • Python3.7以上のデータ格納はdataclassを活用しよう - Qiita

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

                                              Python3.7以上のデータ格納はdataclassを活用しよう - Qiita
                                            • 学生の頃オブジェクト指向にハマって継承を繰り返していた後輩が泣きついてきた時にあの人が現れて解決した話

                                              垂木いすゞ @Isuzu_T このアカウントは誰向きでもありません。発言を読んだことに起因する不快感に関して当アカウントは責任を負いかねます。フォロー・リムーブ・リプライはご自由に。挨拶不要。反応するかは気分次第です。このアカウントはエロ、愚痴、政治、アニメ実況、不謹慎ジョーク、その他一切の言動を自重しません。サイバーイグアナ氏フォロー中 垂木いすゞ @Isuzu_T 学生の頃の話だ。 当時、僕が所属していたプログラミングサークルの後輩が、オブジェクト指向にはまっていた。僕はオブジェクト指向がなんなのかよくわからず、構造体に毛の生えたような使い方しかしていなかったのだが、後輩は継承にドハマリし、あらゆるコードで継承を使っていた。 垂木いすゞ @Isuzu_T 「継承って使いすぎると良くないって聞くけどね」 僕はそう言ったが、聞き齧りなので理由は説明できなかった。なので後輩も当然納得せず、継

                                                学生の頃オブジェクト指向にハマって継承を繰り返していた後輩が泣きついてきた時にあの人が現れて解決した話
                                              • PHPで学ぶオブジェクト指向プログラミング入門 / Introduction to OOP with PHP

                                                PHP Conference Japan 2021 で発表した「PHPで学ぶオブジェクト指向プログラミング入門」のスライドです。 # URL PHP Conference Japan 2021: https://phpcon.php.gr.jp/2021/ CfP: https://forte…

                                                  PHPで学ぶオブジェクト指向プログラミング入門 / Introduction to OOP with PHP
                                                • クラス設計本格入門 JJUGナイトセミナー 2021-6-16

                                                  イベントの動画 : https://www.youtube.com/watch?v=2Z1CJhPk-f8 オブジェクト指向プログラミングはクラス設計。 クラス設計はプログラムの分割。 クラス設計の焦点は、ビジネスルールを表現するクラスと、ビジネスアクションを表現するクラス。 クラス設計やパ…

                                                    クラス設計本格入門 JJUGナイトセミナー 2021-6-16
                                                  • 【オブジェクト指向プログラミング】誰のもの?で理解するインターフェース

                                                    前置き 背景 オブジェクト指向プログラミングのインターフェースについて、以下のような例で学んだ方は多いのではないでしょうか。 public interface Animal { void bark(); } public class Dog implements Animal { void bark() { System.out.println("ワン"); } } public static void main(String[] args){ Animal animal = new Dog(); // Animal型の変数にDogインスタンスを代入できる animal.bark(); } 上記は極端な例ですが、 「 Dog dog = new Dog(); と比べて何がいいの?」 という疑問に答えてくれる情報をなかなか見つけることができず、言語仕様と割り切って覚えてきた方は、実際に多いの

                                                      【オブジェクト指向プログラミング】誰のもの?で理解するインターフェース
                                                    • Patterns.dev

                                                      Improve how you architect webappsPatterns.dev is a free online resource on design, rendering, and performance patterns for building powerful web apps with vanilla JavaScript or modern frameworks.

                                                        Patterns.dev
                                                      • (修正)機械学習デザインパターン(ML Design Patterns)の解説

                                                        データマイニングや機械学習をやるときによく問題となる「リーケージ」を防ぐ方法について論じた論文「Leakage in Data Mining: Formulation, Detecting, and Avoidance」(Kaufman, Shachar, et al., ACM Transactions on Knowledge Discovery from Data (TKDD) 6.4 (2012): 1-21.)を解説します。 主な内容は以下のとおりです。 ・過去に起きたリーケージの事例の紹介 ・リーケージを防ぐための2つの考え方 ・リーケージの発見 ・リーケージの修正

                                                          (修正)機械学習デザインパターン(ML Design Patterns)の解説
                                                        • DIP(依存性逆転の原則)を守っていない話

                                                          一昨日くらいに 「DIP してもどうせ辛くなるよね」的なことを適当にツイートしたら引用 RT や RT 後言及やエアリプで言及された上に「こいつは設計を何も理解しとらん」みたいなことを言われた。「俺は本当に何も理解していないのか?」と不安になったので、自分の考えをちゃんと書いておこうと思った。先に自分の立場を言うと、なんたらアーキテクチャとか SOLID 原則は有用だし自分も使うが、それを厳守しようとは思っていないと言う立場だ。 DIP とはなんだったか DIP(依存性逆転の原則)は SOLID 原則の一つで、一言で言うと「抽象に依存させると依存関係が逆転する」といったものだ。何のことやらという風になるので例だけ挙げると、UserRepository と UserService があってこのように定義すると class UserRepository { get() { return dat

                                                            DIP(依存性逆転の原則)を守っていない話
                                                          • if しか知らないあなたのためのポリモーフィズム入門

                                                            SES 企業のソフトウェアエンジニア -> ソシャゲ会社のテックリード兼スクラムマスター -> 日系 SIer の社内アジャイルコミュニティオーナー 発言や記載した内容は個人のものであり、所属団体とは関係ございません

                                                              if しか知らないあなたのためのポリモーフィズム入門
                                                            • ありす、宇宙までも・No01「ありす、誕生」

                                                              xqGJBv7HovuW0x3bC3BeAMx3zIwONZm1 xqGJBv7HovuW0x3bC3BeAMx3zIwONZm1 bef799f4b8e2f813e3f8d9f45df3433d

                                                                ありす、宇宙までも・No01「ありす、誕生」
                                                              • オブジェクト指向は単なる【整理術】だよ - Qiita

                                                                Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 概要 掲題の通りです。異論は認めますだからオブジェクト指向警察の皆さん見逃して下さいお願いします。 この投稿は「オブジェクト指向(OO/ object oriented)ようわからん」って人向けになるべくわかりやすく説明しようとする試みになります。一応は「1冊くらいは入門書読んだ人」を対象にしています。 ちなみにぼくのオブジェクト指向力は100メートル走で例えると多分12~13秒台くらいです。よくわからないけど。 オブジェクト指向は難しい? 初めてプログラミングに触れてオブジェクト指向について学び始める時、その概念を理解するのに苦労して

                                                                  オブジェクト指向は単なる【整理術】だよ - Qiita
                                                                • 48. GoFデザインパターンとDI (前編) w/ twada | fukabori.fm

                                                                  話したネタ デザインパターンとは? ソフトウェアパターン 書籍: オブジェクト指向における再利用のためのデザインパターン Gang of Four 進研ゼミみたいなもの Composite パターン デザインパターン以外のソフトウェアパターンとは? アーキテクチャパターン、アンチパターン、コンカレンシーパターン AWSクラウドデザインパターン パターンにはフォーマットがある GoFのデザインパターンはいつ頃生まれたもの? GoFのデザインパターン登場時に、ソフトウェア業界では何が起きていたのか? Ruby 20 周年記念パーティーレポート ―― プログラミング初心者の運営スタッフが見た Ruby コミュニティ C、C++、Perl、Smalltalk、Visual Basic の時代 デザインパターンには、どういうカテゴリがある? 生成・構造・振る舞い Javaのクラスライブラリにおけるデ

                                                                    48. GoFデザインパターンとDI (前編) w/ twada | fukabori.fm
                                                                  • ドメイン駆動設計によるシステム開発

                                                                    システム構築にかかるコスト・期間は20年単位で倍々に増加している。これは「2025年の崖」で示されているレガシーシステムの問題も大きいが、ウォーターフォールモデルで専門家による分業制をとっているシステム開発生産ラインのありようも看過できない。一方、アジャイル開発によるコスト削減や開発期間短縮の効果について、大規模な金融系システムでの実例はまだ少ない。さらに、昨今のマイクロサービスを実現するための設計手法も確立できてはいないと考える。 今回、筆者らチームは「ドメイン駆動設計」を活用し、システム構築コスト・期間を大幅に削減し、かつマイクロサービスに適合するシステム開発の可能性についてのPoCを実施した。

                                                                      ドメイン駆動設計によるシステム開発
                                                                    • 目的を規定せずにモデリングを考えても意味がない - きしだのHatena

                                                                      オブジェクト指向の本では「自転車をモデリングしてみましょう」「鳥をモデリングしてみましょう」ということが、どういうシステムで使うか規定せずによく書かれています。 けれども、モデリングではどういうシステムで使うかということが大事で、それを決めずにモデリングを考えても意味がありません。モデリングすべきはモノではなくシステムのプロセスです。 よく、オブジェクト指向では現実をモデリングするのようなことが言われますね。 例えば鳥が鳴くとして、その一種であるニワトリをどうモデリングするか、ということを考えるとします。 そうすると、まず void 鳴く() { print("コケコッコー"); } のようなメソッドを考えるのですけど、コケコッコーとうまく鳴けるのは鳴き慣れたニワトリです。そのため、鳴くメソッドにカウンターを用意してどんどんうまくコケコッコーになるようにしたくなります。 いや、そもそも、コ

                                                                        目的を規定せずにモデリングを考えても意味がない - きしだのHatena
                                                                      • オブジェクト指向プログラミングとドメイン駆動設計を学ぶのに適切な書籍とおすすめの読む順番 - Qiita

                                                                        オブジェクト指向プログラミングが学べる書籍たち もし私が今から最初から学ぶならこの順番でこの本読むだろうという紹介です。 新人プログラマの方々は右も左も分からないというところからスタートとなるため、オブジェクト指向プログラミングを学ぶときに何から学べば良いか全くわからないという状況かと思います。 オブジェクト指向プログラミングを学んでいると自然と出会うドメイン駆動設計についても同様です。 そうした方々が書籍から学ぼうとした場合に、少しでも効率良く進められる順番を示してあげられれば良いなと思って紹介します。ただし、各書籍についての詳細な説明は書いていません(というか結構忘れててかけない)…。 なお、前提言語はJavaで言語構文にも十分詳しいことが大前提です。 以降、オブジェクト指向プログラミングはOOPと略します。 現場で役立つシステム設計の原則 OOPらしさの雰囲気がわかります 入り口に最

                                                                          オブジェクト指向プログラミングとドメイン駆動設計を学ぶのに適切な書籍とおすすめの読む順番 - Qiita
                                                                        • アンドキュメンテッド ちょうぜつソフトウェア 設計入門 「オブジェクト指向に定義はない」のか?

                                                                          PHPerKaigi 2023 前夜祭の資料です

                                                                            アンドキュメンテッド ちょうぜつソフトウェア 設計入門 「オブジェクト指向に定義はない」のか?
                                                                          • サーバーレスは操作的意味論の夢を見るか? #AWSDevDay / AWS Dev Day 2022 Japan

                                                                            AWS Dev Day 2022 Japan で使用したスライドです。 AWS Lambda を初めとするサーバーレスコンピューティング基盤には、 * 複数の関数が同時に実行され共有リソースにアクセスしうる、本質的に並行システムである * Warm Start により関数インスタンスが内部状態を残したまま再利用されうる * 一つのリクエストに対して複数回の実行が行われうる、いわゆる At-Least-One 特性 といった特性があり、通常のプログラムと比較して実行モデルが複雑かつアンコントローラブルな要素を多く含みます。関数を実装する側はこのような「プラットフォームの都合」を考慮して冪等性など細かい挙動に気を配りつつプログラムを書くことになり、これは一般にかなりの実装コストになります。また、アンコントローラブルな要素は、関数の実装から実際の挙動を静的に検査することを難しくしています。 この

                                                                              サーバーレスは操作的意味論の夢を見るか? #AWSDevDay / AWS Dev Day 2022 Japan
                                                                            • モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―

                                                                              2021/12/21 PHPerKaigi petit - PHP8.1リリース祝賀会 でのトーク「モダンPHPテクニック 12選 ―PsalmとPHP 8.1で今はこんなこともできる!―」のスライドです。発表時点からごくわずかに加筆修正した部分があります。 https://phperkaigi.connpass.com/event/233022/Read less

                                                                                モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
                                                                              • オブジェクト指向でUIを考えられるようになりたい。 - Qiita

                                                                                Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 1. 目的 UIデザインを勉強し始めました。現在「オブジェクト指向UIデザイン-使いやすいソフトウェアの原理」を読んでいます。そのため、学習進行の記録と復習を兼ねて、学んだことを記事にしようと思います。 以下「1. オブジェクト指向UIとは何か」という本書のさわり部分についてまとめています。 この記事で載せている例には私が考えたものも含まれていますので、間違い等ありましたらコメントにてご指摘いただけますと幸いです。 2. オブジェクト指向UI(OOUI) UIをオブジェクト(ユーザーが操作する時の対象物)を起点に設計します。GUIももと

                                                                                  オブジェクト指向でUIを考えられるようになりたい。 - Qiita
                                                                                • オブジェクト指向言語物語

                                                                                  メタデータをダウンロード RIS形式 (EndNote、Reference Manager、ProCite、RefWorksとの互換性あり)

                                                                                  新着記事