Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DDDで利用するアーキテクチャと プレゼンテーション層について/DDD Architec...
Search
Tomoyoshi Ogura
September 07, 2016
Design
4.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DDDで利用するアーキテクチャと プレゼンテーション層について/DDD Architecture
2016-09-07に行われた「Design For User #2 - コンポーネント指向から考えるUIと設計」で発表した時の資料です。
Tomoyoshi Ogura
September 07, 2016
More Decks by Tomoyoshi Ogura
See All by Tomoyoshi Ogura
Apache Kafkaとストリーム処理/Reactive Streams
tarugo07
4
3.5k
Kafkaを利用したアプリケーションでのオフセットの制御について/Kafka Offsets
tarugo07
1
1.3k
Other Decks in Design
See All in Design
【CEDEC2026】アートとゲームデザインをつなぐVFX設計『GRANBLUE FANTASY: Relink - Endless Ragnarok』における表現と可読性の両立
cygames
PRO
0
390
研修担当者が一番伸びた 熊本市役所✕AI『泥臭いAI研修』のワークショップ設計について
garyuten
2
450
設計の進め方と 品質特性品質特性
harakeishi
0
250
図面資産×AI 眠れる資産を起こす挑戦
aonomasahiro
0
190
情報を翻訳する-伝わる可視化3原則とオープンデータ活用-
hjmkth
1
320
「ツール」から「パートナー」へ。AI伴走時代のUXデザインとは?~操作を減らし、成果を最大にするための設計~
ncdc
1
710
AIスライドデザインを生成する仕組みを社内共有する
kenichiota0711
7
5.8k
The Art of Caring
klemens
0
370
なぜ、インサイトを貯めるのか?
tajima_kaho
3
2.5k
保育現場にAIを 〜人と技術に橋を架けるデザインで考えてきたこと〜 uiuxcamp2026-hoiku-ai-design
hiro93n
1
360
組織で働く大人が「知らないままにやってみる」を取り戻す方法とその意味〜企業で働く実務家による実践知の言語化を事例とした考察〜
chiemitaki
1
270
Техники структурирования беседы с собой, заказчиком и командо
ashapiro
0
230
Featured
See All Featured
Music & Morning Musume
bryan
47
7.3k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
460
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
The Cost Of JavaScript in 2023
addyosmani
55
10k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
ラッコキーワード サービス紹介資料
rakko
1
4.2M
The Curse of the Amulet
leimatthew05
2
13k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
570
The Mindset for Success: Future Career Progression
greggifford
PRO
0
440
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Google's AI Overviews - The New Search
badams
0
1.1k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
160
Transcript
Design For User #2 DDDで利用するアーキテクチャと プレゼンテーション層について Tomoyoshi Ogura 2016/09/07
自己紹介 • 小椋友芳 • ChatWork株式会社 CTO室所属 • ソフトウェアエンジニア • Scala、Akka、Golang、DDD
• twitter: @tomoyoshi_ogura • github: tarugo07
アジェンダ • Smart UIとDDDについて • DDDを実践するためのアーキテクチャ • プレゼンテーション層ファースト
Smart UIパターンとDDD
Smart UIパターンとは • 画面(UI)をベースに設計、実装を行うこと
Smart UIパターンの特徴 • 生産性が高くすぐに形にできる ◦ 単純なアプリ開発に向いている • 要件分析が不足していても問題にならない • 開発者に高いスキルは求めない
• 引き継ぎが特に必要ない • ふるまいやビジネスルールがUIのロジックに埋もれてしまう • 保守・運用が困難 ◦ UIが変わったら作り直しになる ◦ 修正の影響範囲が分かり難い
ドメイン駆動設計 • 利用する人の関心事に着目する ◦ Smart UIアンチパターン • ソフトウェアの複雑さに立ち向かう • ユビキタス言語
◦ ドメインエキスパートやソフトウェア開発者を含めたチーム全体で作り上げる共 通言語 • 境界づけられたコンテキスト ◦ ドメインモデルやユビキタス言語が同じ意味で使える範囲 • ドメインモデル
詳しくは読みましょう
アーキテクチャ
レイヤードアーキテクチャ
レイヤードアーキテクチャ • ドメインを隔離させる • UI、アプリケーション、ドメイン、インフラストラ クチャの四層で構成される • 依存関係は上から下 • レイヤーごとのモデル変換が必要
クリーンアーキテクチャ
クリーンアーキテクチャ • ドメインを中心に考える • 外部機能が独立 ◦ UI、データベース、外部サービスのAPI • 内側の層にのみ依存 •
ユースケース層がある ◦ アプリケーション固有のビジネスルール • 依存関係逆転の法則 (DIP : Dependency Inversion Principle) ◦ ドメインがインフラストラクチャに依存しない • https://8thlight.com/blog/uncle-bob/2012/08/13/th e-clean-architecture.html
プレゼンテーション層ファースト
ドメインが定義できない • ドメインエキスパートがいない • スタートアップ • 新規開発
どうするか • プレゼンテーション層を先にやる • UXファースト ◦ スケッチ、ワイヤーフレーム、モックアップ • プレゼンテーション層に目処がついたらDDD ◦
アプリケーションの関心事が整理できてる ◦ ユビキタス言語とコンテキストをきめる
まとめ • Smart UIはやめましょう ◦ 簡単なアプリケーションは除く • 複雑な関心事のアプリケーションはDDD ◦ ただしコストはかかる
• 関心事が明確にできない時はプレゼンテーション層から ◦ 立ち止まってDDDをはじめよう