Cloud前半がこれまで僕が経験してきたDDD後半がこれからのために素振りしておきたいことこれまで僕が経験してきたDDD最近、組織について考えるようになってきたのもあって「境界づけられたコンテキスト」が一番大切だなって実感してる。全てを一度に相手にするのではなく、切り取られた世界を作って、その中で適用していく。その切り取られた世界の間の関係性もデザインしていく。することで複雑さを手に負える大きさでコントロールできる。DDDを知った当初は、エンジニアとしてEntityやValueObjectのところが面白いなーって思ってゴニョゴニョコード書いてたりしてたんだけど、しばらくして「もっと良いコード書くためにはその土台となるチームづくりをしなきゃ!」と思ってスクラムを導入してたんだけど、しばらくして「チームを良くしようと思ったら、組織構造について考えなきゃ!」ってイマココ。DDD本の2部→3部→4部って流れかな。第1部のユビキタス言語については、最近ストンと腑に落ちた。英語のユビキタス言語を英語のまま会話で使って、それがコードに反映されていく感覚。右上が、目の前の最短の道は泥沼に向かうかもしれない、最短の道ではなくて壁を乗り越えて向こう側に行くには、勇気とスキルが必要の話これからのために素振りしておきたいことDDDでドメインモデルを作っていくときに、自分のスキルでできる部分だけを適用してきてるから、もう少しスキルを上げるともっと世界が広がりそうだなと思って、素振り。結果整合性を運んでくれるドメインイベント。ビューの関心事を分離させてくれるCQRS。組織が大きくなってきたときのためのMicroservice。CQRSは、僕が一番身につけておきたいスキルだなぁ。いうのも、やっぱりビューに引きずられるんだよね。ビューには効率性やスピードを求めたいから、ドメインモデルが更新されたことに反応してビュー用のモデルを更新したいなぁって思ってる。することでリポジトリがビューに引きずられにくくなる。変化していけるアーキテクチャとはいえ、DAOバージョンが良くない!っていう気はなく。それでサクッとビジネスを立ち上げるのは良いよなって思う。そのまま拡張していくと大変になると思うので、ビジネスのフェーズに合わせて変化していけるアーキテクチャが大切だよなと。あたるかどうかも分からないような立ち上げ時はRDB中心のDAOモデルでサクッと立ち上げるビジネスが「これはいけそう!」って分かってきたら、それまでに得た知識を元にドメインモデリングをしていく。BC)をシステム内に作っていく。チームが複数に分かれるときには、BC単位でシステムを分割していく。その際にマイクロサービスアーキテクチャになっていく。いうことだろうかなと思ってる。やったら変化していける?考えてみた。なんとなく、ユーザー認証系は最初から切り離しておきたいなって思うので。こんな形で始められると良さそうかなって思う。認可サービスからもらった情報を元にユーザー情報を提供する用この状態でビジネスを立ち上げて、DAOスタイル→DDDスタイル→DomainEvent→CQRSまでやっておく。その後チームが分かれるときに、BC単位でEdgeサービスの後ろ側に移動していく。デモの5-msa0では、この構成でアプリを作ってみた。デモアプリ回転寿司屋さんの席についてるタブレットアプリを思い浮かべて作ったよ!ソースコードhttps://github.com/bufferings/jjug-ccc-2016-fall注意点Domaを使ってるのでIDEにAPTの設定が必要です。Eclipseならm2eかな。"3-event"以降は、Kafkaの0.10がローカルで動いてなきゃです。Lombokを使ってるのでIDEにLombokの設定が必要です。機能バージョン1-init/kaiten-sushi-web1→DAOバージョン2-ddd/kaiten-sushi-web2→DDDスタイル3-event/kaiten-sushi-web3→ドメインイベントのお試し実装4-cqrs/kaiten-sushi-web4→イベントを受信してCQRS5-msa0→MSAに向かうための第一歩(ユーザーログインつき、user/password。シークレットタブとかでログインするほうがよいかもです。Bootアプリを起動して以下のURLにアクセスー。http://localhost:8080/staff/index.html楽しかった!今回はテンパってて他の人のセッションを全然聞けなかったから、次はお客さんできたいなー!それかもっと余裕持って準備するか。great...2015-12-282015振り返ってみると、色々やってたんだなー。(1)はてなブログをはじめよう!bufferingsさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。