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が最近リリースされ、重要な変...
![Eric Evans氏: ドメイン駆動設計は、以前より以上に妥当性を獲得している](https://cdn-ak-scissors.b.st-hatena.com/image/square/02955ccf4ba8556bc832717c6e4cfa5863327ddc/height=288;version=1;width=512/https%3A%2F%2Fcdn.infoq.com%2Fstatics_s2_20240618082437%2Fstyles%2Fstatic%2Fimages%2Flogo%2Flogo-big.jpg)
『エリック・エヴァンスのドメイン駆動設計』(以下DDD本と呼ぶ)の原著出版から十数年が経過した今、DDD本に書かれている内容は、吟味されアップデートされるべき時が来ている。このアップデートに盛り込みたい内容を、4つの原則という形で考えてみた。 なお、以下では「EvansのDDD本の内容」と「ドメイン駆動設計というコンセプト」は重なる部分があるにせよ、それぞれが指す対象は異なるものだとしている。この違いは本文中で触れるが、表記として「DDD本」は本を指し、「ドメイン駆動設計」はコンセプトの方を指すようにしている。 DDD本とドメイン駆動設計 DDD本では、ドメイン駆動設計というコンセプトが導入された。ドメイン駆動設計というコンセプトは、ソフトウェアエンジニアの一般教養といえるほど、今ではその価値が認められている。同様のアイデアは、EvansがDDD本を執筆した時代ですら、すでに先人たちが口に
長らく Y.A.Mの雑記帳というブログでAndroidの技術情報を発信しています。最近はなかなか投稿できなくなってしまいましたが、それも仕事としてAndroidに関われているためです。Androidを触り始めたころはまだ学生だったので時間があったんでしょうね。 はじめて Android に関するエントリを投稿したのは 2009 年 5 月 24 日です。当時はJavaFXを触っていたので、NetbeansでAndroidをやろうとしていたようです。 当時のAndroidのバージョンは1.5、Fragment もなく、Support Library もなく、マルチタッチすらなく、ストアは Google Play ではなく Android Market という名前でした。 ここから2、3年くらいは、仕事でAndroid アプリを開発している人はもっぱらメーカーのプリインアプリを作っている方たち
All slide content and descriptions are owned by their creators.
冬コミで出した技術書「なないろAndroid」「The Web Explorer 3」「わかる!ドメイン駆動設計」の3冊について、先週から電子書籍の販売が始まっています。タイミングがよいので、難産だった「わかる!ドメイン駆動設計」の生まれた経緯を書いておこうと思います。 techbooster.booth.pm 上記サイトではAndroidやWebの最新情報、技術書の作り方本など色んな書籍を扱ってます。ぜひみてください。 きっかけは読書会 本書は読書会を通じて生まれました。メンバーは大体4人(やんざむともちこと@tacksmanとひつじ)で、たまに@sys1yagiさんとかが参加。毎週リアルに集まるのは大変だったのでビデオハングアウトで週1回、1時間。始めたのは2016年4月~(継続中)。オンラインだったのが地味によくて、参加と継続のハードルを下げられています。 本は厚くて有名なエリック・
ドメインモデル(ドメイン駆動設計)では、集約ルートにはグローバル空間で一意なIDを付けるべし、という情報を得ました。 DDD本にも、「(集約)ルートエンティティはグローバルな同一性を持つ」という記述があります。 ※ごめんなさい、電子書籍なのでページ番号分かりません。集約の不変条件についての記述です。 このことについて疑問がありますので教えて下さい。 例えば、プロジェクト管理アプリケーションを作っているとします。 ざっくりとした要件はこんな感じです。 プロジェクトを複数管理できる ひとつのプロジェクトは複数のタスクから構成される 人員を複数管理できる 人員は、色々なプロジェクトのタスクに割り振られる こうすると、集約としては「プロジェクト」と「人員」が出てくるかなと思います。 どちらも「プロジェクトID」と「人員ID」という、グローバル空間で一意なIDを付ければ良さそうです。 また、「タスク
はじめに [エリック・エヴァンスのドメイン駆動設計]この本をエンジニアであれば聞いたことや見たことある方はいるのではないでしょうか? 私も良本という噂だけは知っていたので、一度は読んで読んでおきたいなと思い今回読みました。 私の性格的に、サーっと流し読みはできない性格(流し読みしたところに良いことが書いてあると勿体無いので)なので、しっかりと1文字づつ読んでます。 読んで見て思ったことは、はっきり言って難しすぎる、それなりに設計に関わる技術書は読んでますが、飛び抜けて難しいです。 言い回し、例題、語彙、全てにおいて難しいです。少しでも気を抜くと何言っているのか分からなくなります。 全く中身のないことを、それっぽく言っているだけなのではないかと錯覚をするほどです。 このTED Talksを思い出しました。 [ウィル・スティーヴン 「頭良さそうにTED風プレゼンをする方法」] https://
ギルドワークスさんで開催された 再演 リレーションシップ駆動要件分析 ☓ ドメイン駆動設計 ☓ アジャイル開発 に行ってきた。 発表された資料は、勉強会のリンク先にあります。 感想と質問したことをまとめておく。 RDRA for 越境アジャイル 到着が遅れたので、RDRA for 越境アジャイルから参加しました。 顧客やチームメンバーとコミュニケーションを円滑にするためモデルをどうやって表現するか? 話されていたことは理解できるし、現場で似たようなアプローチはしている。 でも、チームがモデルを共有できる状態になっていないし、まだまだ良くしていける余地はあるので以下の書籍を参考にしてみよう。 実は読んだことあるんだけど、活用できていない。 今日の話を聞いてもう一度読んでみる。 RDRA DDD Agile 改めて、日々開発メンバーや関係者と話し合うことは大事だなと思わされた。 スピーディーで
UML? モデリングのツールは、思考のツールであり、関係者でお互いの考えていることをすり合わせ確認する道具です。 オブジェクト指向のモデリングツールといえば、UMLが有名です。クラス図やオブジェクト図、ユースケース図など、視覚的に、かつ、論理性を保って、モデルを検討し、視覚化するための約束事をまとめたものですね。 ドメイン駆動設計のモデリング手段 エヴァンスのドメイン駆動設計は、UML流の図がいくつか掲載されていますが、本を読んでいただければわかる通り、UMLを使ったモデリングのやり方は、基本的に登場しません。 ドメイン駆動設計のモデリングの基本手段は「言葉」です。それも、文章ではなく、会話によるモデリングを非常に重視しているのが、ドメイン駆動設計の特徴です。(2章を参照) 図や文章表現は、あくまでも補助的な手段。「言葉」を聞いた時の違和感、「言葉」をしゃべったときの感触。この人間の言語能
図1.ユビキタス言語はモデルを表現するのに用いられる唯一の言語でなければならない。チーム内のメンバは誰もが、個別の各用語についてあいまいさの残らない形で合意せねばならず、翻訳する必要がないようにしなければならない。 コードはモデルを表現する主要な形態です。要件なり設計の一部分をとらえる過程においては、それ以外の成果物も必要になるかもしれません。しかし、アプリケーションのふるまいと恒常的に同期しているのはコードそれ自体なのです。このようなモデリングの理想郷は、いくぶん脆弱なエコシステムです。前述したような条件が与えられれば実現は可能ですが、むやみに拡大することはできません。概念的統一性を妥協することなく、モデルを拡大することができる最大の範囲が、コンテキスト("context")と呼ばれています。 境界つきコンテキストに踏み込む ドメイン駆動設計において、コンテキストは次のように定義されてい
オブジェクト指向設計の目的は、開発効率をあげ、保守しやすい変更が容易なソフトウェアを作ること。そのために、「クラス」(オブジェクトの型)を基本単位にした「モジュール化」を行い、そのモジュールの再利用性を高める設計を目指す。 ドメイン駆動設計の文脈から、オブジェクト指向が狙った「再利用」の現状を考えてみる。 プレゼンテーション層とデータソース層では「フレームワーク」を使うことで、オブジェクト指向による「部品の再利用」のありがたさを日々実感している。 実行基盤として Spring Boot, プレゼンテーション層の Spring MVC と Thymeleaf、データソース層の MyBatis を使うことで、開発期間を短縮でき、実績のあるフレームワークなので、安定した品質も確保できている。オブジェクト指向が狙った「再利用」が実現されている。 しかし、ドメイン層は、毎回、独自に部品を開発している
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く