SlideShare a Scribd company logo
1 of 43
Download to read offline
オブジェクト指向プログラミング
の基礎知識
2019年11月23日
ギルドワークス 増田 亨
JJUG CCC 2019 Fall
Javaで学ぶ
#jjug_ccc #ccc_a2
自己紹介
2019/11/23 2
増田 亨 (masuda220)
所属:ギルドワークス、有限会社システム設計
職業:プログラマ+α
今日は、この本の背景にある
オブジェクト指向プログラミングの
基本的な考え方を説明します
オブジェクト指向プログラミング
2019/11/23 3
オブジェクト指向プログラミング
モジュール性
シームレス性
2019/11/23 4
オブジェクト指向プログラミング
モジュール性
2019/11/23 5
プログラムの分割単位の考え方
手続き(機能)ではなく、型(値の種類)で
プログラムを分割する技法
コードの重複や散在を防ぎ、変更を楽で安全にする
変更容易性や再利用性の向上
オブジェクト指向プログラミング
シームレス性
2019/11/23 6
分析~モデリング~設計~プログラミング~保守
一連の活動の継ぎ目をなくす開発の手法
アジャイル、XP、インクリメンタルな設計
適応型の開発、仮説検証型の開発
ステップアップセッション
2019/11/23 7
ということで、わかりやすく、具体的に
持ち帰ってほしい言葉
型
カプセル化
2019/11/23 8
この二つの言葉が腹落ちすると、
オブジェクト指向プログラミングが
びっくりするくらい
わかる/使える
型
2019/11/23 9
型
2019/11/23 10
こわくないよ
Javaを書いていれば、みんな無意識に使っている
それを意識するようにすればよいだけ
型の具体例
2019/11/23 11
int quantity;
quantity = 1;
boolean isEmpty;
isEmpty = false;
(1 + 2); // int型
(1 > 0); // boolean型
型とは何か
2019/11/23 12
型
値の範囲を制限
値の操作を制限
型とは何か
2019/11/23 13
型
値の範囲を制限
値の操作を制限
int型 -21億~+21億
boolean型 trueかfalse
型とは何か
2019/11/23 14
型
値の範囲を制限
値の操作を制限
int型 -21億~+21億
boolean型 trueかfalse
int型 +,-,*,/,%
==,!=,>,<
boolean型 &&, ||
==, !=
型とは何か
2019/11/23 15
値の範囲を制限する
値の操作を制限する
型は、プログラムの記述と実行に、構造と秩序を与える
型は、コードの意図を表現する
不正な値の範囲と不正な操作に起因するエラーを事前に検出できる
ということを、それと意識せずに使っている
カプセル化
2019/11/23 16
カプセル化
2019/11/23 17
わかったようでわからない
オブジェクト指向プログラミングを理解する肝
カプセルとは何か
2019/11/23 18
カプセル:小さな入れ物(ケースと同じ語源)
カプセル化とは何か
2019/11/23 19
小さな入れ物に
詰め込んで収納すること
何を?
クラスを使ったカプセル化
2019/11/23 20
何を収納するのか?
クラスを使ったカプセル化
2019/11/23 21
何を収納するのか?
型の定義
型の定義
2019/11/23 22
型
値の範囲の制限
値の操作の制限
int型 -21億~+21億
boolean型 trueかfalse
int型 +,-,*,/,%
==,!=,>,<
boolean型 &&, ||
==, !=
カプセル化
2019/11/23 23
型の定義をクラスに収納する
class Quantity {
// 値の範囲の制限
int value;
Quantity(int value) {
if (value < 0)
throw new IllegalArgumentException();
}
// 操作の制限
Quantity add(Quantity other) { … }
Quantity subtract(Quantity other) { … }
}
2019/11/23 24
int quantity;
quantity = 3;
Quantity quantity;
quantity =
new Quantity(3);
int型
カプセル化していない
(範囲と操作を制限していない)
Quantity型
カプセル化している
(範囲と操作を制限している)
quantity * quantity ???
quantity = -99 ???
こういう怪しげな操作ができてしまう
足し算と引き算だけできる
負の値は持てない
2019/11/23 25
型
値の種類
値の範囲の定義
値の操作の定義
カプセル化 クラス
プログラムの作成単位
変数の定義
+
メソッドの定義
抽象的な概念 コードで表現
カプセル化しない
int, long, char, boolean, int[], char[], …
プリミティブ型(Java言語に組み込まれた型)
カプセル化で何がうれしいの?
2019/11/23 26
カプセル化で何がうれしいの?
2019/11/23 27
カプセル化しない
カプセル化する
(Java標準ライブラリ)
char[] value; String
Object[] data; ArrayList<Type>
int[] value;
int scale;
BigDecimal
int year, short month,
short day
LocalDate
どちらでプログラミングするほうが、楽で安全か?
カプセル化すると
2019/11/23 28
ロジックがあちこちに散らばらない
型名、メソッド名で意図が明確になる
適切な値、適切な操作に制限できる
コードが整理でき、変更が楽で安全になる
カプセル化しないと…
オブジェクト指向プログラミング
2つのモード
2019/11/23 29
オブジェクト指向プログラミング
2019/11/23 30
モード1
定義済みの型だけを使う
- Javaに組込みの型(プリミティブ、配列)
- Java標準ライブラリのクラス
- フレームワークや既存ライブラリのクラス
オブジェクト指向プログラミング
2019/11/23 31
モード1
定義済みの型だけを使う
- Javaに組込みの型(プリミティブ、配列)
- Java標準ライブラリのクラス
- フレームワークや既存ライブラリのクラス
モード2
独自の型を定義する
- 金額、数量、納期、締切日、…
- 金額範囲、数量範囲、日付範囲、…
- 顧客区分、商品種別、注文区分、…
オブジェクト指向プログラミングの
スキルアップとは?
2019/11/23 32
モード1=型の消費者
モード2=型の生産者
型の消費者から型の生産者に
モジュール化の分かれ道
2019/11/23 33
モード1
定義済の型だけを使った場合のモジュール化
アプリケーション固有のロジックは、手続き的に書くことになる
→ トランザクションスクリプト + データクラス
モード2
独自の型を定義する場合のモジュール化
アプリケーション固有の型がそのままモジュール単位になる
→ ドメインモデル
変更が楽で安全になるのは、モード2に切り替わった後
オブジェクト指向プログラミングのスキル
↓
クラス設計のスキル
↓
独自の型の発見と改良のスキル
2019/11/23 34
独自の型の発見
2019/11/23 35
独自の型の発見
2019/11/23 36
現実世界は型の候補にあふれている
独自の型の候補の発見
2019/11/23 37
現実世界は型の候補にあふれている
合計金額
単価
数量 税率
税額
課税区分
キャンペーン
期間
割引率
割引額
クーポン
金額範囲
数量範囲
期限
日数
開始日
終了日
期間
商品種別
顧客区分 取引区分
進捗状態
保管区分
配送区分数量制限
重量制限
適切な値の範囲は?
計算や判断のロジックは?
型の候補を探し始めると
見える世界が変わってくる
2019/11/23 38
機能一覧
ユースケース
どんな計算や判断を期待されているか?
計算や判断の元になる値の種類は何か?
結果としてどんな値を生成すればよいか?
画面項目
同じ型の項目はどれか?
適切な値の範囲は何か?
計算や判断のインプットになる項目はどれか?
計算や判断の結果の項目はどれか?
テーブル
カラム
同じ範囲の値はどれか?
計算や判断のインプットになる項目はどれか?
計算や判断の結果となる項目はどれか?
変更要求
どの型が変更の対象か
その型の変更が影響する範囲はどこまでか?
独自の型の発見と改良
2019/11/23 39
分析~モデリング~設計~プログラミング~保守
ライフサイクル全体を通して、
型に軸とする一貫したアプローチ
現実世界の関心事を型(値の種類)で分類
発見した型をクラスで表現
現実世界の関心事とプログラミングの直接的な写像
本日のまとめ
2019/11/23 40
オブジェクト指向プログラミング
2019/11/23 41
型 カプセル化 クラス
値の範囲の制限
値の操作の制限
概念/アイデア
値の範囲の定義
値の操作の定義
コードで具体化
モジュール性
オブジェクト指向プログラミング
モード2
2019/11/23 42
独自の型の発見と改良の活動
分析~モデリング~設計~プログラミング~保守
型を軸にした シームレス な活動
現実世界とプログラムの直接的な写像
シームレス
直接的な写像
独自の型
参考書籍
2019/11/23 43
モード2 実践の手引書
モード2のさまざまな側面の
詳細な検討と解説
理論派向け

More Related Content

What's hot

概念モデリング再入門 + DDD
概念モデリング再入門 + DDD概念モデリング再入門 + DDD
概念モデリング再入門 + DDDHiroshima JUG
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース増田 亨
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説増田 亨
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計増田 亨
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java増田 亨
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方増田 亨
 
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったことドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと増田 亨
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで増田 亨
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する増田 亨
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意Yoshitaka Kawashima
 
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善増田 亨
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?実践的な設計って、なんだろう?
実践的な設計って、なんだろう?増田 亨
 
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3  ドメイン駆動設計 戦略的設計3週連続DDDその3  ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計増田 亨
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する増田 亨
 
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう増田 亨
 
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2増田 亨
 
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 FallYoshitaka Kawashima
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)Yoshitaka Kawashima
 

What's hot (20)

概念モデリング再入門 + DDD
概念モデリング再入門 + DDD概念モデリング再入門 + DDD
概念モデリング再入門 + DDD
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
 
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったことドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?実践的な設計って、なんだろう?
実践的な設計って、なんだろう?
 
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3  ドメイン駆動設計 戦略的設計3週連続DDDその3  ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
 
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
 
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
 
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 

Similar to オブジェクト指向プログラミング入門 -- Java object-oriented programming primer

ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考えるソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える増田 亨
 
これからの「キャリア」の話をしよう .pptx
これからの「キャリア」の話をしよう .pptxこれからの「キャリア」の話をしよう .pptx
これからの「キャリア」の話をしよう .pptxyagizo
 
KnockoutJSを使用したアプリケーションの構築例
KnockoutJSを使用したアプリケーションの構築例KnockoutJSを使用したアプリケーションの構築例
KnockoutJSを使用したアプリケーションの構築例masakazusegawa
 
Web App for Containers のデプロイでつまずいた話
Web App for Containers のデプロイでつまずいた話Web App for Containers のデプロイでつまずいた話
Web App for Containers のデプロイでつまずいた話Shigenari Ohnuma
 
講演資料「Azure AI Update Ignite Fall 2021を振り返ろう!」
講演資料「Azure AI Update Ignite Fall 2021を振り返ろう!」講演資料「Azure AI Update Ignite Fall 2021を振り返ろう!」
講演資料「Azure AI Update Ignite Fall 2021を振り返ろう!」Kohei Ogawa
 
アプリケーションアーキテクチャの現在、過去、未来
アプリケーションアーキテクチャの現在、過去、未来アプリケーションアーキテクチャの現在、過去、未来
アプリケーションアーキテクチャの現在、過去、未来bpstudy
 
CloudSpiral 2013年度 UML講義 2日目
CloudSpiral 2013年度 UML講義 2日目CloudSpiral 2013年度 UML講義 2日目
CloudSpiral 2013年度 UML講義 2日目Shin Matsumoto
 
【de:code 2020】 学生諸君! Azure であそぼう! ~Microsoft の AI を自作アプリに取り入れるまで~
【de:code 2020】 学生諸君! Azure であそぼう! ~Microsoft の AI を自作アプリに取り入れるまで~【de:code 2020】 学生諸君! Azure であそぼう! ~Microsoft の AI を自作アプリに取り入れるまで~
【de:code 2020】 学生諸君! Azure であそぼう! ~Microsoft の AI を自作アプリに取り入れるまで~日本マイクロソフト株式会社
 
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方増田 亨
 
第2回c#画像処理講習
第2回c#画像処理講習第2回c#画像処理講習
第2回c#画像処理講習Koshiro Miyauchi
 
20140222 jaws saitama-cdp
20140222 jaws saitama-cdp20140222 jaws saitama-cdp
20140222 jaws saitama-cdpKazuki Ueki
 
Azure IoT Edge - ALGYAN Dec 2022.pdf
Azure IoT Edge - ALGYAN Dec 2022.pdfAzure IoT Edge - ALGYAN Dec 2022.pdf
Azure IoT Edge - ALGYAN Dec 2022.pdfYasuhiroHanda2
 
プログラマの為の量子プログラミング入門 宣伝
プログラマの為の量子プログラミング入門 宣伝プログラマの為の量子プログラミング入門 宣伝
プログラマの為の量子プログラミング入門 宣伝OsSAL
 
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイルプロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル増田 亨
 
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素Akira Inoue
 
DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)
DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)
DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)Masanori KAMAYAMA
 
【Azureデータ分析シリーズ】非専門家向け/利用部門主導で始めるデータ分析_ナレッジコミュニケーション公開資料
【Azureデータ分析シリーズ】非専門家向け/利用部門主導で始めるデータ分析_ナレッジコミュニケーション公開資料【Azureデータ分析シリーズ】非専門家向け/利用部門主導で始めるデータ分析_ナレッジコミュニケーション公開資料
【Azureデータ分析シリーズ】非専門家向け/利用部門主導で始めるデータ分析_ナレッジコミュニケーション公開資料Takaya Nakanishi
 
Scratchでまなぶプログラミング的思考
Scratchでまなぶプログラミング的思考Scratchでまなぶプログラミング的思考
Scratchでまなぶプログラミング的思考Hironori Washizaki
 
KIXS Vol.000: Microsoft Cognitive Services 入門 & Azure サーバー管理ツール
KIXS Vol.000: Microsoft Cognitive Services 入門 & Azure サーバー管理ツールKIXS Vol.000: Microsoft Cognitive Services 入門 & Azure サーバー管理ツール
KIXS Vol.000: Microsoft Cognitive Services 入門 & Azure サーバー管理ツールAyako Omori
 

Similar to オブジェクト指向プログラミング入門 -- Java object-oriented programming primer (20)

ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考えるソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
 
これからの「キャリア」の話をしよう .pptx
これからの「キャリア」の話をしよう .pptxこれからの「キャリア」の話をしよう .pptx
これからの「キャリア」の話をしよう .pptx
 
KnockoutJSを使用したアプリケーションの構築例
KnockoutJSを使用したアプリケーションの構築例KnockoutJSを使用したアプリケーションの構築例
KnockoutJSを使用したアプリケーションの構築例
 
Web App for Containers のデプロイでつまずいた話
Web App for Containers のデプロイでつまずいた話Web App for Containers のデプロイでつまずいた話
Web App for Containers のデプロイでつまずいた話
 
講演資料「Azure AI Update Ignite Fall 2021を振り返ろう!」
講演資料「Azure AI Update Ignite Fall 2021を振り返ろう!」講演資料「Azure AI Update Ignite Fall 2021を振り返ろう!」
講演資料「Azure AI Update Ignite Fall 2021を振り返ろう!」
 
アプリケーションアーキテクチャの現在、過去、未来
アプリケーションアーキテクチャの現在、過去、未来アプリケーションアーキテクチャの現在、過去、未来
アプリケーションアーキテクチャの現在、過去、未来
 
CloudSpiral 2013年度 UML講義 2日目
CloudSpiral 2013年度 UML講義 2日目CloudSpiral 2013年度 UML講義 2日目
CloudSpiral 2013年度 UML講義 2日目
 
User Centered Agile
User Centered AgileUser Centered Agile
User Centered Agile
 
【de:code 2020】 学生諸君! Azure であそぼう! ~Microsoft の AI を自作アプリに取り入れるまで~
【de:code 2020】 学生諸君! Azure であそぼう! ~Microsoft の AI を自作アプリに取り入れるまで~【de:code 2020】 学生諸君! Azure であそぼう! ~Microsoft の AI を自作アプリに取り入れるまで~
【de:code 2020】 学生諸君! Azure であそぼう! ~Microsoft の AI を自作アプリに取り入れるまで~
 
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
 
第2回c#画像処理講習
第2回c#画像処理講習第2回c#画像処理講習
第2回c#画像処理講習
 
20140222 jaws saitama-cdp
20140222 jaws saitama-cdp20140222 jaws saitama-cdp
20140222 jaws saitama-cdp
 
Azure IoT Edge - ALGYAN Dec 2022.pdf
Azure IoT Edge - ALGYAN Dec 2022.pdfAzure IoT Edge - ALGYAN Dec 2022.pdf
Azure IoT Edge - ALGYAN Dec 2022.pdf
 
プログラマの為の量子プログラミング入門 宣伝
プログラマの為の量子プログラミング入門 宣伝プログラマの為の量子プログラミング入門 宣伝
プログラマの為の量子プログラミング入門 宣伝
 
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイルプロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
 
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素
 
DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)
DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)
DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)
 
【Azureデータ分析シリーズ】非専門家向け/利用部門主導で始めるデータ分析_ナレッジコミュニケーション公開資料
【Azureデータ分析シリーズ】非専門家向け/利用部門主導で始めるデータ分析_ナレッジコミュニケーション公開資料【Azureデータ分析シリーズ】非専門家向け/利用部門主導で始めるデータ分析_ナレッジコミュニケーション公開資料
【Azureデータ分析シリーズ】非専門家向け/利用部門主導で始めるデータ分析_ナレッジコミュニケーション公開資料
 
Scratchでまなぶプログラミング的思考
Scratchでまなぶプログラミング的思考Scratchでまなぶプログラミング的思考
Scratchでまなぶプログラミング的思考
 
KIXS Vol.000: Microsoft Cognitive Services 入門 & Azure サーバー管理ツール
KIXS Vol.000: Microsoft Cognitive Services 入門 & Azure サーバー管理ツールKIXS Vol.000: Microsoft Cognitive Services 入門 & Azure サーバー管理ツール
KIXS Vol.000: Microsoft Cognitive Services 入門 & Azure サーバー管理ツール
 

More from 増田 亨

事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述増田 亨
 
ドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドラインドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン増田 亨
 
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみようドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう増田 亨
 
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイルドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル増田 亨
 
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチレガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ増田 亨
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ増田 亨
 
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かうビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう増田 亨
 
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう増田 亨
 
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指してアジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して増田 亨
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす増田 亨
 
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 基幹システムの再定義と再構築増田 亨
 
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】増田 亨
 
越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる増田 亨
 
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイルドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル増田 亨
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則増田 亨
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則増田 亨
 

More from 増田 亨 (18)

事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
 
ドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドラインドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン
 
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみようドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
 
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイルドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
 
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチレガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かうビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
 
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
 
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指してアジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
 
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 基幹システムの再定義と再構築
 
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
 
越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる
 
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイルドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
 

オブジェクト指向プログラミング入門 -- Java object-oriented programming primer