SlideShare a Scribd company logo
1 of 39
Download to read offline
オブジェクト指向プログラミングの
現在・過去・未来
2020年2月16日 増田 亨
自己紹介
2019/11/23 2
増田 亨 (@masuda220)
最近の仕事:JavaとSQLでプログラミング(したい)
今日は、この本の背景にある
オブジェクト指向プログラミングの
基本的な考え方を説明します
仕事レベルで使った言語
Z80アセンブラ, C, PL/SQL, C++, COBOL, FORTRAN, BASIC,
Lisp, Prolog, Smalltalk, awk, Perl, PHP, Ruby,
Python, Groovy, Objective-C, JavaScript …
試したことのある言語
Haskell, OCaml, Schema, Scala, Kotlin, Go, Rust,
IO, TypeScript, …
面白いと思っている言語
Haskell, Prolog, Rust
オブジェクト指向プログラミングとはなにか?
2020/2/14 3
オブジェクト指向プログラミングとは
データの抽象化
抽象データ型が導くモジュール構造
2020/2/14 4
この観点からのオブジェクト指向プログラミングの現在・過去・未来
+部分型 with 動的ディスパッチ
2020/2/14 5
モジュール
オブジェクト
型
値(データ)
クラス
メモリ上に保持
(ビット列)
分類 抽象化
型の仕様と実装を
プログラミング言語で記述 独立したプログラム単位
(データ+ロジック)
もう少し説明すると
2020/2/14 6
オブジェクト
メモリ上に割り当てた値 (実体はビット列)
すべてのオブジェクトはなんらかの型に分類される
型
値に対して実行できる操作(計算・判断)のセット
+ 有効な値の範囲
データ抽象
データの本質的な特徴を抜き出す(型の定義)
⇒ 実行できる操作セット+有効な値の範囲
クラス 型の仕様と実装を記述するためのプログラミング言語の構文
モジュール プログラミング単位。 オブジェクト指向プログラミングでは、
型=クラス=モジュール
型
こわくないです
プログラミングしていれば、無意識に使っている
それを意識的に使うようにすればよい
オブジェクト指向プログラミングとは
型を意識するプログラミング
2020/2/14 7
型とはなにか?
2020/2/14 8
型の具体例
2019/11/23 9
int quantity;
quantity = 1;
boolean isEmpty;
isEmpty = false;
(1 + 2); // int型
(1 > 0); // boolean型
型とは何か
2019/11/23 10
値の範囲を制限
int型 -21億~+21億
boolean型 trueかfalse
型とは何か
2019/11/23 11
値の範囲を制限
可能な操作を定義
int型 -21億~+21億
boolean型 trueかfalse
int型 +, -, *, /, %, ==, !=, >, <
boolean型 &&, ||, ==, !=
可能な操作の定義 ⇒ データの抽象化
データの抽象化とは、値の分類
同じ操作ができる値=同じ種類の値
可能な操作(計算・判断)で値の種類を定義する
データ表現(具象)ではなく、データ操作(本質)を抽出する
char[] ⇒ 具体的なデータ表現
String ⇒ 文字の配列への可能な操作
length(), substring(), isEmpty(), …
2020/2/14 12
データ抽象で何がうれしいか?
2019/11/23 13
具体的なデータ型 抽象的なデータ型
char[] name; String name;
Object[] list; List<Type> list;
int[] value;
int scale;
BigDecimal value;
int year, short month,
short day
LocalDate date;
どちらでプログラミングするほうが、楽で安全か?
データ抽象で何がうれしいか?
✓型は問題領域を記述する「語彙」を提供する
✓型(クラスとメソッド)は計算のアイデアの表現である
✓型は問題領域の記述とプログラムの構造を直接的にマップする
✓型はソフトウェア仕様の記述手段である(自己文書化)
✓型(クラスとメソッド)で関心事を明示的に表現する
2020/2/14 14
バーバラリスコフ
ストラウストラップ
バートランドメイヤー
エリックエヴァンス
データ抽象の具体例
定義済:String型、 BigDecimal型、 LocalDate型、 List型、 Set型、 Map型、 …
独自定義: 金額型、数量型、期日型、明細リスト型、スキルセット型、地域別送料型、…
✓ とりえる値の範囲の制限、実行可能な操作の制限、実行結果の値の種類の制限
✓ 契約による設計 (事前条件としての引数の型、事後条件として返す値の型)
✓ ビジネスルールに基づく計算判断の意図を表現する基本手段
✓ 計算判断の実装の詳細を隠蔽する基本手段
2020/2/14 15
オブジェクト指向プログラミングとは
データの抽象化
抽象データ型が導くモジュール構造
2020/2/14 16
この観点からのオブジェクト指向プログラミングの現在・過去・未来
+部分型 with 動的ディスパッチ
オブジェクト指向プログラミングの歴史
2020/2/14 17
2020/2/14 18
イノベーターとアーリーアダプターの時代
「オブジェクト指向」ブームと混乱のはじまり
さらなる混乱から収束への兆し
現在の状況とこれからの20年
1956 - 1995
1995 - 2005
2005 - 2015
2015 -
1956 - 1995
イノベーターとアーリーアダプターの時代
2020/2/14 19
イノベーターとアーリーアダプターの時代
1956 FORTRAN ビット列を、整数型と実数型に分類して扱うようになった
1960年代 Simula 67 オブジェクトとクラスを使ったプログラミングの誕生
1970年代 CLU 抽象データ型とカプセル化という考え方の提案
1980年代
C++
Smalltalk
Eiffel
オブジェクト指向プログラミングの研究と実験
1995 Java, UML 「オブジェクト指向」ブームと混乱の始まり
2020/2/14 20
1995 - 2005
「オブジェクト指向」ブームと混乱の始まり
2020/2/14 21
90年代後半 ブームの到来と混乱の始まり
Javaの登場と爆発的な普及
オブジェクト指向分析設計(OOAD)
UML
GoF デザインパターン
オブジェクト指向設計原則(SOLID, GRASP, …)
モデリングパターン
2020/2/14 22
1995-2000年 Javaの登場と爆発的な普及
インターネットブーム
Sun Microsystemsのすざまじいマーケティング
クラスってなんかかっこいいな
なんでもいいからオブジェクト指向って言っちゃえ
Javaという名前にあやかろう
オブジェクト指向というキャッチフレーズとクラス構文は広がったが…
2020/2/14 23
90年代 オブジェクト指向分析:混乱の始まり
UML, モデリング本
GoFデザインパターン本
SOLID, GRASP, …
データ抽象
抽象データ型によるモジュール構造と問題記述
たいせつなもの(型の発見と定義)を見失ってしまった時代
クラス図を使ったデータモデリング、ユースケースモデルという機能分割
クラスを使った手続き的なプログラミングの普及
怪しげな例え話の横行
2020/2/14 24
OOAD
2005 - 2015
さらなる混乱から収束への兆し
2020/2/14 25
さらなる混乱
2004年 Javaの大きな進化があったが…
時代は
型のないスクリプティング言語で
オブジェクト指向プログラミング?
2020/2/14 26
2004年 Javaの大変身
総称性(ジェネリクス) List<T>
enum (区分値を抽象データ型に)
型の観点からは、それ以前とは別の言語
本格的なオブジェクト指向プログラミング言語の登場
2020/2/14 27
型のない言語でオブジェクト指向プログラミング?
PHP, Ruby, Python, JavaScript, …
悪い冗談かと思った(抽象データ型の観点から)
動的な型付け?、ダックタイピング?、構造的部分型?、漸進的型付け?
メッセージング? 遅延結合?
プロトタイプベース?
なに言っているか、よくわからないんですけど…
そう呼ぶのは自由だけど、ほんとうに意味がわかって使っていますか?
2020/2/14 28
収束の兆し:実験結果がではじめたこと
実装継承・差分プログラミング
UML/OOAD 普及しなかったという現実
型がないのはつらい
怪しげな例え話
2020/2/14 29
2015年頃
PHP7
Python 3.5
ES2015
TypeScript
やっぱり型なんじゃないか?
2020/2/14 30
型付け言語Javaの進化: Date and Time API, Math.addExact()
オブジェクト指向プログラミングの進化
状態のカプセル化
参照透過性、immutable、stateless
nullはあかんやろ
IDEというすてきな相棒
型ネットワークのリアルタイム解析/可視化
サジェション/リファクタリングサポート
2020/2/14 31
現在の状況とこれからの20年
2020/2/14 32
現在の状況
クラス構文は普及した
定義済の型(標準ライブラリなど)を使うのが当たり前になった
しかし
定義済の型を使った手続き的なプログラミングが主流
アプリケーション独自の型の発見・定義は少数派
2020/2/14 33
これからの20年
2020/2/14 34
予想されるシナリオ
✓スクリプティング言語の型対応の進化
✓IDEの型サポートの進化と普及
✓型の検査・可視化・生成ツールの広がり
✓独自の型を設計するためのパターンカタログ/サンプルコード
✓金銭型、期間型、不変コレクション型などのライブラリの進化
✓型の発見・定義を重視した開発手法の提案
2020/2/14 35
まとめ
2020/2/14 36
オブジェクト指向プログラミングとは
データの抽象化
抽象データ型が導くモジュール構造
型を意識するプログラミング
2020/2/14 37
+部分型 with 動的ディスパッチ
2020/2/14 38
モジュール
オブジェクト
型
値(データ)
クラス
メモリ上に保持
(ビット列)
分類 抽象化
型の仕様と実装を
プログラミング言語で記述 独立したプログラム単位
(データ+ロジック)
データ抽象(型)で何がうれしいか?
✓型は問題領域を記述する「語彙」を提供する
✓型(クラスとメソッド)は計算のアイデアの表現である
✓型は問題領域の記述とプログラムの構造を直接的にマップする
✓型はソフトウェア仕様の記述手段である(自己文書化)
✓型(クラスとメソッド)で関心事を明示的に表現する
2020/2/14 39
バーバラリスコフ
ストラウストラップ
バートランドメイヤー
エリックエヴァンス

More Related Content

What's hot

オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門増田 亨
 
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 FallYoshitaka Kawashima
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース増田 亨
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する増田 亨
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則増田 亨
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する増田 亨
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説増田 亨
 
ドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドラインドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン増田 亨
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
 
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方Shigenori Sagawa
 
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探しリッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し増田 亨
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで増田 亨
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるpospome
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?Moriharu Ohzu
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門Takuya Kitamura
 
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?実践的な設計って、なんだろう?
実践的な設計って、なんだろう?増田 亨
 
ちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てるちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てる増田 亨
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツpospome
 

What's hot (20)

オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
 
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
ドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドラインドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
 
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探しリッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?実践的な設計って、なんだろう?
実践的な設計って、なんだろう?
 
ちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てるちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てる
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツ
 

Similar to オブジェクト指向プログラミングの現在・過去・未来

スクレイピングは避けられない
スクレイピングは避けられないスクレイピングは避けられない
スクレイピングは避けられないDaiki Kojima
 
AutoEncoderで特徴抽出
AutoEncoderで特徴抽出AutoEncoderで特徴抽出
AutoEncoderで特徴抽出Kai Sasaki
 
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~Fujio Kojima
 
Sbtのマルチプロジェクトはいいぞ
SbtのマルチプロジェクトはいいぞSbtのマルチプロジェクトはいいぞ
SbtのマルチプロジェクトはいいぞYoshitaka Fujii
 
LOD技術の概要と LinkData.orgを用いたLOD公開
LOD技術の概要とLinkData.orgを用いたLOD公開LOD技術の概要とLinkData.orgを用いたLOD公開
LOD技術の概要と LinkData.orgを用いたLOD公開Kouji Kozaki
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けてHironori Washizaki
 
【アイディア止まり】Ozobotでデータサイエンス~天気予報ロボットを作ろう~
【アイディア止まり】Ozobotでデータサイエンス~天気予報ロボットを作ろう~【アイディア止まり】Ozobotでデータサイエンス~天気予報ロボットを作ろう~
【アイディア止まり】Ozobotでデータサイエンス~天気予報ロボットを作ろう~ケンタ タナカ
 
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみてKota Mizushima
 
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」Kazuki Taniguchi
 
オブジェクト指向最強
オブジェクト指向最強オブジェクト指向最強
オブジェクト指向最強haganemetal
 
Rubyとプログラミング言語の潮流
Rubyとプログラミング言語の潮流Rubyとプログラミング言語の潮流
Rubyとプログラミング言語の潮流Kazuhiko Kato
 
Foss4g Hokkaido 2019
Foss4g Hokkaido 2019Foss4g Hokkaido 2019
Foss4g Hokkaido 2019Takahiro Endo
 
Object-Funcational Analysis and design
Object-Funcational Analysis and designObject-Funcational Analysis and design
Object-Funcational Analysis and designTomoharu ASAMI
 
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)uroboroSQLの紹介 (OSC2017 Tokyo/Spring)
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)Kenichi Hoshi
 
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数Satoru Kodaira
 
20200504 Smalltalkを学ぶ会 (リモート開催) - Smalltalkについて
20200504 Smalltalkを学ぶ会 (リモート開催) - Smalltalkについて20200504 Smalltalkを学ぶ会 (リモート開催) - Smalltalkについて
20200504 Smalltalkを学ぶ会 (リモート開催) - Smalltalkについてsumim
 
BigDLでScala × DeepLearning に入門した話
BigDLでScala × DeepLearning に入門した話BigDLでScala × DeepLearning に入門した話
BigDLでScala × DeepLearning に入門した話hirotakanosato
 
ナレッジグラフ入門
ナレッジグラフ入門ナレッジグラフ入門
ナレッジグラフ入門KnowledgeGraph
 
Interop2017
Interop2017Interop2017
Interop2017tak9029
 

Similar to オブジェクト指向プログラミングの現在・過去・未来 (20)

Java script1
Java script1Java script1
Java script1
 
スクレイピングは避けられない
スクレイピングは避けられないスクレイピングは避けられない
スクレイピングは避けられない
 
AutoEncoderで特徴抽出
AutoEncoderで特徴抽出AutoEncoderで特徴抽出
AutoEncoderで特徴抽出
 
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
 
Sbtのマルチプロジェクトはいいぞ
SbtのマルチプロジェクトはいいぞSbtのマルチプロジェクトはいいぞ
Sbtのマルチプロジェクトはいいぞ
 
LOD技術の概要と LinkData.orgを用いたLOD公開
LOD技術の概要とLinkData.orgを用いたLOD公開LOD技術の概要とLinkData.orgを用いたLOD公開
LOD技術の概要と LinkData.orgを用いたLOD公開
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
 
【アイディア止まり】Ozobotでデータサイエンス~天気予報ロボットを作ろう~
【アイディア止まり】Ozobotでデータサイエンス~天気予報ロボットを作ろう~【アイディア止まり】Ozobotでデータサイエンス~天気予報ロボットを作ろう~
【アイディア止まり】Ozobotでデータサイエンス~天気予報ロボットを作ろう~
 
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみて
 
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
 
オブジェクト指向最強
オブジェクト指向最強オブジェクト指向最強
オブジェクト指向最強
 
Rubyとプログラミング言語の潮流
Rubyとプログラミング言語の潮流Rubyとプログラミング言語の潮流
Rubyとプログラミング言語の潮流
 
Foss4g Hokkaido 2019
Foss4g Hokkaido 2019Foss4g Hokkaido 2019
Foss4g Hokkaido 2019
 
Object-Funcational Analysis and design
Object-Funcational Analysis and designObject-Funcational Analysis and design
Object-Funcational Analysis and design
 
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)uroboroSQLの紹介 (OSC2017 Tokyo/Spring)
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)
 
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
 
20200504 Smalltalkを学ぶ会 (リモート開催) - Smalltalkについて
20200504 Smalltalkを学ぶ会 (リモート開催) - Smalltalkについて20200504 Smalltalkを学ぶ会 (リモート開催) - Smalltalkについて
20200504 Smalltalkを学ぶ会 (リモート開催) - Smalltalkについて
 
BigDLでScala × DeepLearning に入門した話
BigDLでScala × DeepLearning に入門した話BigDLでScala × DeepLearning に入門した話
BigDLでScala × DeepLearning に入門した話
 
ナレッジグラフ入門
ナレッジグラフ入門ナレッジグラフ入門
ナレッジグラフ入門
 
Interop2017
Interop2017Interop2017
Interop2017
 

More from 増田 亨

ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善増田 亨
 
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述増田 亨
 
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみようドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう増田 亨
 
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイルドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル増田 亨
 
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイルプロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル増田 亨
 
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考えるソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える増田 亨
 
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチレガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ増田 亨
 
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方増田 亨
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ増田 亨
 
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かうビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう増田 亨
 
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう増田 亨
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java増田 亨
 
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指してアジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して増田 亨
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす増田 亨
 
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 の上手な使い方増田 亨
 
越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる増田 亨
 

More from 増田 亨 (20)

ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
 
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
 
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみようドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
 
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイルドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
 
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイルプロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
 
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考えるソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
 
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチレガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
 
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かうビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
 
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java
 
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指してアジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
 
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 の上手な使い方
 
越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる
 

オブジェクト指向プログラミングの現在・過去・未来