SlideShare a Scribd company logo
1 of 51
擬人化で考えるオブジェクト
思考
~妄想力を設計力に~
この資料は…
電脳紙芝居です。
パワーポイントで書いてありますが、だらだらと眺めて読んで頂けると
幸いですm(__)m
(学校で怒られる使い方(´・ω・`) )
この資料では、クラスベースの静的型付けオブジェクト指向言語にお
けるプログラミングの考え方が「わかったつもり」となる事を目指してい
ます。
このため、厳密な定義に従った内容ではありませんm(__)m
第一部
オブジェクト思考とは?
コンピュータは情報加工機械だ!
プログラミングとは、コンピュータにやらせたいことを指示する命令の
羅列です。
そもそも、コンピュータとは何かといいますと情報の加工機械です。
この機械に対する無味無簡素な命令の羅列がプログラムです。
画像引用 : http://line-
heart.com/blog/2009/01/post-
3.html
この加工機におけるデータの
流れを制御するのがプログラ
ム。
情報をこの機構の中で動か
し、加工して出力します。
世の中は情報にあふれている
コンピュータの加工対象である情報は世の中の現象を計測する事で生成さ
れます。
つまり、計測技術が確立されれば処理対象を増やせるのです。
これが思いのほか便利で色々な所で使われるようになりました。
画像参照元
http://www.flaticon.com/free-icon/surveillance-
camera_62957
異常を計測
計測結果を
処理して通知
外界を計測 自動運転
警報
システム
自動運転
システム
色々なシステムの制御に
コンピュータの仕組みが使
える!
[コンピュータシステム例]
夢がある! 両手じゃ抱えきれないくらい…
コンピュータの仕組みは色々な事に応用できます。
↓
色々と夢や妄想が広がる(*´д`*)ハァハァ
↓
実現するためには制御するためのプログラムが必要
↓
プログラム複雑性大爆発\(^o^)/オワタ
↓
壊れたプログラマは叩けば治る( ′Д`)┌┛)`д) ;∴
このため、顛末記は以下の通りです….。
抽象化しよう
コンピュータが出来る事は、データの加工です。
初期のプログラマは自分がやりたいことを噛み砕きコンピュータの仕組みに置き換えてプログラムを書いていました。
しかし、妄想が広がりプログラムが肥大化するとこの方法では収拾がつかなくなりました。
そこで、抽象的な概念を作ってこの仕組みむき出しの状態を覆い隠そうという事になったのです(`・ω・´)
画像引用 : http://line-
heart.com/blog/2009/01/post-3.html
この加工機におけるデータの
流れを制御するのがプログラ
ム。
人間が考えやすい概念を使おう!
抽象概念
プログラミングパラダイム
プログラミングのために抽象概念で構築された世界観をプログラミン
グパラダイムと言います。
プログラミングパラダイムとは複数提唱されており、今回考えるオブ
ジェクト指向もこのひとつです。
名称 概要
オブジェクト指向 オブジェクトを組み合わせて世界を作る。
関数型 関数を組み合わせて世界を作る。
構造化 Gotoはやめて制御構造を使おう。
命令型 命令を組み合わせて世界を作る。
代表的なプログラミングパラダイム
オブジェクト指向
やっと、オブジェクト指向です。
Wiki先生に聞くと以下となります。
オブジェクト指向(オブジェクトしこう)とは、オブジェクト同士の相互作
用として、システムの振る舞いをとらえる考え方である。
コレ簡単に言うと擬人化して妄想しよう!って事なんです。
引用元 :
http://ja.wikipedia.org/wiki/%E3%82%AA%E3
%83%96%E3%82%B8%E3%82%A7%E3%82%A
F%E3%83%88%E6%8C%87%E5%90%91
擬人化とは
Wiki先生によると以下となります。
人間以外のものを人物として、人間の性質・特徴を与える比喩の方法である
参考事例 : 日本を擬人化
引用 :
http://ja.wikipedia.org/wiki/%E6%93%AC%E4%BA%BA%E5%8
C%96
http://cdn16.atwikiimg.com/hinomotooniko/?plugin=ref&pag
e=%E6%97%A5%E6%9C%AC%E9%AC%BC%E5%AD%90%E8%A
8%AD%E5%AE%9A%E9%9B%86&file=%E6%97%A5%E6%9C%A
C%E9%AC%BC%E5%AD%90_%E7%94%9F%E6%88%90_%E5%A
4%A7.png
お待たせしました。
オブジェクトさんです(`・ω・´)
オブジェクト指向プログラミング
オブジェクトさん達の相互協力でお仕事をしてもらおうという素晴らしき世界観なのです!
(プログラマはその世界の創造主となる!)
オブジェクトさんの構成
もう少し真面目に見ていきます。
オブジェクトさんは、外部に以下の情報を公開しています。
仕事を頼む人はこの公開情報を使ってお願いします。
メソッド
オブジェクトさんが出来る仕事名です。
オブジェクトさんに仕事を依頼する時には、メソッドを指定して仕事をお
願いします。
メンバ変数
お仕事に必要な情報、お仕事結果の情報です。
一般的には、メソッド経由でアクセスします。
(あの仕事だけと、このデータ使ってやってみたいな感じ。)
オブジェクトさんの公開情報
足し算プログラム
入力装置から入力されたデータを加算する簡単なプログラムを以下2
つのパラダイムで設計する例を考えてみましょう!
・命令型パラダイム
・オブジェクト指向パラダイム
命令型パラダイムの場合
コンピュータの仕組みがむき出しの場合、命令型パラダイムに分類されます。
処理としては、以下のような処理を考える事となると思います。
慣れないとなかなか難しい…。
・入力装置からデータを主記憶にコピー * 2
・入力データを演算装置に転送
・演算装置で加算処理
・加算結果を主記憶装置に転送
・主記憶装置から出力装置に転送
画像引用 : http://line-heart.com/blog/2009/01/post-3.html
オブジェクト指向パラダイムの場合
入力担当オブジェクト 計算担当オブジェクト
画面表示担当オブジェクト
計算プロジェクト管理
オブジェクト
オブジェクトさん達の相互関係で処理をくみ上げます。
こうする事で、現実世界における仕事の比喩となり色々と妄想(設計)が捗るのです。
足し算して下
さい
(大丈夫かコイツ???)
結果を表示して下
さい。
入力データは?
[公開メソッド]
・キーボートの入
力値教えます!
[公開メソッド]
・計算します
[公開メソッド]
・画面表示します。
詳細は教えない
オブジェクトさんが外部に公開している事は必要最低限です。
当然、仕事に必要な詳細情報も持っているのですが、これは外には教えません。
これは、非常に重要な事です。
入力担当オブジェクト
[内部の詳細]
このキーボードはレジスタ
Xを定期的にポーリングし
ていればデータが取れる。
[公開メソッド]
・キーボートの入力値教
えます!
管理対象のキーボード
インターフェースを設計する
プログラマつまり人間が同時に考えられる要素はあまり多くありません。
プログラムが小さい間は良いのですが、巨大なプログラムを設計する時、
細部まで把握していると脳がオーバーフローしてしまいます。
オブジェクト指向では、仕事毎に担当者(オブジェクト)を決めて仕事の詳細
を担当者に任せ(隠蔽)ます。
プログラマは担当者オブジェクトが公開する最低限の情報を組み合わせる
事で脳のオーバーフローを回避しつつ全体のプログラムを設計します。
オブジェクト思考とは、プログラム機能間インターフェースを設計する手法
なのです。
インターフェースがしっかりしていると
インターフェースがきっちり切れているとプログラムの改変/改修がやりやすくなります。
プログラムの改変/改修で問題となるのは影響範囲の特定です。手を入れた事で既存部が動かなくなると困ってしまう訳です。
インターフェースを境に影響範囲の特定が容易になれば修正後のチェックポイントを素早く見つけ出す事が出来るのです。
入力担当オブジェクト New! 計算担当オブジェクト 画面表示担当オブジェクト
計算プロジェクト管理
オブジェクト
足し算して下
さい
結果を表示して下
さい。
入力データは?
計算担当がダメだっ
たので変えました。
計算担当の公開し
ていたメソッドは「計
算する」だけだった
のでそれと同じ能力
(メソッド)を持つ人を
配置して完了!
[公開メソッド]
・キーボートの入
力値教えます!
[公開メソッド]
・計算します
[公開メソッド]
・画面表示します。
第二部
学校を作ろう!
~クラスベースのオブジェクト指向へ~
複数のプログラマで作るために
オブジェクト指向を使うと規模の大きなプログラムを把握、設計やすく
なります。
しかし、複数のプログラマが絡むような場合、もう少し仕組みを増やさ
ないと色々と大変なのです。
言葉には色々な意味がある
言葉には色々な意味があります。
「かわいい」一言でも左ほどの沢山の意図が
あります。
この事は複数の人で一つのプログラムを書く
上で非常に問題となるのです。
参考事例 : 「かわいい」の意味
画像引用元 : http://curazy.com/archives/22910
「かわいい」オブジェクトを考えると…
プログラマAの考える「か
わいい」オブジェクト
プログラマBの考える「か
わいい」オブジェクト
仕事になりません
画像引用元 : http://curazy.com/archives/22910
オブジェクトさんのスキル把握が必要!
複数人でオブジェクト指向プログラムを作るためにはオブジェクトさん
の持っている能力を簡単に把握する方法が必要です。
オブジェクトさんの養成学校を作って規定の過程を卒業した生徒は同
過程で能力を持っている事としました。
クラス
オブジェクトさんの養成学校では、学習過程をクラスと呼びます。
クラスを受講し卒業する事でオブジェクトさんは必要な能力を身に着けて実践が出来るようになるのです。
クラスを卒業してプログラム(メモリ)世界に誕生したオブジェクトさんをクラスのインスタンスと呼びます。
(卒業生的な意味。)
[クラス]
持っていてほしい能
力を教え込む。
仕事がんばります。
Codeで書くと
ちなみに、C++で書くと以下な感じとなります。
フログラマは、クラスの定義を確認する事でオブジェクトさんの能力を的確に把握
する事が出来るのです。
クラスに能力を定義する。
オブジェクトさんを呼び出す。
クラスを卒業してプログラムの
世界に登場したオブジェクトさ
んをクラスのインスタンス(卒
業生)と呼びます。
仕事を依頼する
クラス設計のテクニック
オブジェクトさんの能力を証明するという意味でクラスが誕生しました。
クラスを駆使した設計が行われる中で、いくつかの重要な設計テク
ニックが生まれました。
[最重要テクニック]
・継承
・多様性
継承
現実の学校では習熟度に応じてクラスが分かれています。
クラス設計でも同様の事か出来ます。
クラスに派生して上級者クラスを用意する事で初級者コースで身に着けたスキルを
拡張して新たなスキルを追加する事が出来ます。
(プログラムに対して後から機能を増やすときに有効。)
[Class 初級]
仕事超がんばります。
[Class 中級] [Class 上級級]
段階的に能力を拡張していく。段階的に能力を拡張していく。
継承時における能力の定義は
[Class 包丁初級]
[Class 包丁上級級]
クラスはオブジェクトの能力を定義したものです。
継承した場合、能力の定義は以下のように継ぎ足しになります。
[能力]
・うすぎり
・ななめぎり
・いちょう切り
[能力]
・うすぎり
・ななめぎり
・いちょう切り
・かつらむき ←新規追加
継承したクラスで独自に能
力拡張が出来る。
同一視
ここからが面白いポイントです。
継承先クラスは継承元の能力は全て持っています。
つまり、継承先クラスのインスタンスは継承元クラスのインスタンスと同じものとして扱うことが出来るのです。
この事は次に説明するオーバーロードと組み合わせると設計時における大きな武器となります。
[Class 包丁初級]
[Class 包丁上級級]
[能力]
・うすぎり
・ななめぎり
・いちょう切り
[能力]
・うすぎり
・ななめぎり
・いちょう切り
・かつらむき ←新規追加
二人は別のクラスのインスタン
スであるが、「包丁初級」で定
義された能力は二人とも全て
持っている。
つまり、二人とも「包丁初級」ク
ラスのインスタンスとして扱っ
ても問題ない!
オーバーライド
継承時の発展技として「オーバーライド」が有ります。
これは、継承時に継承元クラスで定義された能力(メソッド)を上書きする事です。
以下の例では、料理というメソッドを「オーバーライド」しています。
[Class 料理基礎] [Class 和食]
料理(卵焼き)できます
料理(懐石)できます
「料理」という能力を与え
る。
多様性
継承、オーバーライドされたクラスのインスタンスに仕事を依頼する事を考えてみます。
この場合、継承元で定義された名称で仕事を願いすると、各自が最後に身に着けた能力を使って仕事
をします。
同一のクラスで定義された能力を持つオブジェクトなのに、詳細としては違った能力を発揮する事が出
来るため「多様性」と呼ばれます。
料理(懐石)できます
料理(卵焼き)できます
Class 料理基礎で身に着けた「料
理する」というインターフェースを
使って依頼。
各自が最終的に身に着けた能力
が発揮される。
合わせ技
多様性を活用すると抽象化の仕組みを作ることができます。
例として、食堂について考えてみましょう。
食堂で料理を提供するためには、料理人さんが必要です。
ジャンルは、和食、中華、洋食としてみましょう。
まずは、必要な料理人さん養成クラスを考えてみます。
料理人さん養成クラス
クラス設計を考えてみます。
[Class 料理基礎] [Class 中華]
[Class 和食]
[Class 洋食]
料理(和食)できます
料理(中華)できます
料理(洋食)できます
「料理」という能力を与え
る。
継承時に料理という能力
をオーバーライドする。
ひとつの指示方法で
料理人さんに料理をお願いします。
料理人さんは料理基礎クラスを継承しています。このため、みんな料理というメソッドを持っています。
各料理人さんに対して個別の料理を依頼するのではなく、抽象的に「料理」という仕事の依頼をすれば
みんなわかってくれます。
つまり、作る料理の詳細をオブジェクトさんにお任せして、プログラマは料理を作ることだけを考えるよう
にしているのです。
[プログラマ]
「料理」をお願いします。
分岐の抽象化
この合わせ技でやっている事は分岐の抽象化です。
継承元クラスにおける抽象的な能力定義が無い場合、プログラマはオブジェクトさんの能力にあわせて依頼内容を分岐し
なければなりません。
この分岐処理をオブジェクトさん側に隠しているのです。
中華料理できます[プログラマ]
「中華料理」をお願いします。
[プログラマ]
「和食料理」をお願いします。
[プログラマ]
「洋食料理」をお願いします。
相手に合わせて
仕事の依頼
和食料理できます
洋食料理できます
抽象的な仕事の定義が無い場合
変更が楽1
合わせ技が有効に働くのは仕事のフローに変更が発生した場合です。
食堂の提供メニューにインド料理を増やす事を考えてみましょう。
抽象的な定義が無く、個別に仕事を依頼している場合、仕事の依頼から実施まで全てを調整する必要があります。
中華料理できます
和食料理できます
洋食料理できます
[プログラマ]
「中華料理」をお願いします。
[プログラマ]
「和食料理」をお願いします。
[プログラマ]
「洋食料理」をお願いします。
相手に合わせて
仕事の依頼
[プログラマ]
「インド料理」をお願いします。
全般的に改修が必要。 インド料理できます
抽象的な仕事の定義が無い場合
合わせ技を使っている場合、オブジェクト側の対応を行うだけで、仕事の依頼側の修正は必要ありません。
プログラムが巨大化していくと、処理の分岐があちこちに出てきます。
多様性を使って分岐の箇所を限定しておく事で、修正時の作業を限定しプログラムのメンテナンス性を向上さ
せる事が出来るのです。
料理(インド)できま
す
[プログラマ]
「料理」をお願いします。
種類が増えているの
にプログラマ側の指
示内容が変わってい
ない。
変更が楽2
抽象的な仕事の定義が有る場合
必要に応じて省略する
細かいことが必要な時は
こちら側で考える
細かいことが不要な時は
こちら側で考える
前に「人間が同時に考えられる容量は小さいので抽象化して考える事を減らす」と言いました。
継承・オーバーライド・多様性に関しても同様です。
以下のように、プログラマが必要な時に必要な粒度で物事を考えられるようにしているのです。
第三部
型にはめて操ろう!
~静的型付オブジェクト指向プログラミングへ~
クラスを型にはめる
クラスを使って、オブジェクトさんの能力を規定する事となりました。
これにより、クラス設計がオブジェクト指向プログラミングの大きなウエ
イトを占めるようになりました。
ここでミスをすると色々と影響が大きいため、クラスを使ったプログラミ
ング時のエラーチェックを強化する方法が開発されました。
これが、今日広く利用されている静的型付けオブジェクト指向プログラ
ミング言語の大きな特徴です。
型とは
プログラム言語において、型とは処理対象のデータの種類を特定するものです。
プログラマは型を使って、プログラム言語にデータの種類と操作可能な事を教え
ています。
aは整数です。整数以外の操作はしません。
bは実数です。実数以外の操作はしません。
strは文字列へのポインタです。文字列ポ
インタに対する操作しかしません。
型チェック
型で定義された事から外れた命令を出すとプログラム言語はコンパイル時にエ
ラーを出してプログラマに警告する事が出来ます。
これにより、プログラムにある種のエラーが入り込む事を防ぐことができます。
prog.cc: In function 'int main()':
prog.cc:4:7: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
a = "orz";
^
[意訳]
数値に文字列的な操作
はできません。
Code
エラーメッセージ
クラスを型として登録する
静的オブジェクト指向プログラミン
グ言語では、プログラミング言語
が持つ型にユーザーが定義した
クラスを追加する事が可能です。
クラスを定義。
型としてプログラム言
語に登録。
プログラミング言語が
元々持つ型と同じよう
に扱われる。
型を使ってチェックする
型として登録された事により、プ
ログラミング言語側がオブジェク
トに対して操作可能な事を認識す
る事が可能となりました。
これにより、コンパイル時に操作
内容をチェックする事が可能とな
ります。
[意訳]
そんな操作は出来ません。
hogehoge()なんてメソッ
ドの定義はない。
エラーメッセージ
Code
「かわいい」クラスを考えると
プログラマAの
作った「かわいい」
クラス
プログラマBの作っ
た「かわいい」クラ
ス
画像引用元 : http://curazy.com/archives/22910
[コンパイラ様]
型(クラス)が違うじゃ
ないか!
クラスと型チェックのおかけで、プログラマ間で間違った使い方をした場合にコンパイラ様に指導ご鞭撻を賜ること
が出来るようになりました。
(エラーメッセージは有り難いお言葉なのです!)
これで、少しは安心して複数人のプログラムが開発出来るようになります。
最終章
真面目に学ぶためには
真面目に学ぶためには
お付き合い頂き有難うございましたm(__)m
駆け足でオブジェクト指向の考え方をまとめてみました。
(考え方なので思考と書いてみました。)
最後に、
オブジェクト指向について きちんと学びたい方のために参考資料の
情報を載せてお話を締めくくりたいと思います
オブジェクト指向でなぜつくるのか
タイトル通りの本です。
この資料のように、いい加減な説明ではなく、きちんとした説明でオブジェクト指向を語ります。
真面目にオブジェクト指向を学びたくなったら、手始めに手に取ると良いと思います。
著者 平澤 章
出版社 日経BP社
ISBN-13 978-4822281953
発売日 2004/6/3
増補改訂版Java言語で学ぶデザインパターン
入門
先人たちは数々のシステムを開発する中で、設計にも定石が有る事を発見しました。
定石に名前を付けて定石カタログを作り「デザインパターン」と名付けました。
この本では、基本的な設計の定石について説明しています。
著者 結城 浩
出版社 ソフトバンククリエイティブ
ISBN-13 978-4797327038
発売日 2004/6/19
擬人化で考えるオブジェクト思考
~妄想力を設計力に~
おしまい

More Related Content

What's hot

フリーソフトウェア「KH Coder」を使った計量テキスト分析 ―手軽なマウス操作による分析からプラグイン作成まで― #TokyoWebmining 41st
フリーソフトウェア「KH Coder」を使った計量テキスト分析 ―手軽なマウス操作による分析からプラグイン作成まで― #TokyoWebmining 41stフリーソフトウェア「KH Coder」を使った計量テキスト分析 ―手軽なマウス操作による分析からプラグイン作成まで― #TokyoWebmining 41st
フリーソフトウェア「KH Coder」を使った計量テキスト分析 ―手軽なマウス操作による分析からプラグイン作成まで― #TokyoWebmining 41stkhcoder
 
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live![part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!KnowledgeGraph
 
実践!Elasticsearch + Sudachi を用いた全文検索エンジン
実践!Elasticsearch + Sudachi を用いた全文検索エンジン実践!Elasticsearch + Sudachi を用いた全文検索エンジン
実践!Elasticsearch + Sudachi を用いた全文検索エンジンS. T.
 
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Takayuki Shimizukawa
 
AWS + MLflow + SageMakerの環境を動かしてみたお話
AWS + MLflow + SageMakerの環境を動かしてみたお話AWS + MLflow + SageMakerの環境を動かしてみたお話
AWS + MLflow + SageMakerの環境を動かしてみたお話ItohHiroki
 
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャーssuser070fa9
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionTetsutaro Watanabe
 
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版junichi anno
 
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話Yoshitaka Kawashima
 
Introduction to cython
Introduction to cythonIntroduction to cython
Introduction to cythonAtsuo Ishimoto
 
人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with KarateTakanori Suzuki
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣Masahiro Nishimi
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlYutuki r
 
面白いセキュリティツール
面白いセキュリティツール面白いセキュリティツール
面白いセキュリティツールTetsuya Hasegawa
 
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナーMySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナーKouhei Sutou
 
The only one big thing every programmer should know
The only one big thing every programmer should knowThe only one big thing every programmer should know
The only one big thing every programmer should knowTakuto Wada
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual TalksYuya Unno
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門増田 亨
 

What's hot (20)

フリーソフトウェア「KH Coder」を使った計量テキスト分析 ―手軽なマウス操作による分析からプラグイン作成まで― #TokyoWebmining 41st
フリーソフトウェア「KH Coder」を使った計量テキスト分析 ―手軽なマウス操作による分析からプラグイン作成まで― #TokyoWebmining 41stフリーソフトウェア「KH Coder」を使った計量テキスト分析 ―手軽なマウス操作による分析からプラグイン作成まで― #TokyoWebmining 41st
フリーソフトウェア「KH Coder」を使った計量テキスト分析 ―手軽なマウス操作による分析からプラグイン作成まで― #TokyoWebmining 41st
 
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live![part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
 
実践!Elasticsearch + Sudachi を用いた全文検索エンジン
実践!Elasticsearch + Sudachi を用いた全文検索エンジン実践!Elasticsearch + Sudachi を用いた全文検索エンジン
実践!Elasticsearch + Sudachi を用いた全文検索エンジン
 
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?
 
RESTful API 入門
RESTful API 入門RESTful API 入門
RESTful API 入門
 
AWS + MLflow + SageMakerの環境を動かしてみたお話
AWS + MLflow + SageMakerの環境を動かしてみたお話AWS + MLflow + SageMakerの環境を動かしてみたお話
AWS + MLflow + SageMakerの環境を動かしてみたお話
 
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年version
 
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版
 
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
 
RESTfulとは
RESTfulとはRESTfulとは
RESTfulとは
 
Introduction to cython
Introduction to cythonIntroduction to cython
Introduction to cython
 
人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
 
面白いセキュリティツール
面白いセキュリティツール面白いセキュリティツール
面白いセキュリティツール
 
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナーMySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
 
The only one big thing every programmer should know
The only one big thing every programmer should knowThe only one big thing every programmer should know
The only one big thing every programmer should know
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
 

Viewers also liked

ハトでもわかるオブジェクト指向
ハトでもわかるオブジェクト指向ハトでもわかるオブジェクト指向
ハトでもわかるオブジェクト指向ukayare
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?Moriharu Ohzu
 
だいたい30分で分かるオブジェクト指向
だいたい30分で分かるオブジェクト指向だいたい30分で分かるオブジェクト指向
だいたい30分で分かるオブジェクト指向Anto Mioyama
 
本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げるWataru Terada
 
オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門Ryo Miyake
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ増田 亨
 
北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向で北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向でyaju88
 
ドラえもんの世界をオブジェクト指向で
ドラえもんの世界をオブジェクト指向でドラえもんの世界をオブジェクト指向で
ドラえもんの世界をオブジェクト指向でyaju88
 
スクレイピングその後
スクレイピングその後スクレイピングその後
スクレイピングその後Tomoki Hasegawa
 
第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向hakoika-itwg
 
インターフェイスによるオブジェクト指向設計
インターフェイスによるオブジェクト指向設計インターフェイスによるオブジェクト指向設計
インターフェイスによるオブジェクト指向設計Akineko Shimizu
 
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ良質なコードを高速に書くコツ
良質なコードを高速に書くコツShunji Konishi
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメYoji Kanno
 
ハトでもわかるオブジェクト指向
ハトでもわかるオブジェクト指向ハトでもわかるオブジェクト指向
ハトでもわかるオブジェクト指向uka yare
 
デザインパターンとともに学ぶオブジェクト指向のこころ
デザインパターンとともに学ぶオブジェクト指向のこころデザインパターンとともに学ぶオブジェクト指向のこころ
デザインパターンとともに学ぶオブジェクト指向のこころjum paku
 
第2回 モデリング勉強会
第2回 モデリング勉強会第2回 モデリング勉強会
第2回 モデリング勉強会hakoika-itwg
 
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数Satoru Kodaira
 
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎06 オブジェクト指向の基礎
06 オブジェクト指向の基礎文樹 高橋
 

Viewers also liked (20)

ハトでもわかるオブジェクト指向
ハトでもわかるオブジェクト指向ハトでもわかるオブジェクト指向
ハトでもわかるオブジェクト指向
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
だいたい30分で分かるオブジェクト指向
だいたい30分で分かるオブジェクト指向だいたい30分で分かるオブジェクト指向
だいたい30分で分かるオブジェクト指向
 
本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる
 
オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
 
早わかりSmalltalk
早わかりSmalltalk早わかりSmalltalk
早わかりSmalltalk
 
北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向で北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向で
 
ドラえもんの世界をオブジェクト指向で
ドラえもんの世界をオブジェクト指向でドラえもんの世界をオブジェクト指向で
ドラえもんの世界をオブジェクト指向で
 
スクレイピングその後
スクレイピングその後スクレイピングその後
スクレイピングその後
 
第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向
 
インターフェイスによるオブジェクト指向設計
インターフェイスによるオブジェクト指向設計インターフェイスによるオブジェクト指向設計
インターフェイスによるオブジェクト指向設計
 
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
 
ハトでもわかるオブジェクト指向
ハトでもわかるオブジェクト指向ハトでもわかるオブジェクト指向
ハトでもわかるオブジェクト指向
 
デザインパターンとともに学ぶオブジェクト指向のこころ
デザインパターンとともに学ぶオブジェクト指向のこころデザインパターンとともに学ぶオブジェクト指向のこころ
デザインパターンとともに学ぶオブジェクト指向のこころ
 
第2回 モデリング勉強会
第2回 モデリング勉強会第2回 モデリング勉強会
第2回 モデリング勉強会
 
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
 
かたのはなし
かたのはなしかたのはなし
かたのはなし
 
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎06 オブジェクト指向の基礎
06 オブジェクト指向の基礎
 

Similar to 擬人化で考えるオブジェクト指向

今さら聞けないITエンジニアのための人工知能
今さら聞けないITエンジニアのための人工知能今さら聞けないITエンジニアのための人工知能
今さら聞けないITエンジニアのための人工知能Keisuke Tameyasu
 
AIについて
AIについてAIについて
AIについてmamiruco
 
【技術情報協会】人工知能を使ったR&D業務効率化・生産性向上のシステム作り
【技術情報協会】人工知能を使ったR&D業務効率化・生産性向上のシステム作り【技術情報協会】人工知能を使ったR&D業務効率化・生産性向上のシステム作り
【技術情報協会】人工知能を使ったR&D業務効率化・生産性向上のシステム作りHajime Fujita
 
P5js web editorで、クリエイティブコーディングを!
P5js web editorで、クリエイティブコーディングを!P5js web editorで、クリエイティブコーディングを!
P5js web editorで、クリエイティブコーディングを!Suzuki Junko
 
CDLE Lt甲子園予選会 2021 #1 0527 01(itok)
CDLE Lt甲子園予選会 2021 #1 0527 01(itok)CDLE Lt甲子園予選会 2021 #1 0527 01(itok)
CDLE Lt甲子園予選会 2021 #1 0527 01(itok)Naoya Tosaka
 
03 var array_flow_func
03 var array_flow_func03 var array_flow_func
03 var array_flow_func文樹 高橋
 

Similar to 擬人化で考えるオブジェクト指向 (6)

今さら聞けないITエンジニアのための人工知能
今さら聞けないITエンジニアのための人工知能今さら聞けないITエンジニアのための人工知能
今さら聞けないITエンジニアのための人工知能
 
AIについて
AIについてAIについて
AIについて
 
【技術情報協会】人工知能を使ったR&D業務効率化・生産性向上のシステム作り
【技術情報協会】人工知能を使ったR&D業務効率化・生産性向上のシステム作り【技術情報協会】人工知能を使ったR&D業務効率化・生産性向上のシステム作り
【技術情報協会】人工知能を使ったR&D業務効率化・生産性向上のシステム作り
 
P5js web editorで、クリエイティブコーディングを!
P5js web editorで、クリエイティブコーディングを!P5js web editorで、クリエイティブコーディングを!
P5js web editorで、クリエイティブコーディングを!
 
CDLE Lt甲子園予選会 2021 #1 0527 01(itok)
CDLE Lt甲子園予選会 2021 #1 0527 01(itok)CDLE Lt甲子園予選会 2021 #1 0527 01(itok)
CDLE Lt甲子園予選会 2021 #1 0527 01(itok)
 
03 var array_flow_func
03 var array_flow_func03 var array_flow_func
03 var array_flow_func
 

擬人化で考えるオブジェクト指向