ドメイン駆動設計に関するmasuda220のブックマーク (160)

  • ドメイン駆動設計(Domain Driven Design)の43パターンまとめ | 音系男子ノート。

    これが大変に評価の高いで、邦訳が長らく待たれましたが、ようやく2011年に「エリック・エヴァンスのドメイン駆動設計」というタイトルで出版されました。 このドメイン駆動設計ですが、技術者の間ではしばしばDDDと呼ばれます。 これらのパターンのうち必要なものを状況に応じて適用することによって、オブジェクト指向が来持っている、再利用性や保守性といった利点を最大限に生かすことができます(`・ω・´) 前提となる知識 DDDはオブジェクト指向デザインパターンのですので、オブジェクト指向設計における一定の経験と知識は必須となります(デザインパターンについての知識は必須ではありません)。 リレーショナルデータベースを備えたエンタープライズWebアプリケーションを前提としているので、サーバーアプリケーション設計・開発の経験があると理解がスムーズです。 アーキテクト向けのですので、UMLのクラス図や

    ドメイン駆動設計(Domain Driven Design)の43パターンまとめ | 音系男子ノート。
  • 新訳版『テスト駆動開発』に学ぶオブジェクト指向設計 | システム設計日記

    テスト駆動開発 和田卓人(t-wada)さんによる『テスト駆動開発』の新訳版が出版されました。 オブジェクト指向でソフトウェアを開発するのであれば、このとマーチンファウラーの『リファクタリング』は必読書だと思います。この古典ともいえる『テスト駆動開発』が和田さんの手によって新訳版として復刊されたことは、ほんとうにすばらしいことです。 このが出版された経緯と、和田さんはじめ関係者の方々のご努力については、和田さんの、このブログをぜひ読んでいただければと思います。 新訳版『テスト駆動開発』が出ます 新訳は、単に原著が日語で読めるようになっただけではありません。和田さんの手によって、原著にはない新たな価値が付け加えらました。 一つは、サンプルコードの工夫です。 できるだけ省略はしない変更箇所を目立つようにした各章末にその時点での全コードを記載する これらの工夫により、に書かれた内容が、

  • 『現場で役立つシステム設計の原則』 増田亨さん を読んだ。「データしか持たないデータクラスは作らない!」 - エンジニア的なネタを毎週書くブログ

    こちらのを読んででのレポートです。現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法【電子書籍】[ 増田亨 ] 価格:3175円 (2017/11/4時点) 複雑な業務ロジックは「適切な境界」で分離されていれば理解しやすくなる! …が最近の自分の持論なのですが、じゃあ「適切な境界」って何よ? …と言われると、うまく言語化説明できない。 そんな私にたくさんヒントを与えてくれたでした。 なかなか消化しきれていないところもあるのですが、腹落ちさせるためにもブログに落としてみます。 このブログに書いたことをまとめると・・・ 修正が大変なのはロジックが分散しているから データとロジックをひとつのクラスにまとめるとロジックが分散しない! じゃあWeb APIでサービス間連携するときも、データを持つほうにロジックを寄せるべき… と思ったら、そうでもない? こののすごい

    『現場で役立つシステム設計の原則』 増田亨さん を読んだ。「データしか持たないデータクラスは作らない!」 - エンジニア的なネタを毎週書くブログ
  • 読みやすいコード(僕にとって) - Mitsuyuki.Shiiba

    最近気づいたことがある。それは、僕はみんなみたいに複雑なことが理解できない、ってこと。 話をしてても「ごめんなさい。いまのわかんなかった。もう一回教えて欲しい。」とかよくあるし。ドキュメントも、ちょっと複雑なことが書いてあると、全然頭に入ってこない。 色んなルールがドキュメントに書いてあって、それをちゃんと守りながら開発してる人たちとか見てると、みんなすごいなぁって思うのであった。 なんだろうなぁ。こう・・・色んな想像が始まってしまって、考えが落ち着かないんよね。 そんな僕なのだけど、ここ数年はありがたいことに色んなコードを読む機会がある。読みやすいコードもあれば、パズルみたいに複雑なものもあって。そんな中で、たぶん、僕にとって読みやすいコード、というのは普通の人にとってはとても読みやすいコードなのかなぁって思って。書いてみる。 JavaでWebのアプリを開発してる。基盤とかフレームワーク

    読みやすいコード(僕にとって) - Mitsuyuki.Shiiba
  • 「ドメイン駆動設計のためのオブジェクト指向プログラミングハンズオン」第2回でユーザー定義型を自分で作ってみた - (spit here blackawa)

    ちょうど弊社内の同僚と輪読会をしていた書籍の著者であるところの増田さんがやるハンズオンがあると聞いて行ってきた。 第一回はこちら。動画で見てもなかなかおもしろかった。 youtu.be アソビューについて www.asoview.com の運営会社。 椅子がキャンプ用のやつで、会社特有感出てて面白い。 テーマは「型」 型とは、オブジェクトにおいて有効な値および演算を定義するもの = ストラウストラップ先生の受け売り。 ユーザー定義型を作って、モデルと実装を一致させるハンズオン 前説自体は、よくあるオブジェクト指向の概念の説明。 コードの臭いとか、リファクタリングの話とか。 ネタは「購入の平均単価」。 このビューを表現するユーザー定義型を実装しよう。 以下は、やりながら感じたことの箇条書き。 自分がどんなロジックで生成されるかは、誰が知るべき? 売上高 / 購入量 で導出される「平均単価」の

    「ドメイン駆動設計のためのオブジェクト指向プログラミングハンズオン」第2回でユーザー定義型を自分で作ってみた - (spit here blackawa)
  • 「現場で役立つシステム設計の原則」を読んだ - Magnolia Tech

    細々と書き直したので、最初の公開の時とちょっと変わっています。 最近ようやくこの手の「良い設計」をちゃんと解説してくれる書籍が出版されるようになってきて、良い時代になったなぁ。データベースであればドメインを定義したり、正規化といった、ある程度定型的な観点が有る手法が有るので割と以前から良い設計に対するアプローチが明確だった気がするけど、アプリケーションになるとなぜか、あまり見かけなかった。 今までコードを書いたことが無い人が読んでも、今一つ納得感が無いような気がするけど、一度でも他人のコードの改修に苦労したことが有れば、発見が有る。 全編に渡って素晴らしい知見が多いのだけど、まずはChapter1の「小さくまとめてわかりやすくする」だけでもしっかり読んだ方がいい。特に値オブジェクト重要。 値オブジェクトを使ったリファクタリングと機能追加を体験するだけでも、ソフトウェアの複雑さのコントロー

    「現場で役立つシステム設計の原則」を読んだ - Magnolia Tech
  • 「現場で役立つシステム設計の原則」を読んだ

    「現場で役立つシステム設計の原則」を読んだWed, 16 Aug 2017 03:41:54 GMT読書 技術書 Kindleで購入。2週間くらいかけてダラダラと読んだのでかなり内容忘れてる部分もありますが、さらっと読み直しながら感想とか。 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法 内容 「解り易いコードを書く」というところから始まって「ロジックの整理・組み合わせ」の後に「DBやWebAPIの設計について」まで記述してあり、ソフトウェア開発全体についてかなり広い範囲を解り易く記述してあるでした。だいたい、技術書は後ろの章に行くほど書いたあることが難解になることが多い気がするのですが、そんなことはなかったです。 サンプルコード 「サンプルコードはJava、フレームワークはSpring FrameworkとSpring Bootで記述してあるので理解し

  • 【勉強会メモ】関西Javaエンジニアの会(関ジャバ) '17 10月度 - radioc@?

    kanjava.connpass.com 日時:2017/10/21(土) 13:30 〜 17:30 場所:エムオーテックス新大阪ビル 2F 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法 作者: 増田亨出版社/メーカー: 技術評論社発売日: 2017/07/05メディア: Kindle版この商品を含むブログ (2件) を見る 今回のテーマは「現場で役立つシステム設計の原則」の著者である増田さんをゲストに迎えてのDDD特集。関ジャバですがScalaの話が多くてJavaの話は少なめ。Scala Kansai Summitのトートバッグを頂きました。 以前投稿済みだが「現場で役立つシステム設計の原則」は読んだものの、「理想はそうだがうまくいくのか?」という懐疑的な思いも若干あったが、パネルディスカッションを聞いてみると結局のところ、理論も大事だがどれだけ

    【勉強会メモ】関西Javaエンジニアの会(関ジャバ) '17 10月度 - radioc@?
  • 現場で役立つシステム設計の原則を読んだ - きょこみのーと

    ざっくり説明すると、DDDの文脈にあるドメインモデルやドメインオブジェクトとかを意識してプログラミングとかやっていきましょうという感じ。 エリック・エヴァンスのDDDは概念的な話やユビキタス言語とかをちゃんと定義してドメインモデルを作っていってチーム全員でやっていき!って感じで、 なんか手っ取り早くいい感じのアーキテクチャとかプログラミングでパワーアップして、いい感じのプロダクトを作りたい!!!! って人には難しい内容となっていたと思います。 (DDD、自分はとてもいいだと思ってますので、あとで読むのはおすすめします) 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法 作者: 増田亨出版社/メーカー: 技術評論社発売日: 2017/07/05メディア: Kindle版この商品を含むブログ (2件) を見る 書はDDDと違って、プログラミングからのア

    現場で役立つシステム設計の原則を読んだ - きょこみのーと
  • 【読書メモ】現場で役立つシステム設計の原則 - radioc@?

    現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法 作者: 増田亨出版社/メーカー: 技術評論社発売日: 2017/07/05メディア: Kindle版この商品を含むブログ (2件) を見る 毎朝15分の読書会で書を読んだ。現場で役立つということでチームで共有するテーマとしても良いだと思う。 コードをわかりやすくまとめるテクニック 小さくまとめてわかりやすくする 場合分けのロジックを整理する 業務ロジックをわかりやすく整理する 前半はコードをシンプルにわかりやすくする手法について。リーダブルコードのような形でわかりやすく良いコードに変えているテクニックの解説が中心。 リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice) 作者: Dustin Boswell,Trevor Foucher,須藤功

    【読書メモ】現場で役立つシステム設計の原則 - radioc@?
  • 「現場で役立つシステム設計の原則」批判 (2) ~ポリモーフィズムは何のために?~

    増田亨氏の「現場で役立つシステム設計の原則]」批判の第2編です。 (2)ポリモーフィズムは何のために?オブジェクト指向の要件書には「変更を楽で安全にするオブジェクト指向の実践技法」というサブタイトルが付与されています。オブジェクト指向が何かという点については、論者によって違いはあるものの、以下の3つが要件とされることには、多くの人が合意するでしょう。 カプセル化インヘリタンス(継承)ポリモーフィズム(多態)前回で明らかになったように、カプセル化は、オブジェクト指向とは独立にモジュール分割の指導原理としてデイビッド・パーナスにより提唱された「情報隠蔽」を敷衍したものです。オブジェクト指向の要件ではありますが、オブジェクト指向固有のアイデアではありません。 インヘリタンスは便利な機能ですが、コンポジションや移譲により代替できるので、オブジェクト指向の質的な要件とは見做されなくなってきたかと

    「現場で役立つシステム設計の原則」批判 (2) ~ポリモーフィズムは何のために?~
  • 『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?

    DDD Alliance!主催の「現場で役立つシステム設計の原則 Night!」での書評LTスライドです。

    『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
    masuda220
    masuda220 2017/09/02
    bikisukeさんのレビューは、本当に感謝です。それぞれの指摘は、なぜ問題かと改善案が具体的で本当に助かりました。 いろいろなSIの現場を経験されたbikisukeさんの章ごとの評価も、ほんとうに参考になります。
  • 「現場で役立つシステム設計の原則」批判 (1) ~何のために、「データとロジックを一体に」するのか?~

    増田亨氏の「現場で役立つシステム設計の原則]」の評判が高いようです。 このが、オブジェクト指向の初級者に受け入れられ易いことはわかります。オブジェクト指向的なプログラミングが出来ていない現場で、明日からでも出来そうなことが平易に書かれているからです。オブジェクト指向の入り口を指し示しているように見える。 一方で、私としては、このが指し示す入り口は、入りやすいかもしれないけれど、結局はどこにも通じていないのではないかと疑っています。 稿では、そのように私が考える理由について、3つの切り口からご説明したいと考えています: 何のために、「データとロジックを一体に」するのか?ポリモーフィズムは何のために?「ドメインモデル」とは何か?長くなるので、今回は、一番目の「何のために、『データとロジックを一体に』するのか?」について。 批判 (1) 何のために、「データとロジックを一体に」するのか?

    「現場で役立つシステム設計の原則」批判 (1) ~何のために、「データとロジックを一体に」するのか?~
  • 現場で役立つシステム設計の原則で個人的に面白かったところメモ - Qiita

    『現場で役立つシステム設計の原則』というを付箋を付けながら一通り読んだ?ので 個人的に面白かったところを自分用にメモしておきます。 当にメモです。 質とはだいぶ違うところだと思うので買って読んで下さい。。 (付箋はつけていたけどうまく説明できなさそうなところは消しました。) 目的ごとに変数を用意する 段落わけと、目的ごとの変数で分かりやすい。 一度作った変数を変更するのを破壊的代入といい、それをなくすことでコードが安定するそうです。 int basePrice = quantity * unitPrice int shippingCost = 0 if (basePrice < 3000) { shippingCost = 500 } int itemPrice = ... コレクション型を扱うロジックを専用クラスに閉じ込める これをコレクションオブジェクトやファーストクラスコレクシ

    現場で役立つシステム設計の原則で個人的に面白かったところメモ - Qiita
  • ドメイン駆動設計のガイドライン: Capture - Embed - Protect

    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が最近リリースされ、重要な変...

    ドメイン駆動設計のガイドライン: Capture - Embed - Protect
  • 【書評】現場で役立つシステム設計の原則 - システム開発で思うところ

    現場で役立つシステム設計の原則 変更を楽で安全にするオブジェクト指向の実践技法 [ 増田亨 ] ジャンル: ・雑誌・コミック > PC・システム開発 > その他ショップ: 楽天ブックス価格: 3,175円 読みました。断片的に収集していた増田亨さん(@masuda220)の知識を理解するのに良いだと思います。もしDDDについて調べていて増田さんのスライドなどを見て「もう少し詳しく知りたいかも」と思った人は読むことをお勧めします。 良かった ロジックをenumを使って表現する P60: EnumでStrategyを管理するという言い方になるのかな?確かにこういうのは分類と実装を意味ある塊に整理出来るので良さそうです。 調べたら、こういうのもありました。 【enum】メソッドの定義(3)−strategyパターンを使う方法 - THE HIRO Says メソッドは必ずインスタンス変数を使

  • たくさんの書評、ありがとうございます | システム設計日記

    を書きました 『現場で役立つシステム設計の原則』 7月5日に発売になったこのですが、いろいろな方に書評を書いていただいけました。 ありがたいことです。こういうフィードバックは、うれしいし、とっても勉強になります。 私が自分でブックマークした範囲ですが、みなさんの書評を紹介させていただきます。 「現場で役立つシステム設計の原則」はプログラミング設計の普遍的な教科書 - ビープラウド社長のブログブックマーク:543 佐藤さんのこの書評は、大きな反響があったみたいですね。おかげさまで、の売れ行きがぐんと伸びました(笑)。 の全体の構成や話の流れを俯瞰的に、かつ要点を押さえた内容を、図をうまく使いながら紹介していただきました。 まえがきかなにかに「書の構成」として書いてしかるべき内容ですね。もし第2版を書く機会(?)があれば、この内容をぜひ参考にさせていただいて「書の構成」を追加させて

  • 『現場で役立つシステム設計の原則』という本に対して思うこと - Toy と帽子と ADP BE

    前置き 「現場で役立つシステム設計の原則 読書会」に行ってきました。 kansaiddd.connpass.com で、所感とか書こうかと思ったんですけど、勉強会の内容そのものよりまず『現場で役立つシステム設計の原則』というに対して思うことが膨らんできたので、一旦そこだけにフォーカスした内容で一エントリ書くことにします。 この読書会自体は恐らくあと十回くらい続くので(十回で済むんかな?)、そこで得たものはおいおい現場やブログでフィードバックできたらいいかなと思っております。 『現場で役立つシステム設計の原則』というに対して思うこと 基礎知識 第一章を読んだ時点の感想が「うわこれオブジェクト指向の基礎知識は必須だよな」、第二章を読んだ時点では「うわこれ少なくとも Effective Java に挑戦できるレベルは最低限必要じゃないか」。 そこで、次に十章を流し読みしてみました。章のタイト

    『現場で役立つシステム設計の原則』という本に対して思うこと - Toy と帽子と ADP BE
  • 「現場で役立つシステム設計の原則」を読み終わりました - シュンツのつまづき日記

    現場で役立つシステム設計の原則を一通り読み終えたので書評です。 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法:書籍案内|技術評論社 購入のきっかけ 著者の方が @masuda220 さんということで購入しました。 DDDに関する資料を拝見させていただき、色々と学ぶことが多かったです。 著者の方の経験をもとに書かれたということだったので、「これは買わねば」と思い買いました。 評価 10段階評価で言えば10点満点と私は思います。 開発者必携の一冊なんじゃないかなぁと思う内容でした。 できれば、チームメンバー全員に読んでほしいと思うくらいです。 オススメできる人 基的な開発ができる人(経験年数的には3年以上といったところ) エリックのDDDを読んで難しいと感じた人 オススメできない人 個人的に開発者必携だと思っているのですが、あえてあげるとしたら下記のよう

    「現場で役立つシステム設計の原則」を読み終わりました - シュンツのつまづき日記
  • 「現場で役立つシステム設計の原則」を読んだ - TSUGULOG

    現場で役立つシステム設計の原則 / 増田亨著を読んだので感想を書く。 総評 設計について書籍はたくさんがあるが、その入門書としてよさそうだと感じた。 リファクタリング、DDDなどのエッセンスが平易な言葉でまとめられている。 概要と感想 Chapter1. 小さくまとめてわかりやすくする 変数や関数の名前づけなど、コードレベルの話。 Martin Fowler著のリファクタリングに書いてあるような内容が多かった。 Chapter2. 場合分けのロジックを整理する if文が増えるとどうしてもコードの見通しが悪くなるので、整理するための方法が書かれていた。 普段Ruby on Railsを使っているので、型がほしいという感想しかなかった。 dry-typesを使えばなんとかなったりするのだろうか。 Chapter3. 業務ロジックをわかりやすく整理する いわゆるドメインモデル貧血症にならないよう

    「現場で役立つシステム設計の原則」を読んだ - TSUGULOG