SlideShare uma empresa Scribd logo
1 de 53
© BIGLOBE Inc.
2019/12/14
DDDモデリングハンズオン
レガシーをぶっつぶせ。
現場でDDD!2nd
2 © BIGLOBE Inc.
本資料の説明
本ワークショップで使う、
ソースコードは以下に公開してあります
(masterブランチ)
テストが全て通るようになる事を目指して、
モデリング/コーディングしてみて下さい
https://github.com/biglobe-isp/workshopmobile
3 © BIGLOBE Inc.
本日、体験してもらいたい事
ドメインモデルと
ソースコード
の関係性を知る
4 © BIGLOBE Inc.
エヴァンス本 第1部
エヴァンスが言っている事とは?
第1部 ドメインモデルを機能させる
- 第1章 知識をかみ砕く
- 第2章 コミュニケーションと言語の使い方
- 第3章 モデルと実装を結びつける
エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践) https://www.amazon.co.jp/dp/4798121967
5 © BIGLOBE Inc.
コードを作成する人々がモデルに責
任を感じていない場合や、
アプリケーションのためにモデルを
機能させる方法を理解していない場
合、
そのモデルはソフトウェアと無関係
になってしまう。
実践的モデラ
6 © BIGLOBE Inc.
モデルとコードの両立
ドメインモデル
ソースコード
どっちも大事
7 © BIGLOBE Inc.
本日の目標
8 © BIGLOBE Inc.
本日の目標
モデルとコードを
往復して
ドメインを育てられる
ようになろう!
9 © BIGLOBE Inc.
本日の流れ
10 © BIGLOBE Inc.
本日の流れ
本日は
「格安SIMの料金計算システム」
の開発してもらいます。
ドメインモデルとソースコードは既にあります。
そこに仕様変更をお伝えしますので、
・ドメインモデルを変更する。
・ソースコードを変更する。
・テストが通るようになる。
・ドメインモデルとソースコードを比べる  本日のゴール
11 © BIGLOBE Inc.
本日の流れ
1. 導入 (20分)
2. 作業 (90分)
3. クロージング(10分)
12 © BIGLOBE Inc.
チームになろう
13 © BIGLOBE Inc.
お願いします
急激に
仲良くなって下さい
14 © BIGLOBE Inc.
自己紹介タイム
・1人1分
・名前と本日の意気込み
(日頃の役割、DDDについて、etc)
15 © BIGLOBE Inc.
サービス仕様の説明
16 © BIGLOBE Inc.
サービス仕様
プラン
格安SIM
1ギガ
料金:1000円
料金計算 1000円
17 © BIGLOBE Inc.
サービス仕様
プラン
格安SIM
1ギガ
料金:1000円
3ギガ
料金:2000円
30ギガ
料金:6000円
18 © BIGLOBE Inc.
サービス仕様
プラン
格安SIM
1ギガ
料金:1000円
3ギガ
料金:2000円
30ギガ
料金:6000円
エンタメフリーオプション
1200円
プランが3ギガ・30ギガの時に
購入可能(1ギガは購入不可)
19 © BIGLOBE Inc.
料金はいくら?
20 © BIGLOBE Inc.
作業を開始!
その前に・・・
21 © BIGLOBE Inc.
議論のこころえ
22 © BIGLOBE Inc.
議論のこころえ
1. ドメインモデルには正解はありません。
2. 一般論より、このサービスに特化したモ
デル、コードを目指しましょう。
3. きづいたこと、考えていること、分から
ないこと、は声に出してみましょう。
発言をする事はチームにとって尊いこと
です。
4. 安心して作業して下さい。
最後はドライバーがどうにかします。
23 © BIGLOBE Inc.
喧嘩しないためのコーディング規約
• 継承禁止(移譲を使う)
• ドメイン層でプリミティブ型禁止(ラップする)
(String、int、Integer、long、Long、etc)
• ドメイン層でnull禁止
• クラス名は日本語 (時間ないから)
言語:Java (8)
フレームワーク:Spring Boot, Lombok
※細かいことはドライバーがどうにかして
24 © BIGLOBE Inc.
現状の把握
25 © BIGLOBE Inc.
仕様書を読もう
テーブルにある
「格安SIM仕様書」
を読み合わせましょう
(3分)
26 © BIGLOBE Inc.
モデルの確認
プラン
格安SIM
1ギガ
料金:1000円
料金計算 1000円
テーブル上のモデルを
見てみましょう
(3分)
27 © BIGLOBE Inc.
ソースコードの確認
ソースコードを
見てみよう
(ReadMeも合わせて)
(3分)
28 © BIGLOBE Inc.
さっそく
作業を開始しましょう
※各テーブルの作業へ
29 © BIGLOBE Inc.
モデリングの心得
30 © BIGLOBE Inc.
名詞・動詞を探してドメインモデルへ反映
名詞=ドメイン名やドメインの属性値の候補
動詞=ドメインのメソッドの候補
引数:処理に必要なドメインを渡す
戻り値:結果のドメインが戻ってくる
※戻り値なし(void)にはならない
メソッドの考え方
31 © BIGLOBE Inc.
仕様書に書かれていないドメインを探そう
・特定のユースケース(処理)を考えみよう
・チームメンバの発言・語彙に注意しよう
例)
・料金を「〜料金」と言ってたりしないか?
・〜と〜は、のように何度も同じ組み合わせを
主語としていないか?
サービス仕様(ドメイン)の理解が深まると、
新しい概念(ドメイン)が見えてくる
32 © BIGLOBE Inc.
ドメインモデルの関係性を考えてみる
例)
A -> Bの場合、
・AはBを知っている。
・AはBを持っている or AはBを利用する
・BはAを知らない。
・BはAを持っていない and BはAを利用しない
依存関係の線をドメインモデルに書こう
33 © BIGLOBE Inc.
コーディングの心得
34 © BIGLOBE Inc.
こころえ
・可能な限りドライバーに指示してあげて下さい。
例) ~を追加して。~を~に変更して。など
・間違い、構文エラーを恐れない。
違っていたら、IDEとコンパイラとドライバーが
教えてくれます。
・ドメインモデルをコードにする事が目標です。
頭の中にある処理をコードしたい訳ではない事
を心がけて下さい。
35 © BIGLOBE Inc.
ドメインを作ろう
・クラス(ドメイン)を作ってみよう
- ドメインモデルの通りに作る
・クラスが出来たらメソッドを追加して
みよう
・プリミティブ型が残るのはモデルが足
りてない証拠
36 © BIGLOBE Inc.
テストを動かしてみよう
37 © BIGLOBE Inc.
成功しました?
38 © BIGLOBE Inc.
ドメインの深い考察を求めて
39 © BIGLOBE Inc.
ドメインモデルとソースコードを比べてみよう
ドメインモデルに存在しないクラスがない?
ドメインモデルには存在しない依存関係がないか?
モデル⇒コードへ落として
分かった事を議論してみる
40 © BIGLOBE Inc.
ドメインモデルをゆさぶってみる
今後、このサービスで起きそうな仕様変
更を想像してみる
⇒影響が大きい場合、小さくする方法を議
論してみましょう
違う方式のモデルを考えてみよう。
なぜ、今のモデルの方が優れているのか
説明してみましょう。
41 © BIGLOBE Inc.
ゴール!!
42 © BIGLOBE Inc.
クロージング
43 © BIGLOBE Inc.
本日の目標
モデルとコードを
往復して
ドメインを育てられる
ようになろう!
44 © BIGLOBE Inc.
モデルとコードの往復
〇メリット
全体が見えやすいため共有・議論の土台になる
〇デメリット
あいまいさが許容される。間違いが分かりにくい
ドメインモデル(=抽象的)
ソースコード(=具体的)
〇メリット
あいまいさや間違いに気づきやすい
〇デメリット
全体は見えにくいため議論が局所的になりやすい
45 © BIGLOBE Inc.
今日、体験してほしかったこと
抽象と具象を往復す
る事で、ドメインへの
理解が深まる
46 © BIGLOBE Inc.
最後に
47 © BIGLOBE Inc.
本日のワークショップの
続きをしたい方へ朗報
48 © BIGLOBE Inc.
BIGLOBEではエンジニアを募集中です
https://hrmos.co/pages/biglobe/jobs?category=1265875468451753984
49 © BIGLOBE Inc.
モデリングがもっと
上手になりたい人に朗報
50 © BIGLOBE Inc.
モデリングのための本を販売中です。
モデリングが上達していく
過程をまとめた1冊です。
上達のために社内で
「モデリング勉強会」
を立ち上げて、
そこで得られた2年分のノウハウをわ
ずか40ページに圧縮しました。
モデリングに悩んだ人にぜひ読んで
もらいたい!!
技術書典6でも出版
内容
1冊500円
51 © BIGLOBE Inc.
オウンドメディア始めました
52 © BIGLOBE Inc.
ビッグローブで働く社員の様々な一面を紹介
内容
TechBlogもあります
https://style.biglobe.co.jp
© BIGLOBE Inc.

Mais conteúdo relacionado

Mais procurados

[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティスAmazon Web Services Japan
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)NTT DATA Technology & Innovation
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門泰 増田
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
DDDを実践できるエンジニアを育成するための取り組みについて
DDDを実践できるエンジニアを育成するための取り組みについてDDDを実践できるエンジニアを育成するための取り組みについて
DDDを実践できるエンジニアを育成するための取り組みについてBIGLOBE Inc.
 
AWSではじめるMLOps
AWSではじめるMLOpsAWSではじめるMLOps
AWSではじめるMLOpsMariOhbuchi
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビューTakafumi ONAKA
 
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライドElasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド崇介 藤井
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方Takahiro YAMADA
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGoogle Cloud Platform - Japan
 
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかなぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかYusuke Suzuki
 
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことBIGLOBE Inc.
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...NTT DATA Technology & Innovation
 
とにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みるとにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みるMasatoshi Tada
 
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)Amazon Web Services Japan
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTakuto Wada
 

Mais procurados (20)

[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
Spring tools4
Spring tools4Spring tools4
Spring tools4
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
DDDを実践できるエンジニアを育成するための取り組みについて
DDDを実践できるエンジニアを育成するための取り組みについてDDDを実践できるエンジニアを育成するための取り組みについて
DDDを実践できるエンジニアを育成するための取り組みについて
 
AWSではじめるMLOps
AWSではじめるMLOpsAWSではじめるMLOps
AWSではじめるMLOps
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
 
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライドElasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
 
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかなぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのか
 
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
 
とにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みるとにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みる
 
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
 

Semelhante a DDDモデリングハンズオン - レガシーをぶっつぶせ。現場でDDD!2nd

DDDモデリングハンズオン - レガシーをぶっつぶせ
DDDモデリングハンズオン - レガシーをぶっつぶせDDDモデリングハンズオン - レガシーをぶっつぶせ
DDDモデリングハンズオン - レガシーをぶっつぶせBIGLOBE Inc.
 
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう増田 亨
 
データベースアプリケーション開発セミナー・最新のデータベースとアプリケーション開発の関係
データベースアプリケーション開発セミナー・最新のデータベースとアプリケーション開発の関係データベースアプリケーション開発セミナー・最新のデータベースとアプリケーション開発の関係
データベースアプリケーション開発セミナー・最新のデータベースとアプリケーション開発の関係Kaz Aiso
 
20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発Mao Ohnishi
 
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019満徳 関
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座DIVE INTO CODE Corp.
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版DIVE INTO CODE Corp.
 
IBM Log Analysis with LogDNAを評価した話
 IBM Log Analysis with LogDNAを評価した話 IBM Log Analysis with LogDNAを評価した話
IBM Log Analysis with LogDNAを評価した話Daisuke Hiraoka
 
20100324 勉強会資料(ドメイン駆動)
20100324 勉強会資料(ドメイン駆動)20100324 勉強会資料(ドメイン駆動)
20100324 勉強会資料(ドメイン駆動)Masayuki Kanou
 
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】増田 亨
 
福岡SoftLayer勉強会20151015
福岡SoftLayer勉強会20151015福岡SoftLayer勉強会20151015
福岡SoftLayer勉強会20151015Shinobu Yasuda
 
C#でiPhone開発とか
C#でiPhone開発とかC#でiPhone開発とか
C#でiPhone開発とかShin Ise
 
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」Kaz Aiso
 
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発hmimura_embarcadero
 
PhoneGapとハイブリッド開発
PhoneGapとハイブリッド開発PhoneGapとハイブリッド開発
PhoneGapとハイブリッド開発Andy Hall
 
「マルチデバイス対応アプリ開発の勘所」
「マルチデバイス対応アプリ開発の勘所」「マルチデバイス対応アプリ開発の勘所」
「マルチデバイス対応アプリ開発の勘所」Embarcadero Technologies
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#Yuta Matsumura
 
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介20172017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017Tsuyoshi Hirayama
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java増田 亨
 
ソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみたソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみたYasuharu Seki
 

Semelhante a DDDモデリングハンズオン - レガシーをぶっつぶせ。現場でDDD!2nd (20)

DDDモデリングハンズオン - レガシーをぶっつぶせ
DDDモデリングハンズオン - レガシーをぶっつぶせDDDモデリングハンズオン - レガシーをぶっつぶせ
DDDモデリングハンズオン - レガシーをぶっつぶせ
 
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
 
データベースアプリケーション開発セミナー・最新のデータベースとアプリケーション開発の関係
データベースアプリケーション開発セミナー・最新のデータベースとアプリケーション開発の関係データベースアプリケーション開発セミナー・最新のデータベースとアプリケーション開発の関係
データベースアプリケーション開発セミナー・最新のデータベースとアプリケーション開発の関係
 
20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発
 
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
IBM Log Analysis with LogDNAを評価した話
 IBM Log Analysis with LogDNAを評価した話 IBM Log Analysis with LogDNAを評価した話
IBM Log Analysis with LogDNAを評価した話
 
20100324 勉強会資料(ドメイン駆動)
20100324 勉強会資料(ドメイン駆動)20100324 勉強会資料(ドメイン駆動)
20100324 勉強会資料(ドメイン駆動)
 
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
 
福岡SoftLayer勉強会20151015
福岡SoftLayer勉強会20151015福岡SoftLayer勉強会20151015
福岡SoftLayer勉強会20151015
 
C#でiPhone開発とか
C#でiPhone開発とかC#でiPhone開発とか
C#でiPhone開発とか
 
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
 
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
 
PhoneGapとハイブリッド開発
PhoneGapとハイブリッド開発PhoneGapとハイブリッド開発
PhoneGapとハイブリッド開発
 
「マルチデバイス対応アプリ開発の勘所」
「マルチデバイス対応アプリ開発の勘所」「マルチデバイス対応アプリ開発の勘所」
「マルチデバイス対応アプリ開発の勘所」
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
 
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介20172017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java
 
ソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみたソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみた
 

Último

Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )iwashiira2ctf
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521Satoshi Makita
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperleger Tokyo Meetup
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイントonozaty
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一瑛一 西口
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計atsushi061452
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルCRI Japan, Inc.
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルCRI Japan, Inc.
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員Sadaomi Nishi
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用KLab Inc. / Tech
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdkokinagano2
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfTakayuki Nakayama
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。iPride Co., Ltd.
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑Akihiro Kadohata
 

Último (14)

Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
 

DDDモデリングハンズオン - レガシーをぶっつぶせ。現場でDDD!2nd

  • 2. 2 © BIGLOBE Inc. 本資料の説明 本ワークショップで使う、 ソースコードは以下に公開してあります (masterブランチ) テストが全て通るようになる事を目指して、 モデリング/コーディングしてみて下さい https://github.com/biglobe-isp/workshopmobile
  • 3. 3 © BIGLOBE Inc. 本日、体験してもらいたい事 ドメインモデルと ソースコード の関係性を知る
  • 4. 4 © BIGLOBE Inc. エヴァンス本 第1部 エヴァンスが言っている事とは? 第1部 ドメインモデルを機能させる - 第1章 知識をかみ砕く - 第2章 コミュニケーションと言語の使い方 - 第3章 モデルと実装を結びつける エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践) https://www.amazon.co.jp/dp/4798121967
  • 5. 5 © BIGLOBE Inc. コードを作成する人々がモデルに責 任を感じていない場合や、 アプリケーションのためにモデルを 機能させる方法を理解していない場 合、 そのモデルはソフトウェアと無関係 になってしまう。 実践的モデラ
  • 6. 6 © BIGLOBE Inc. モデルとコードの両立 ドメインモデル ソースコード どっちも大事
  • 7. 7 © BIGLOBE Inc. 本日の目標
  • 8. 8 © BIGLOBE Inc. 本日の目標 モデルとコードを 往復して ドメインを育てられる ようになろう!
  • 9. 9 © BIGLOBE Inc. 本日の流れ
  • 10. 10 © BIGLOBE Inc. 本日の流れ 本日は 「格安SIMの料金計算システム」 の開発してもらいます。 ドメインモデルとソースコードは既にあります。 そこに仕様変更をお伝えしますので、 ・ドメインモデルを変更する。 ・ソースコードを変更する。 ・テストが通るようになる。 ・ドメインモデルとソースコードを比べる  本日のゴール
  • 11. 11 © BIGLOBE Inc. 本日の流れ 1. 導入 (20分) 2. 作業 (90分) 3. クロージング(10分)
  • 12. 12 © BIGLOBE Inc. チームになろう
  • 13. 13 © BIGLOBE Inc. お願いします 急激に 仲良くなって下さい
  • 14. 14 © BIGLOBE Inc. 自己紹介タイム ・1人1分 ・名前と本日の意気込み (日頃の役割、DDDについて、etc)
  • 15. 15 © BIGLOBE Inc. サービス仕様の説明
  • 16. 16 © BIGLOBE Inc. サービス仕様 プラン 格安SIM 1ギガ 料金:1000円 料金計算 1000円
  • 17. 17 © BIGLOBE Inc. サービス仕様 プラン 格安SIM 1ギガ 料金:1000円 3ギガ 料金:2000円 30ギガ 料金:6000円
  • 18. 18 © BIGLOBE Inc. サービス仕様 プラン 格安SIM 1ギガ 料金:1000円 3ギガ 料金:2000円 30ギガ 料金:6000円 エンタメフリーオプション 1200円 プランが3ギガ・30ギガの時に 購入可能(1ギガは購入不可)
  • 19. 19 © BIGLOBE Inc. 料金はいくら?
  • 20. 20 © BIGLOBE Inc. 作業を開始! その前に・・・
  • 21. 21 © BIGLOBE Inc. 議論のこころえ
  • 22. 22 © BIGLOBE Inc. 議論のこころえ 1. ドメインモデルには正解はありません。 2. 一般論より、このサービスに特化したモ デル、コードを目指しましょう。 3. きづいたこと、考えていること、分から ないこと、は声に出してみましょう。 発言をする事はチームにとって尊いこと です。 4. 安心して作業して下さい。 最後はドライバーがどうにかします。
  • 23. 23 © BIGLOBE Inc. 喧嘩しないためのコーディング規約 • 継承禁止(移譲を使う) • ドメイン層でプリミティブ型禁止(ラップする) (String、int、Integer、long、Long、etc) • ドメイン層でnull禁止 • クラス名は日本語 (時間ないから) 言語:Java (8) フレームワーク:Spring Boot, Lombok ※細かいことはドライバーがどうにかして
  • 24. 24 © BIGLOBE Inc. 現状の把握
  • 25. 25 © BIGLOBE Inc. 仕様書を読もう テーブルにある 「格安SIM仕様書」 を読み合わせましょう (3分)
  • 26. 26 © BIGLOBE Inc. モデルの確認 プラン 格安SIM 1ギガ 料金:1000円 料金計算 1000円 テーブル上のモデルを 見てみましょう (3分)
  • 27. 27 © BIGLOBE Inc. ソースコードの確認 ソースコードを 見てみよう (ReadMeも合わせて) (3分)
  • 28. 28 © BIGLOBE Inc. さっそく 作業を開始しましょう ※各テーブルの作業へ
  • 29. 29 © BIGLOBE Inc. モデリングの心得
  • 30. 30 © BIGLOBE Inc. 名詞・動詞を探してドメインモデルへ反映 名詞=ドメイン名やドメインの属性値の候補 動詞=ドメインのメソッドの候補 引数:処理に必要なドメインを渡す 戻り値:結果のドメインが戻ってくる ※戻り値なし(void)にはならない メソッドの考え方
  • 31. 31 © BIGLOBE Inc. 仕様書に書かれていないドメインを探そう ・特定のユースケース(処理)を考えみよう ・チームメンバの発言・語彙に注意しよう 例) ・料金を「〜料金」と言ってたりしないか? ・〜と〜は、のように何度も同じ組み合わせを 主語としていないか? サービス仕様(ドメイン)の理解が深まると、 新しい概念(ドメイン)が見えてくる
  • 32. 32 © BIGLOBE Inc. ドメインモデルの関係性を考えてみる 例) A -> Bの場合、 ・AはBを知っている。 ・AはBを持っている or AはBを利用する ・BはAを知らない。 ・BはAを持っていない and BはAを利用しない 依存関係の線をドメインモデルに書こう
  • 33. 33 © BIGLOBE Inc. コーディングの心得
  • 34. 34 © BIGLOBE Inc. こころえ ・可能な限りドライバーに指示してあげて下さい。 例) ~を追加して。~を~に変更して。など ・間違い、構文エラーを恐れない。 違っていたら、IDEとコンパイラとドライバーが 教えてくれます。 ・ドメインモデルをコードにする事が目標です。 頭の中にある処理をコードしたい訳ではない事 を心がけて下さい。
  • 35. 35 © BIGLOBE Inc. ドメインを作ろう ・クラス(ドメイン)を作ってみよう - ドメインモデルの通りに作る ・クラスが出来たらメソッドを追加して みよう ・プリミティブ型が残るのはモデルが足 りてない証拠
  • 36. 36 © BIGLOBE Inc. テストを動かしてみよう
  • 37. 37 © BIGLOBE Inc. 成功しました?
  • 38. 38 © BIGLOBE Inc. ドメインの深い考察を求めて
  • 39. 39 © BIGLOBE Inc. ドメインモデルとソースコードを比べてみよう ドメインモデルに存在しないクラスがない? ドメインモデルには存在しない依存関係がないか? モデル⇒コードへ落として 分かった事を議論してみる
  • 40. 40 © BIGLOBE Inc. ドメインモデルをゆさぶってみる 今後、このサービスで起きそうな仕様変 更を想像してみる ⇒影響が大きい場合、小さくする方法を議 論してみましょう 違う方式のモデルを考えてみよう。 なぜ、今のモデルの方が優れているのか 説明してみましょう。
  • 41. 41 © BIGLOBE Inc. ゴール!!
  • 42. 42 © BIGLOBE Inc. クロージング
  • 43. 43 © BIGLOBE Inc. 本日の目標 モデルとコードを 往復して ドメインを育てられる ようになろう!
  • 44. 44 © BIGLOBE Inc. モデルとコードの往復 〇メリット 全体が見えやすいため共有・議論の土台になる 〇デメリット あいまいさが許容される。間違いが分かりにくい ドメインモデル(=抽象的) ソースコード(=具体的) 〇メリット あいまいさや間違いに気づきやすい 〇デメリット 全体は見えにくいため議論が局所的になりやすい
  • 45. 45 © BIGLOBE Inc. 今日、体験してほしかったこと 抽象と具象を往復す る事で、ドメインへの 理解が深まる
  • 46. 46 © BIGLOBE Inc. 最後に
  • 47. 47 © BIGLOBE Inc. 本日のワークショップの 続きをしたい方へ朗報
  • 48. 48 © BIGLOBE Inc. BIGLOBEではエンジニアを募集中です https://hrmos.co/pages/biglobe/jobs?category=1265875468451753984
  • 49. 49 © BIGLOBE Inc. モデリングがもっと 上手になりたい人に朗報
  • 50. 50 © BIGLOBE Inc. モデリングのための本を販売中です。 モデリングが上達していく 過程をまとめた1冊です。 上達のために社内で 「モデリング勉強会」 を立ち上げて、 そこで得られた2年分のノウハウをわ ずか40ページに圧縮しました。 モデリングに悩んだ人にぜひ読んで もらいたい!! 技術書典6でも出版 内容 1冊500円
  • 51. 51 © BIGLOBE Inc. オウンドメディア始めました
  • 52. 52 © BIGLOBE Inc. ビッグローブで働く社員の様々な一面を紹介 内容 TechBlogもあります https://style.biglobe.co.jp