タグ

DDDに関するsagasiteのブックマーク (17)

  • フレームワークへの依存をいかに減らすか — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something

    CodeIgniter Advent Calendar 2020 の記事ですが、今日は「フレームワークへの依存をいかに減らすか」というテーマです。 フレームワークの入門書、入門記事、公式ドキュメントには多分出てこない話題です。 フレームワークの罠 CodeIgniter4 についてチュートリアルから始めて、いろいろと書いてきました。 普通にユーザガイドを読んでアプリを開発していこうとすると、アプリは以下のように階層化されます。 黒い矢印は依存です。 MVC パターン 依存とはそれを使うということです。 コントローラがモデル、ビュー、そしてフレームワークに依存します。モデルもビューもフレームワークに依存します。 要するにフレームワークのユーザーが書くコードはほぼ全てフレームワークに依存します。フレームワークと密結合します。フレームワークがないとほとんど全く動きません。 普通にフレームワークを

    sagasite
    sagasite 2021/11/21
    ADOP パターン フレームワークへの依存を減らす方法の 1つに ADOP(Application Domain Others Pattern) があります。
  • ドメイン駆動設計というソフトウェア開発のやり方 - ソフトウェア設計を考える

    この記事はドメイン駆動設計を取り入れたソフトウェア開発を実際にどのようなやり方で進めているかの事例紹介です。 2021年10月のモデルベースで要件定義をやってみた - connpassで発表した資料の解説です。 設計の効果 良い設計は悪い設計よりも変更が楽で安全です。 ドメイン駆動設計は、そういう良い設計を目指すための設計の考え方とやり方の一つです。 ドメイン駆動設計の特徴は次の2つです。 ソフトウェアで扱うさまざまなロジックとデータをドメインに焦点を合わせて整理して記述する 関連するロジックとデータを一つのクラスにカプセル化する ドメインとはソフトウェアの対象領域です。業務アプリケーションであれば、事業活動がドメインです。この記事では、ドメイン(事業活動)に焦点を合わせたクラス設計の考え方とやり方の基的な流れを紹介します。 画面やユースケース中心のソフトウェア開発 アプリケーション開発

    ドメイン駆動設計というソフトウェア開発のやり方 - ソフトウェア設計を考える
  • C# ドメイン駆動設計(DDD)とは何か - sheephumanのブログ

    21/03/11 表示がおかしかったのを手直し。ソースファイルを上げた。MarkDownは編集しにくい。 ドメイン駆動開発とも言われている、ソフトウェア開発手法の僕なりの理解です。 以下の講座を履修して学びました。 C#でドメイン駆動開発パート1【C#でドメイン駆動開発とテスト駆動開発を使って保守性の高いプログラミングをする方法】 | Udemy 自分で作成したソースプロジェクト 具体的な構成 View(UI) ViewModels Entityクラス まとめ 自分で作成したソースプロジェクト ※1 全く同じではありません。かなり手抜きをしてる。一応動きます。 ※2 DbはPupsSQLite(http://www.eonet.ne.jp/~pup/software.html)で作りました。 ※3 どうしても動かないという方は参考にするのもいいかもしれません。自力で組んだ方がいいけどね。

    C# ドメイン駆動設計(DDD)とは何か - sheephumanのブログ
    sagasite
    sagasite 2020/11/01
    >笑う所 → 著作権フリー 商用利用可能 な 【効果音】 笑い声 大勢 一昔前のアメリカのコメディのような、わざとらしい笑い声 - YouTube https://www.youtube.com/watch?v=yGgEHb69Hpo
  • DDD Part 1: Strategic Domain-Driven Design | Vaadin

    This is the first part of our in-depth series on Domain-Driven Design (DDD). Part two discusses tactical DDD, whereas, in part three, you'll learn how to apply DDD to working software using Java and Vaadin. Updated for 2023. Domain-Driven Design (DDD) has been around since Eric Evans published his book about the subject in 2003. I myself came into contact with DDD some years ago when I joined a pr

    sagasite
    sagasite 2020/11/01
  • Fat Modelをリファクタリングする - Qiita

    ActiveRecordのモデルをリファクタリングする方法は「Fat ControllerをリファクタリングしてDDDっぽくする」でも言及しましたが、このエントリではさらに深掘りします。 エンタープライズアプリケーションアーキテクチャパターン(以下、PofEAA)を読んで理解している人向けに手短に表現すると以下の通り。 ActiveRecord(Rails)のモデルを行データゲートウェイ(PofEAA)として使用する ActiveRecord(Rails)のモデルのインスタンスはドメインモデル(PofEAA)のデータホルダーとして使用する データマッパー(PofEAA)によってActiveRecord(Rails)のモデルとドメインモデル(PofEAA)の対応付けを行う PofEAAを読んでいない、読んだけど忘れたという人は続きをどうぞ。 まずはValueObjectなどを見つけて独立させ

    Fat Modelをリファクタリングする - Qiita
    sagasite
    sagasite 2020/11/01
  • エンジニア歴1年の僕がドメイン駆動設計(DDD)を参考にLaravelのプロジェクトをフルリニューアルした話 - Hajimari Tech Blog| 株式会社Hajimari

    こんにちは! はじめまして! 2020年7月からPIECE事業部でエンジニアをさせてもらっています。 野澤です。 今回、PIECEというサービスのリニューアルを担当させてもらったのでその時のことについて書きたいと思います! まだ若輩者なので至らない点が多々あると思いますが フルリニューアルってどんな事したんだろう〜? Hajimariのエンジニアはどんな仕事をしてるんだろう〜? って思った人はぜひ読んで見てください! ※ドメイン駆動設計の説明も書いたのですがボリュームが多くなってしまいました… ドメイン駆動設計について概要知りたいという方は是非読んでみてください。 クリーンアーキテクチャの説明やモデリングのやり方などは説明していません。 ご了承ください。 PIECEリファクタリングプロジェクトの概要 PIECEとはどのようなサービスなのか リニューアルの目的 リニューアル施策 ドメイン駆動

    エンジニア歴1年の僕がドメイン駆動設計(DDD)を参考にLaravelのプロジェクトをフルリニューアルした話 - Hajimari Tech Blog| 株式会社Hajimari
    sagasite
    sagasite 2020/11/01
  • モノリス分割はこうやる!「How to break a Monolith into Microservices」を読んだ - kakakakakku blog

    研修中に「マイクロサービス」の解説をしていると,たまに「モノリス分割」に関する質問が出てディスカッションをすることがある.当然ながら万能な分割アプローチはないけど,例えば DDD (Domain-driven design) などのアプローチを選択するなど,選択肢はいろいろある.そして最近「モノリス分割」に役立つアプローチを紹介した martinfowler.com の記事「How to break a Monolith into Microservices」を読んだ. 具体的には以下の「計8種類」のアプローチが紹介されている.原著を翻訳するのではなく,あくまで個人的なメモとしてまとめる.なお,日語も個人的に載せているため,参考程度にしてもらればと! Warm Up with a Simple and Fairly Decoupled Capability(シンプルかつ分離された機能で準

    モノリス分割はこうやる!「How to break a Monolith into Microservices」を読んだ - kakakakakku blog
    sagasite
    sagasite 2020/11/01
  • Goはクリーンアーキテクチャの思想を活かせるか? DMMのゲームプラットフォームにGo言語を選んだ理由

    DMM GroupのGoの勉強会「DMM.go」。DMM Groupのエンジニアが現場で培った技術やトレンドについて発表していきます。 2回目の開催となる今回登壇するのは、合同会社EXNOA プラットフォーム開発部の PFシステム部に所属する岡崎翔悟氏。「Goとクリーンアーキテクチャ」の内容で、実際の現場にいるからわかるGoの開発やクリーンアーキテクチャについて話していきます。関連資料はこちら。 合同会社EXNOAとは 岡崎翔悟氏:今回「Goとクリーンアーキテクチャ」と題しまして、EXNOAの岡崎が発表いたします。 「EXNOAって何だ?」と思われた方が多数いらっしゃると思うので、まずはそちらの説明から。DMM GAMESは2020年4月10日付でEXNOAに社名を変更しました。ただし、一般作品のブランド名として「DMM GAMES」は残っています。一般作品の「DMM GAMES」とR1

    Goはクリーンアーキテクチャの思想を活かせるか? DMMのゲームプラットフォームにGo言語を選んだ理由
    sagasite
    sagasite 2020/11/01
  • DDDの記事 - SAGA SITE

    はてブで「DDD」をチェックしてみました。 b.hatena.ne.jp DDD(ドメイン駆動設計)に関する記事がいくつか見つかりました。 logmi.jp kakakakakku.hatenablog.com tech.hajimari.inc qiita.com vaadin.com sheephuman.hatenablog.com ここしばらくドメイン駆動設計の勉強から離れていたので、また再開したいと思います。 ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基 作者:成瀬 允宣 発売日: 2020/02/13 メディア: Kindle

    DDDの記事 - SAGA SITE
    sagasite
    sagasite 2020/11/01
  • 「事業がわかるエンジニアがいない」 - timakin.com | Seiji Takahashi (@__timakin__)

    単純に仕事の用事なのですが、俗に言う経営層と言える立場の方々にヒアリングする機会が増えたことで、とあるセリフを頻繁に耳にするようになりました。 「事業の話ができるエンジニアがいないんだよね。当に困りますよ」です。 これは僕が事業の話をできるとかそういうことを言いたいのではなくて、各社の経営層の切実な想いであり1つや2つの組織で聞いた発言ではなく、あらゆる組織で耳にする強烈なペインであると言いたいんです。 当に、文字通り、全ての組織でこの発言を聞きました。 僕個人としては、「え?そうなんですか?結構いると思いますが」って当初反応してたんですよね。何故なら、自分の周りには幸い「技術にだけ興味があるエンジニア」が少ないからでして、彼らがそこまでの切実さで何を求めているのかはっきりとわかっていませんでした。ただ、僕も諸事情あって彼らと似たような視点を持たなければいけない状況になり、この発言の理

    「事業がわかるエンジニアがいない」 - timakin.com | Seiji Takahashi (@__timakin__)
    sagasite
    sagasite 2020/10/01
    ×「事業がわかるエンジニアがいない」→○「事業がわかるエンジニアは独立/転職するので、事業がわかるエンジニアが社内に残っていない」 優秀な技術者を高給で足止めしない経営層はユビキタス言語を知らない無能?
  • なるセミ

    nrs(えぬあーるえす or なるせ)の作った動画です。がんばって作っています。プログラミングの解説や面白そうなことを動画にしていきます。

    なるセミ
    sagasite
    sagasite 2020/09/10
    分かりやすいプログラミングの動画
  • 読みたい本 2020年9月版 - SAGA SITE

    読みたいが溜まっています。 どんどん読めるように現時点での候補をリストアップしておきます。 ドメイン駆動設計 ドメイン駆動設計入門 エリック・エヴァンスのドメイン駆動設計 実践ドメイン駆動設計 Domain Modeling Made Functional プログラミング いちばんやさしい Git 入門教室 計算モデル論入門 計算モデルとプログラミング 入門Haskellプログラミング 基礎からわかる Elm プログラミングの基礎 プログラミング in OCaml プログラミングGauche 数学 イラストで学ぶ 離散数学 集合・位相・圏 圏論入門 ベーシック圏論 中学の知識でオイラーの公式がわかる ぼくと数学の旅に出よう 初歩からわかる数学的ロジカルシンキング これだけ! 高校数学 現代意味論入門 天才少年が解き明かす奇妙な数学! 続・天才少年が解き明かす奇妙な数学! デザイン 図で考

    読みたい本 2020年9月版 - SAGA SITE
  • ドメイン駆動設計を知る必要があるのか

    Twitter → https://twitter.com/sakaijun ★Udemy → http://sakaijunsoccer.appspot.com/onlinecourse ★Facebook → https://www.facebook.com/sakaijunsoccer ★海外転職の著書 → https://amzn.to/2K4HVzE ★株式投資の著書 → https://amzn.to/2K560WT ★グッズ販売 → https://engineer.fashionstore.jp/ ★Note → https://note.mu/sakaijunsoccer ★ブログ → http://sakaijun.blog.jp/ ★LINE@ → https://line.me/R/ti/p/%40kzd9331h ★ホームページ → http://saka

    ドメイン駆動設計を知る必要があるのか
    sagasite
    sagasite 2020/09/06
    DDD不要論 DDDの本を読んでおいて、自分が使えるかどうかは、他人に判断してもらうのではなく自分自身で判断した方が良い。DDDの内容を知らないのに、DDDが良いとも悪いとも判断できないから。
  • ドメイン駆動設計入門 1.1 ドメイン駆動設計とは何か

  • 1.1 ドメイン駆動設計とは何か - SAGA SITE

    「ドメイン駆動設計入門」の読書メモ。 今日は「1.1 ドメイン駆動設計とは何か」(2ページ~3ページ)を読みます。 sagasite.hatenablog.com (↓記事対応のオーディオブック 時間:2分8秒) www.youtube.com 利用者にとって価値のある知識を選ぶ 利用者の問題を見極める 知識をコードに埋め込む 利用者にとって価値のある知識を選ぶ 利用者にとって役に立つソフトウェアを開発するためには、価値ある知識と無価値な知識を慎重に選り分けて、選び抜かれた知識をコードに落とし込む必要があります。そうした手順を踏んで作り上げられたコードは有用な知識が込められたドキュメントの様相を呈してきます。 コードを見ただけで、処理やデータ構造について、何をやっているのか?何を意味しているのか?が理解できるようになっている方が良いですね。 利用者の問題を見極める 価値あるソフトウェアを

    1.1 ドメイン駆動設計とは何か - SAGA SITE
  • ドメイン駆動設計入門の目次

  • ドメイン駆動設計入門 - SAGA SITE

    今日から「ドメイン駆動設計入門」というを読んで、プログラムの設計方法について学んでみたいと思います。 ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基 作者:成瀬 允宣 発売日: 2020/02/13 メディア: Kindle版 (↓記事対応のオーディオブック 時間:1分46秒) www.youtube.com 目次 Chapter 1 ドメイン駆動設計とは Chapter 2 システム固有の値を表現する「値オブジェクト」 Chapter 3 ライフサイクルのあるオブジェクト「エンティティ」 Chapter 4 不自然さを解決する「ドメインサービス」 Chapter 5 データにまつわる処理を分離する「リポジトリ」 Chapter 6 ユースケースを実現する「アプリケーションサービス」 Chapter 7 柔軟性をもたらす依存関係のコントロール Chapter 8 ソ

    ドメイン駆動設計入門 - SAGA SITE
  • 1