Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
増田 亨
PDF, PPTX
6,605 views
現場で役立つシステム設計の原則
アジャイル札幌、DevLove仙台のジョイントイベントでお話させていただいた内容。
Software
◦
Related topics:
Object-Oriented Concepts
•
Read more
12
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 21
2
/ 21
3
/ 21
4
/ 21
Most read
5
/ 21
6
/ 21
7
/ 21
8
/ 21
9
/ 21
10
/ 21
11
/ 21
12
/ 21
13
/ 21
14
/ 21
15
/ 21
16
/ 21
17
/ 21
18
/ 21
19
/ 21
20
/ 21
21
/ 21
More Related Content
PDF
ドメイン駆動設計 基本を理解する
by
増田 亨
PDF
3週連続DDDその1 ドメイン駆動設計の基本を理解する
by
増田 亨
PPTX
ドメイン駆動設計の学習曲線とブレークポイント
by
増田 亨
PDF
正しいものを正しく作る塾-設計コース
by
増田 亨
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
PDF
ドメインモデルの育て方
by
増田 亨
PDF
リッチなドメインモデル 名前探し
by
増田 亨
PDF
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
ドメイン駆動設計 基本を理解する
by
増田 亨
3週連続DDDその1 ドメイン駆動設計の基本を理解する
by
増田 亨
ドメイン駆動設計の学習曲線とブレークポイント
by
増田 亨
正しいものを正しく作る塾-設計コース
by
増田 亨
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
ドメインモデルの育て方
by
増田 亨
リッチなドメインモデル 名前探し
by
増田 亨
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
What's hot
PDF
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
PDF
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
PDF
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
PDF
オブジェクト指向の設計と実装の学び方のコツ
by
増田 亨
PDF
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
by
増田 亨
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
by
A AOKI
PDF
ドメイン駆動設計の正しい歩き方
by
増田 亨
PDF
DDD sample code explained in Java
by
増田 亨
PPTX
もしSIerのエンジニアがSRE本を読んだら
by
Tomoki Ando
PDF
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
PDF
世界でいちばんわかりやすいドメイン駆動設計
by
増田 亨
PDF
ドメイン駆動設計(DDD)の実践Part2
by
増田 亨
PDF
ドメイン駆動設計サンプルコードの徹底解説
by
増田 亨
PDF
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
PDF
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
by
Recruit Lifestyle Co., Ltd.
ODP
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
by
pospome
PDF
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
PDF
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
PDF
例外設計における大罪
by
Takuto Wada
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
オブジェクト指向の設計と実装の学び方のコツ
by
増田 亨
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
by
増田 亨
マイクロサービス 4つの分割アプローチ
by
増田 亨
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
by
A AOKI
ドメイン駆動設計の正しい歩き方
by
増田 亨
DDD sample code explained in Java
by
増田 亨
もしSIerのエンジニアがSRE本を読んだら
by
Tomoki Ando
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
世界でいちばんわかりやすいドメイン駆動設計
by
増田 亨
ドメイン駆動設計(DDD)の実践Part2
by
増田 亨
ドメイン駆動設計サンプルコードの徹底解説
by
増田 亨
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
by
Recruit Lifestyle Co., Ltd.
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
by
pospome
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
例外設計における大罪
by
Takuto Wada
Viewers also liked
PDF
ドメイン駆動設計 複雑さに立ち向かう
by
増田 亨
PDF
さくさく要件定義セミナー in 大阪
by
Zenji Kanzaki
PDF
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
by
増田 亨
PPTX
凡人の凡人による凡人のためのデザインパターン第一幕 Public
by
bonjin6770 Kurosawa
PPTX
20160526 依存関係逆転の原則
by
bonjin6770 Kurosawa
PDF
JSUG 20141127 「Spring Bootを用いたドメイン駆動設計」
by
Junichiro Kazama
PDF
現場で役立つシステム設計の原則
by
増田 亨
PDF
ドメイン駆動設計 の 実践 Part3 DDD
by
増田 亨
PDF
越境する情シス:進化可能なアーキテクチャを手に入れる
by
増田 亨
PDF
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
by
増田 亨
ドメイン駆動設計 複雑さに立ち向かう
by
増田 亨
さくさく要件定義セミナー in 大阪
by
Zenji Kanzaki
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
by
増田 亨
凡人の凡人による凡人のためのデザインパターン第一幕 Public
by
bonjin6770 Kurosawa
20160526 依存関係逆転の原則
by
bonjin6770 Kurosawa
JSUG 20141127 「Spring Bootを用いたドメイン駆動設計」
by
Junichiro Kazama
現場で役立つシステム設計の原則
by
増田 亨
ドメイン駆動設計 の 実践 Part3 DDD
by
増田 亨
越境する情シス:進化可能なアーキテクチャを手に入れる
by
増田 亨
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
by
増田 亨
Similar to 現場で役立つシステム設計の原則
PDF
「ドメイン駆動設計」の複雑さに立ち向かう
by
増田 亨
PPTX
オブジェクト指向設計の原則
by
Toru Koido
PDF
ドメイン駆動設計 本格入門
by
増田 亨
PDF
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
PDF
オブジェクト指向による変更容易性の高いソフトウェア設計技法
by
fujiiryosuke1
PPTX
Object Oriented Design
by
Atsushi Suzuki
PDF
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】
by
Tomoharu ASAMI
PDF
Rubyを使ったオブジェクト指向デザイン実践:第一章発表
by
Yuta Okazaki
PPTX
20100324 勉強会資料(ドメイン駆動)
by
Masayuki Kanou
PDF
Modeling in the Agile Age and casual astah models
by
Kenji Hiranabe
PPTX
オブジェクト指向的なコーディング
by
Norio Matsumoto
PDF
ドメイン駆動設計入門
by
増田 亨
PDF
DDD 20121106 SEA Forum November
by
増田 亨
PPT
ドメインロジックの実装方法とドメイン駆動設計
by
Tadayoshi Sato
PDF
変更を楽で安全なものにするためのオブジェクト指向設計の指針.pdf
by
naoya takahashi
PDF
実践に向けたドメイン駆動設計のエッセンス
by
増田 亨
PDF
実践に向けたドメイン駆動設計のエッセンス
by
GuildWorks
PDF
クラウドアプリケーションのための オブジェクト指向分析設計講座 (1)
by
Tomoharu ASAMI
PDF
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
by
Tomoharu ASAMI
PDF
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
by
Tomoharu ASAMI
「ドメイン駆動設計」の複雑さに立ち向かう
by
増田 亨
オブジェクト指向設計の原則
by
Toru Koido
ドメイン駆動設計 本格入門
by
増田 亨
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
オブジェクト指向による変更容易性の高いソフトウェア設計技法
by
fujiiryosuke1
Object Oriented Design
by
Atsushi Suzuki
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】
by
Tomoharu ASAMI
Rubyを使ったオブジェクト指向デザイン実践:第一章発表
by
Yuta Okazaki
20100324 勉強会資料(ドメイン駆動)
by
Masayuki Kanou
Modeling in the Agile Age and casual astah models
by
Kenji Hiranabe
オブジェクト指向的なコーディング
by
Norio Matsumoto
ドメイン駆動設計入門
by
増田 亨
DDD 20121106 SEA Forum November
by
増田 亨
ドメインロジックの実装方法とドメイン駆動設計
by
Tadayoshi Sato
変更を楽で安全なものにするためのオブジェクト指向設計の指針.pdf
by
naoya takahashi
実践に向けたドメイン駆動設計のエッセンス
by
増田 亨
実践に向けたドメイン駆動設計のエッセンス
by
GuildWorks
クラウドアプリケーションのための オブジェクト指向分析設計講座 (1)
by
Tomoharu ASAMI
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
by
Tomoharu ASAMI
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
by
Tomoharu ASAMI
More from 増田 亨
PDF
ソフトウェア開発のやり方の改善
by
増田 亨
PDF
事業活動モデル・システム機能モデル・ビジネスロジックの記述
by
増田 亨
PDF
ドメインオブジェクトの設計ガイドライン
by
増田 亨
PDF
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
PDF
オブジェクト指向プログラミングの現在・過去・未来
by
増田 亨
PDF
ドメイン駆動設計 コアドメインを語り合ってみよう
by
増田 亨
PDF
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
by
増田 亨
PDF
ドメイン駆動設計という設計スタイル
by
増田 亨
PDF
プロダクトづくりのためのソフトウェア設計スタイル
by
増田 亨
PDF
ソフトウェア設計の学び方を考える
by
増田 亨
PDF
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
by
増田 亨
PDF
ビジネスルールの複雑さに立ち向かう
by
増田 亨
PDF
ソフトウェアの核心にある複雑さに立ち向かう
by
増田 亨
PDF
アジャイルなソフトウェア設計を目指して
by
増田 亨
PDF
ドメイン駆動設計をゲーム開発に活かす
by
増田 亨
PDF
SoR 2.0 summary
by
増田 亨
PDF
毎日が越境だ!
by
増田 亨
PDF
SoR 2.0 基幹システムの再定義と再構築
by
増田 亨
PDF
ドメイン駆動設計とは何か 【入門編】
by
増田 亨
ソフトウェア開発のやり方の改善
by
増田 亨
事業活動モデル・システム機能モデル・ビジネスロジックの記述
by
増田 亨
ドメインオブジェクトの設計ガイドライン
by
増田 亨
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
オブジェクト指向プログラミングの現在・過去・未来
by
増田 亨
ドメイン駆動設計 コアドメインを語り合ってみよう
by
増田 亨
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
by
増田 亨
ドメイン駆動設計という設計スタイル
by
増田 亨
プロダクトづくりのためのソフトウェア設計スタイル
by
増田 亨
ソフトウェア設計の学び方を考える
by
増田 亨
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
by
増田 亨
ビジネスルールの複雑さに立ち向かう
by
増田 亨
ソフトウェアの核心にある複雑さに立ち向かう
by
増田 亨
アジャイルなソフトウェア設計を目指して
by
増田 亨
ドメイン駆動設計をゲーム開発に活かす
by
増田 亨
SoR 2.0 summary
by
増田 亨
毎日が越境だ!
by
増田 亨
SoR 2.0 基幹システムの再定義と再構築
by
増田 亨
ドメイン駆動設計とは何か 【入門編】
by
増田 亨
現場で役立つシステム設計の原則
1.
現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法 増田 亨 2017年8月25日
2.
第1章 小さくまとめてわかりやすくする 第2章 場合分けのロジックを整理する 第3章
業務ロジックをわかりやすく整理する 第4章 ドメインモデルの考え方で設計する 第5章 アプリケーション機能を組み立てる 第6章 データベースの設計とドメインオブジェクト 第7章 画面とドメインオブジェクトの設計を連動させる 第8章 アプリケーション間の連携 第9章 オブジェクト指向の開発プロセス 第10章 オブジェクト指向設計の学び方と教え方
3.
本日の内容 書きたくなかった 書き忘れた うまく書けなかった Q&A / 意見交換
4.
書きたくなかった • 自分はやっていないこと • コードの具体例で示せないこと •
現場で役に立たない総論や抽象論 • 自分では「どうでも良い」「それは違う」と思っ ていることを「それもありです」と言うこと stream(), extends, private final, … JPA, Active Record, Lombok, … TDD, CI, Docker, … Java以外のプログラミング言語 スクリプト言語
5.
書き忘れた 神崎さんのRDRAへの言及 ドメイン駆動設計との関係 いくつかの実装パターン いくつかのドメインオブジェクト 現場への取り入れ方
6.
RDRA • 第4章 ドメインモデルの考え方で設計する –
全体と部分をいったりきたりしながら作っていく – 全体を俯瞰する道具 • RDRA/神崎さんと出会ってから、設計のアプロー チが変わった – リレーションシップ駆動の効果に目覚めた • 書くべきだった – RDRAの紹介 – 参考文献の提示
7.
ドメイン駆動設計との関係 • 第5章 アプリケーション機能を組み立てる 第6章
データベース設計とドメインオブジェクト – Entity, Repository, Aggregateの設計パターン • エバンス本の真価 – 第3部 深いモデルの探求(の実践ストーリー) – 第4部 戦略的設計(誰がやるのか)
8.
実装パターン • 第1章 小さくまとめてわかりやすくする –
Range オブジェクト ( from, to ) • 期間、範囲 • 上限が未指定/下限が未指定 • Range 間の演算 • 第2章 場合分けのロジックを整理する – Bean Validationによる if文の激減 – Spring MVC @Validated • バリデーショングループ
9.
覚えておくとよいドメインオブジェクト • Location パターン –
「場所」という関心事と判断/加工/計算ロジック • Category パターン – 「分類」という関心事と判断/加工/計算ロジック • Role パターン – 「権限」という関心事 – 「認可」という関心事 • できる/できない • 見える/見えない • その判断ロジック、導出ロジック
10.
現場への取り入れ方 • まずは自分から – 具体的に手を動かして –
少しずつ時間をかけて – 結果を形で見せる • コードの見た目(わかりやすさ) • 修正/拡張のスピード • 品質の安定性 • 唯一の正解とか最終回答とかはない – どんな答えも、もっと良いものがあるはず • 個人の裁量範囲は思っているより広い – 逸脱するとやばいポイントはあるが、そこを避ければだいたいはOK • やりすぎることで見えてくるものがある – 理想と現実の境目 – 「失敗体験」という財産
11.
うまく書けなかった 自分の頭の中では、もっと書けると思っていたこと
12.
4章 ドメインモデルの考え方で設計する • 業務の関心事の基本パターンを覚えておく – 自分が使っているいろいろな分析パターン –
コード例 • ドメインオブジェクトの設計を段階的に改善 – 集中のために切り捨てる – 切り捨てに保険をかける(安心して切り捨てる) – 小さな実験 – 違和感(なんか違う)へのこだわり – ブレークスルーと決断
13.
5章 アプリケーション機能を組み立てる • ドメインモデルと「入出力」の関心事の分離 – 分離できない時に起きがちな問題の具体例 –
うまく分離できた場合の効果の具体例 • Repository – すべてのオブジェクトはメモリ上に存在すると考える • データベースの永続化の隠蔽手段とは別のとらえ方 – 設計パターン • findBy( Identifier identifier ) • listOf( Criteria criteria ) • 検査メソッド : count(), isExist(), …
14.
6章 データベースの設計とドメインオブジェクト • OR マッピングのコード例
(4点セット) – UserRepository.java (インタフェース宣言) – UserDatasource.java (実装クラス) – UserMapper.java – UserMapper.xml • 事実の記録のテーブル設計の具体例 – 前後関係の記録 – 関連性(交差テーブル)の記録 – 任意項目の扱い(未記入、未定、先送り、… ) • 参照系のテーブル設計の具体例 – リビジョン管理と最新レコードの参照 – 残高更新 – 未読/未済 – 状態遷移の記録と現在の状態の参照
15.
7章 画面とドメインオブジェクトの設計を連動させる • 画面デザインの4原則 近接/整列/対比/反復 – 画面の具体例 –
HTML の具体例 – CSS クラス設計の具体例(コード例) • Semantic UI – ドメインオブジェクトとの連動のコード例 • Thymeleaf th:* 属性 – 画面の部品化の具体例 • Thymeleaf th:include/th:replace
16.
8章 アプリケーション間の連携 • コードの具体例 – @RestController –
JSON/XML と オブジェクトのマッピング例 • 非同期メッセージング – 困っていること – 解決の考え方 – 実装の具体例 • ドメイン駆動設計の4部(戦略的設計)への関 連づけ
17.
9章 オブジェクト指向の開発プロセス • コードの自己文書化の具体例 – ソースコードをドキュメントとして活用する工夫 •
SI(受託開発)ビジネスでの取り組み方 – 発注の立場 – 受注の立場 – 二次受け、三次受けの立場 • 役割分担制への取り組み – デザイナ – 品質保証部門 – 基盤チーム – 運用チーム …
18.
10章 オブジェクト指向の学び方と教え方 • オブジェクト指向の設計スキル向上のための コードレビューの重点ポイント – 導入期 –
広げていく段階 – 発展させる段階 • オブジェクト指向の基礎知識(?) – もとになったアイデアを知る(Simula 67) – 実現の仕組みを理解する( klass ポインタ ) – 設計スタイルの多様性と取捨選択 • いろいろな継承 • いろいろな多態 • いろいろなカプセル化
19.
現場への取り入れ方/根付かせ方 • 主体 – 個人/有志/チーム/組織 •
ペース配分(学習曲線) – 徐々に時間をかけて – ブレークスルー – 徐々に時間をかけて • 方向 – 変えずに幅を広げてみる – 別の角度から取り組んでみる • 質と量 – 質の違いを実感する – 量をこなして体で覚える
20.
どんな状況でも改善はできる どんなときでもあなたから改善を始められる どんなときでも今日から改善を始められる by Kent Beck,
Extreme Programming 少しずつ 時間をかけて
21.
Q & A 意見交換 第1章
小さくまとめてわかりやすくする 第2章 場合分けのロジックを整理する 第3章 業務ロジックをわかりやすく整理する 第4章 ドメインモデルの考え方で設計する 第5章 アプリケーション機能を組み立てる 第6章 データベースの設計とドメインオブジェクト 第7章 画面とドメインオブジェクトの設計を連動させる 第8章 アプリケーション間の連携 第9章 オブジェクト指向の開発プロセス 第10章 オブジェクト指向設計の学び方と教え方
Download