SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
レガシーの複雑さに立ち向かう
ドメイン駆動設計のアプローチ
2019-6-1
ギルドワークス 増田 亨
Legacy Code Meetup Kagoshima 2019
ドメイン駆動設計でなぜつくるのか?
22019/6/1
進化を続けるソフトウェアを手に入れる
ソフトウェアの変更を楽で安全にする
2019/6/1 3
この価値観に振り切っている
リリース後、あまりコードを変えない/変えられない、という世界とは別のアプローチ
ドメイン駆動設計の考え方
2019/6/1 4
ソフトウェアの核心にある
複雑さに立ち向かう
2019/6/1 5
核心にある複雑さ
2019/6/1 6
ここに焦点を合わせて集中する
その効果が、全体の構造の改善に波及する
ソフトウェアの複雑さは
ビジネス活動の複雑さに由来する
ビジネスルール:ビジネスの活動を駆動し、制約する約束事
ドメインロジック:ビジネスルールをコードで表現したもの
ドメイン駆動設計の考え方
2019/6/1 7
中でもビジネスルールの複雑さが
ソフトウェアの複雑さの根本原因
核心にある複雑さを
適切に扱う
核心と周辺との
依存関係が明確になる
全体の構造の
改善に波及する
周辺の
複雑さが軽減される
2019/6/1 8
ビジネスルールの複雑さ
核心にある複雑さをどう扱うか?
2019/6/1 9
ビジネスルールの複雑さ
核心にある複雑さ
に立ち向かう
ビジネスの活動を
継続的に学ぶ
モデルと実装を
密に結合する
ドメイン層を
独立させる
コアドメインに
集中する
システム間の秩序の
改善を続ける
ビジネスを
深く洞察する
ビジネスルールの複雑さ
2019/6/1 10
レガシーコードの改善に
ドメイン駆動設計は役に立つか?
2019/6/1 11
即効性はない
2019/6/1 12
じわじわ効いてくる
2019/6/1 13
レガシーコード
2019/6/1 14
どこに何が書いてあるか、わかりにくい
ひとつの修正が、あちこちに影響する
変更が障害を引き起こす
2019/6/1 15
変更がやっかいで危険
2019/6/1 16
ドメイン駆動設計のアプローチで
レガシーに立ち向かってみた
2019/6/1 17
心の準備
手がかりを
見つける
区分値の
調査と分析
導出項目の
調査と分析
中核を見極める
中核だけを
実装してみる
複雑さの核心に
メスを入れる
アプリケーションを
組み立てなおす
2019/6/1 18
こころの準備
2019/6/1 19
✓ありがちな設計
➢トランザクションスクリプト(入出力機能単位のモジュール)
➢バッチ処理によるつじつまあわせ
➢テーブルは更新可能なデータファイル(重複と不整合)
✓ありがちな状況
➢設計や分析の資料はない/あっても古くてコードと一致していない
➢命名規約は、番号重視 and/or 省略重視 ( KBN01 )
➢使われていないロジック、データ、区分が混在
✓最初から、こういうもんだと思って取り組む
➢期待しない
➢恨まない
2019/6/1 20
手がかりを見つける
2019/6/1 21
✓実データ、実画面、実帳票、実ファイル
➢実際に使われているデータ(事実の記録)が最大の手がかり
➢プログラムの意図は、コードからは読み取りにくい
そういう設計のスタイルだから
コードは意図の表現ではなく、データ処理手続きの表明
✓目のつけどころ
➢区分値 ビジネスルールの複雑さの源泉(if文, switch文)
➢導出項目 ビジネスルールに基づいた計算や判定の結果
2019/6/1 22
区分値の調査と分析
2019/6/1 23
✓コードに書かれたif文やswitch文と格闘する前に、
区分体系を徹底的に調査する
✓データベースの区分カラム
➢GROUP BY 句で、実際のデータ内容の確認
➢区分によって、使うカラム/使わないカラム、意味の異なるカラムの特定
✓画面の区分表示、区分選択ボックス
➢データベースの区分カラムとの対応
➢業務的な使い方の確認
2019/6/1 24
導出項目の調査と分析
2019/6/1 25
✓導出項目の特定
➢ビジネスルールにもとづいた計算や判定の結果
金額、数量、期日、場所、区分、…
➢画面に表示された導出項目
➢データベースに記録された導出項目、導出レコード
✓導出ルール(計算ルールや判定ルール)を調べる
➢業務マニュアル/利用ガイド/料金表 …
➢ソースコード
➢ヒアリング(ありえないデータ、ありえない結果を判断できる人)
2019/6/1 26
中核を見極める
2019/6/1 27
✓導出のロジック(計算式とif文/switch文)に焦点を合わせる
✓単なるデータの記録と参照は、ばっさりスコープからはずす
➢データベースは、計算と判定に使う項目の記録のみを対象にする
➢画面も、計算と判定に使うための入力と、導出結果のみを対象にする
✓ソースコード中の、導出ロジックの記述場所を特定する
➢区分値を使った if文/swtich文
➢if文/switch文の評価式の値を算出している個所
2019/6/1 28
中核だけを実装してみる
2019/6/1 29
✓データベース
➢導出に使うデータと、導出結果の記録に絞り込んだデータベースを用意する
➢FACTを正しく記録するためのテーブル群を新規に設計
イミュータブルデータモデル
データベース制約を徹底する
特に NOT NULL 制約
➢現行のデータベースから必要なFACTデータを複製する仕組みづくり
✓導出ロジックのプログラミングと検証
➢FACT駆動で作成した新データベースを使って、必要な計算と判定ができるプ
ログラムを開発する(UIは作らない)
➢計算結果・判定結果を、既存データベースの該当カラムと突き合わせる
2019/6/1 30
複雑さの核心に切り込む
2019/6/1 31
✓既存の区分体系
➢未使用の区分
➢今となっては意図が不明な区分
➢複数の区分軸の混在
✓区分体系の整理
➢未使用を使わない
➢意図不明もいったん使わない
➢明らかな例外を、事前処理で除外する
➢残った区分を論理的に分解してみる
2軸か3軸の組み合わせになっていることが多い
すべての組み合わせが網羅されていないことが多い(その理由を分析する)
2019/6/1 32
アプリケーションを組み立てなおす
2019/6/1 33
✓中核は手に入った
➢FACTを記録したテーブル群(と実データ)
➢FACTを使った導出プログラム(計算モデル)
➢論理的に整理しなおした区分
➢それらを使った計算サービスや判定サービス
✓中核と画面や外部インタフェースをつなげる
➢選択肢1:中核に合わせて、画面や外部インタフェースを作り直す
➢選択肢2:既存の画面モジュール/外部接続モジュールから中核を呼び出す
✓記録して参照するだけのデータ群の扱い
➢選択肢1:中核の周辺に追加する
➢選択肢2:既存の処理にまかせる
2019/6/1 34
心の準備
手がかりを
見つける
区分値の
調査と分析
導出項目の
調査と分析
中核を見極める
中核だけを
実装してみる
複雑さの核心に
メスを入れる
アプリケーションを
組み立てなおす
2019/6/1 35
手ごたえは十分だった
このやり方を積み重ねれば突破できそうな自信はあった
まわりの理解を得ることに失敗した
チーム内での試行錯誤に集中しすぎた
2019/6/1 36
もう一回やれば、段取りや作業の見通しを事前に説明し、
進捗状況を適宜、報告することはできそう
一方で、短期的で劇的な効果は望めない
そこの同意を取り付けるのは難しいかもしれない
2019/6/1 37
いちばんの成果は、開発者のビジネス理解が進み
コードやデータの全体の見通しが改善したこと
数量化・可視化は難しいが
もう一度やるなら
やはり、このアプローチでやりたい
2019/6/1 38

Weitere ähnliche Inhalte

Was ist angesagt?

ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイルドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル増田 亨
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで増田 亨
 
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考えるソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える増田 亨
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring増田 亨
 
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13Amazon Web Services Japan
 
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかDDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかKoichiro Matsuoka
 
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜Yoshiki Nakagawa
 
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイルプロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル増田 亨
 
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3  ドメイン駆動設計 戦略的設計3週連続DDDその3  ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計増田 亨
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意Yoshitaka Kawashima
 
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018Yusuke Suzuki
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース増田 亨
 
DDDモデリング勉強会 #6
DDDモデリング勉強会 #6DDDモデリング勉強会 #6
DDDモデリング勉強会 #6株式会社Jurabi
 
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)Koichiro Matsuoka
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!Tetsutaro Watanabe
 
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみようドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう増田 亨
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java増田 亨
 

Was ist angesagt? (20)

ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイルドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
 
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考えるソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
 
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
 
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかDDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
 
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜
 
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイルプロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
 
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3  ドメイン駆動設計 戦略的設計3週連続DDDその3  ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
 
DDDモデリング勉強会 #6
DDDモデリング勉強会 #6DDDモデリング勉強会 #6
DDDモデリング勉強会 #6
 
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみようドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java
 

Ähnlich wie レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ

ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう増田 亨
 
IBM Log Analysis with LogDNAを評価した話
 IBM Log Analysis with LogDNAを評価した話 IBM Log Analysis with LogDNAを評価した話
IBM Log Analysis with LogDNAを評価した話Daisuke Hiraoka
 
Construction industry blockchain event munetoshi yamada
Construction industry blockchain event munetoshi yamadaConstruction industry blockchain event munetoshi yamada
Construction industry blockchain event munetoshi yamadaSBI R3 Japan
 
オープンソースデータベース GridDBとそのオープンコミュニティ活動
オープンソースデータベース GridDBとそのオープンコミュニティ活動オープンソースデータベース GridDBとそのオープンコミュニティ活動
オープンソースデータベース GridDBとそのオープンコミュニティ活動griddb
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio CodeTakashi Okawa
 
[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力
[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力
[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力オラクルエンジニア通信
 
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬日本マイクロソフト株式会社
 
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現
CData Sync × Google BigQuery  3ステップで各データソースとのデータ連携を実現CData Sync × Google BigQuery  3ステップで各データソースとのデータ連携を実現
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現CData Software Japan
 
de:code 2019 Cloud トラック 総まとめ! 完全版
de:code 2019 Cloud トラック 総まとめ! 完全版de:code 2019 Cloud トラック 総まとめ! 完全版
de:code 2019 Cloud トラック 総まとめ! 完全版Minoru Naito
 
DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)
DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)
DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)Masanori KAMAYAMA
 
Windows Server 2019 Container & WSL
 Windows Server 2019 Container & WSL Windows Server 2019 Container & WSL
Windows Server 2019 Container & WSLMiho Yamamoto
 
DDDモデリングハンズオン - レガシーをぶっつぶせ。現場でDDD!2nd
DDDモデリングハンズオン - レガシーをぶっつぶせ。現場でDDD!2ndDDDモデリングハンズオン - レガシーをぶっつぶせ。現場でDDD!2nd
DDDモデリングハンズオン - レガシーをぶっつぶせ。現場でDDD!2ndBIGLOBE Inc.
 
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェストIssei Hiraoka
 
DDD Alliance レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡
DDD Alliance レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡DDD Alliance レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡
DDD Alliance レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡BIGLOBE Inc.
 
20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発Mao Ohnishi
 
Oracle Cloud PaaS & IaaS:2019年11月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2019年11月度サービス情報アップデートOracle Cloud PaaS & IaaS:2019年11月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2019年11月度サービス情報アップデートオラクルエンジニア通信
 
富士ゼロックスのクラウド活用で起こした変革
富士ゼロックスのクラウド活用で起こした変革富士ゼロックスのクラウド活用で起こした変革
富士ゼロックスのクラウド活用で起こした変革Yuta Watanabe
 
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...オラクルエンジニア通信
 
Fin-JAWS セキュリティ担当者が見たAWS re:Inforce 2019
Fin-JAWS セキュリティ担当者が見たAWS re:Inforce 2019Fin-JAWS セキュリティ担当者が見たAWS re:Inforce 2019
Fin-JAWS セキュリティ担当者が見たAWS re:Inforce 2019Yusuke Karasawa
 
11月12日レスポンシブWebデザインセミナー資料
11月12日レスポンシブWebデザインセミナー資料11月12日レスポンシブWebデザインセミナー資料
11月12日レスポンシブWebデザインセミナー資料Yuta Sayama
 

Ähnlich wie レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ (20)

ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
 
IBM Log Analysis with LogDNAを評価した話
 IBM Log Analysis with LogDNAを評価した話 IBM Log Analysis with LogDNAを評価した話
IBM Log Analysis with LogDNAを評価した話
 
Construction industry blockchain event munetoshi yamada
Construction industry blockchain event munetoshi yamadaConstruction industry blockchain event munetoshi yamada
Construction industry blockchain event munetoshi yamada
 
オープンソースデータベース GridDBとそのオープンコミュニティ活動
オープンソースデータベース GridDBとそのオープンコミュニティ活動オープンソースデータベース GridDBとそのオープンコミュニティ活動
オープンソースデータベース GridDBとそのオープンコミュニティ活動
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
 
[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力
[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力
[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力
 
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
 
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現
CData Sync × Google BigQuery  3ステップで各データソースとのデータ連携を実現CData Sync × Google BigQuery  3ステップで各データソースとのデータ連携を実現
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現
 
de:code 2019 Cloud トラック 総まとめ! 完全版
de:code 2019 Cloud トラック 総まとめ! 完全版de:code 2019 Cloud トラック 総まとめ! 完全版
de:code 2019 Cloud トラック 総まとめ! 完全版
 
DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)
DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)
DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)
 
Windows Server 2019 Container & WSL
 Windows Server 2019 Container & WSL Windows Server 2019 Container & WSL
Windows Server 2019 Container & WSL
 
DDDモデリングハンズオン - レガシーをぶっつぶせ。現場でDDD!2nd
DDDモデリングハンズオン - レガシーをぶっつぶせ。現場でDDD!2ndDDDモデリングハンズオン - レガシーをぶっつぶせ。現場でDDD!2nd
DDDモデリングハンズオン - レガシーをぶっつぶせ。現場でDDD!2nd
 
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
 
DDD Alliance レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡
DDD Alliance レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡DDD Alliance レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡
DDD Alliance レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡
 
20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発
 
Oracle Cloud PaaS & IaaS:2019年11月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2019年11月度サービス情報アップデートOracle Cloud PaaS & IaaS:2019年11月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2019年11月度サービス情報アップデート
 
富士ゼロックスのクラウド活用で起こした変革
富士ゼロックスのクラウド活用で起こした変革富士ゼロックスのクラウド活用で起こした変革
富士ゼロックスのクラウド活用で起こした変革
 
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...
 
Fin-JAWS セキュリティ担当者が見たAWS re:Inforce 2019
Fin-JAWS セキュリティ担当者が見たAWS re:Inforce 2019Fin-JAWS セキュリティ担当者が見たAWS re:Inforce 2019
Fin-JAWS セキュリティ担当者が見たAWS re:Inforce 2019
 
11月12日レスポンシブWebデザインセミナー資料
11月12日レスポンシブWebデザインセミナー資料11月12日レスポンシブWebデザインセミナー資料
11月12日レスポンシブWebデザインセミナー資料
 

Mehr von 増田 亨

ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善増田 亨
 
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述増田 亨
 
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来増田 亨
 
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primerオブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer増田 亨
 
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かうビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう増田 亨
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説増田 亨
 
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指してアジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して増田 亨
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす増田 亨
 
SoR 2.0 summary
SoR 2.0 summarySoR 2.0 summary
SoR 2.0 summary増田 亨
 
毎日が越境だ!
毎日が越境だ!毎日が越境だ!
毎日が越境だ!増田 亨
 
SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築増田 亨
 
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】増田 亨
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方増田 亨
 
越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる増田 亨
 
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイルドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル増田 亨
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則増田 亨
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則増田 亨
 

Mehr von 増田 亨 (17)

ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
 
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
 
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
 
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primerオブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
 
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かうビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指してアジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
 
SoR 2.0 summary
SoR 2.0 summarySoR 2.0 summary
SoR 2.0 summary
 
毎日が越境だ!
毎日が越境だ!毎日が越境だ!
毎日が越境だ!
 
SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築
 
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
 
越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる
 
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイルドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
 

レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ