SlideShare a Scribd company logo
1 of 22
2014-07-28 GMOリサーチ 寺田 渉
Facebook: 寺田渉 Twitter: @wa_terada
 オブジェクト指向 って何なのか。
= オブジェクト指向の 読みやすさ に
気づいてもらう。
ボードゲーム翻訳
CakePHP Cookbook翻訳
TED 字幕 翻訳
開発 (PHP/JavaScript/Java/Perl)
抽象化
抽象化 によって
可読性 を上げます
処理と変数を取りまとめる存在
(オブジェクト)を作り、
その存在に【的確な命名】を
行うこと。
処理は数百行あっても、
的確な名前を付けることで、
毎回中身を見なくてもよくする。
これが抽象化。
毎回中身(具象化先)を
見なければならないようなら、
抽象化としては失敗。
オブジェクト指向の
鍵
それなら
関数切り出し
でいいんじゃない?
そうです。
関数切り出しも抽象化の手法。
「関数」だけでなく、
その外側にある「状態」も
あわせて取りまとめる存在を作り、
抽象化して
可読性をあげようとする。
【構造化プログラミング】
処理を
(サブルーチン or 関数して)とりまとめて
抽象化 (=的確な命名)
↓
可読性を上げる
【オブジェクト指向】
変数 とそれに 関連する処理 を
(クラスとして) とりまとめて
抽象化 (=的確な命名)
↓
可読性を上げる
何度もメソッドの中を
見なければいけない事態が
生じているのなら、
オブジェクト指向としては負け。
MVC (フレームワーク) で
開発してると
何度もクラスの中を見るけど
オブジェクト指向 じゃないの?
オブジェクト指向では
ありません!
- 基盤の開発を共有
- 開発スタイルをルール化
することで、開発者によるブレをなくし、
開発効率を上げて安定化させるためにある。
開発者の設計力が十分でなくても
開発可能にするという側面もある。
MVCを使って開発する場合、
可読性や抽象化を意識して
オブジェクト設計しないので、
(それ自体はオブジェクト指向で作られていても)
それを使っての開発は
オブジェクト指向というよりもむしろ
フレームワーク指向と呼ぶべきでしょう。
オブジェクトに抽象化することで
可読性が上がると思ったら
オブジェクト化する
→ オブジェクト指向
ぜひ Facebook 等で
寺田渉 まで
ご連絡ください!!
以上、ありがとうございました。

More Related Content

What's hot

「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
 

What's hot (20)

Kotlinアンチパターン
KotlinアンチパターンKotlinアンチパターン
Kotlinアンチパターン
 
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
 
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
 
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探しリッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
 
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?実践的な設計って、なんだろう?
実践的な設計って、なんだろう?
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
 
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
 
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primerオブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
5分でわかるクリーンアーキテクチャ
5分でわかるクリーンアーキテクチャ5分でわかるクリーンアーキテクチャ
5分でわかるクリーンアーキテクチャ
 
Unityでオニオンアーキテクチャ
UnityでオニオンアーキテクチャUnityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
 
Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編
 
AI時代の要件定義
AI時代の要件定義AI時代の要件定義
AI時代の要件定義
 
【Unity道場】新しいPrefabワークフロー入門
【Unity道場】新しいPrefabワークフロー入門【Unity道場】新しいPrefabワークフロー入門
【Unity道場】新しいPrefabワークフロー入門
 
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?
 
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~ CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
 
すごいConstたのしく使おう!
すごいConstたのしく使おう!すごいConstたのしく使おう!
すごいConstたのしく使おう!
 
オブジェクト指向とSOLID原則の入門
オブジェクト指向とSOLID原則の入門オブジェクト指向とSOLID原則の入門
オブジェクト指向とSOLID原則の入門
 

Viewers also liked

06 オブジェクト指向の基礎
06 オブジェクト指向の基礎06 オブジェクト指向の基礎
06 オブジェクト指向の基礎
文樹 高橋
 
オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版
Mao Ohnishi
 
オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門
Ryo Miyake
 
Phpではじめるオブジェクト指向(公開用)
Phpではじめるオブジェクト指向(公開用)Phpではじめるオブジェクト指向(公開用)
Phpではじめるオブジェクト指向(公開用)
VOYAGE GROUP
 
デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」
Hokuto Tateyama
 

Viewers also liked (17)

06 オブジェクト指向の基礎
06 オブジェクト指向の基礎06 オブジェクト指向の基礎
06 オブジェクト指向の基礎
 
F流 『オブジェクト指向の考え方の基礎の基礎』 ~ソフトウェア開発の原則編~
F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~
F流 『オブジェクト指向の考え方の基礎の基礎』 ~ソフトウェア開発の原則編~
 
関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)
 
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
 
オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版
 
だいたい30分で分かるオブジェクト指向
だいたい30分で分かるオブジェクト指向だいたい30分で分かるオブジェクト指向
だいたい30分で分かるオブジェクト指向
 
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
 
オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門
 
第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向
 
Phpではじめるオブジェクト指向(公開用)
Phpではじめるオブジェクト指向(公開用)Phpではじめるオブジェクト指向(公開用)
Phpではじめるオブジェクト指向(公開用)
 
第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向
 
バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-
 
オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)
 
第1回 モデリング勉強会
第1回 モデリング勉強会第1回 モデリング勉強会
第1回 モデリング勉強会
 
第2回 モデリング勉強会
第2回 モデリング勉強会第2回 モデリング勉強会
第2回 モデリング勉強会
 
デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」
 
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
 

More from Wataru Terada

CakePHP を使ってよかったこと
CakePHP を使ってよかったことCakePHP を使ってよかったこと
CakePHP を使ってよかったこと
Wataru Terada
 
自動テストで開発効率を上げるには
自動テストで開発効率を上げるには自動テストで開発効率を上げるには
自動テストで開発効率を上げるには
Wataru Terada
 
初めてのTravisCIでハマったこと
初めてのTravisCIでハマったこと初めてのTravisCIでハマったこと
初めてのTravisCIでハマったこと
Wataru Terada
 
単体テストで工数を短縮する
単体テストで工数を短縮する単体テストで工数を短縮する
単体テストで工数を短縮する
Wataru Terada
 
デグレを防ぐテストの書き方
デグレを防ぐテストの書き方デグレを防ぐテストの書き方
デグレを防ぐテストの書き方
Wataru Terada
 

More from Wataru Terada (13)

Chrome拡張で改善 表紙
Chrome拡張で改善 表紙Chrome拡張で改善 表紙
Chrome拡張で改善 表紙
 
PHP選んで良かったこと
PHP選んで良かったことPHP選んで良かったこと
PHP選んで良かったこと
 
僕がエンジニアとしていつも考えていること
僕がエンジニアとしていつも考えていること僕がエンジニアとしていつも考えていること
僕がエンジニアとしていつも考えていること
 
技術ドキュメントで難しい英文に出会ったら
技術ドキュメントで難しい英文に出会ったら技術ドキュメントで難しい英文に出会ったら
技術ドキュメントで難しい英文に出会ったら
 
PSR-1 と PSR-2 を 5分でざっくり理解する
PSR-1 と PSR-2 を5分でざっくり理解するPSR-1 と PSR-2 を5分でざっくり理解する
PSR-1 と PSR-2 を 5分でざっくり理解する
 
PHP基本的関数QUIZ
PHP基本的関数QUIZPHP基本的関数QUIZ
PHP基本的関数QUIZ
 
CakePHP を使ってよかったこと
CakePHP を使ってよかったことCakePHP を使ってよかったこと
CakePHP を使ってよかったこと
 
自動テストで開発効率を上げるには
自動テストで開発効率を上げるには自動テストで開発効率を上げるには
自動テストで開発効率を上げるには
 
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
 
初めてのTravisCIでハマったこと
初めてのTravisCIでハマったこと初めてのTravisCIでハマったこと
初めてのTravisCIでハマったこと
 
単体テストで工数を短縮する
単体テストで工数を短縮する単体テストで工数を短縮する
単体テストで工数を短縮する
 
デグレを防ぐテストの書き方
デグレを防ぐテストの書き方デグレを防ぐテストの書き方
デグレを防ぐテストの書き方
 
CakePHP の Cookbook に翻訳貢献する方法と vagrant
CakePHP の Cookbook に翻訳貢献する方法と vagrantCakePHP の Cookbook に翻訳貢献する方法と vagrant
CakePHP の Cookbook に翻訳貢献する方法と vagrant
 

Recently uploaded

Recently uploaded (8)

2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 

本当のオブジェクト指向は可読性を上げる