SlideShare une entreprise Scribd logo
1  sur  19
OOP & Design Patterns

  Iii_SGMI #5 “Pattern Language”
          Ryohei SUZUKI
OOP – Object Oriented Programming

オブジェクト指向プログラミングと
は?
プログラムとは?
• 計算機が解釈、実行することの出来るデータ

• 計算機のモデル
 – ラムダ計算, 帰納的関数, チューリングマシン, etc…

• 一般的には
 – 実行ファイルはバイナリデータ(機械語)

 – ソースコードはテキストデータ

• プログラムは形式的な記述
プログラミングとは?
• プログラム
 – 機械語に翻訳される記号列

 – プログラミング言語:単一の記号体系

• プログラミングとは、プログラムを書くこと
 – トートロジーのようではあるが…

 – 形式的な記号列であれば形態は問われない
   • (記号列は文字列である必要もない)

 – コーディングは必要条件ではない
プログラミング言語のパラダイム

• プログラミング言語は多数存在する
 – C/C++, Java, Ruby, Haskell, PHP, Lisp, asm, Ocaml, …
 – 数学的にはおよその言語は等価(チューリング完
   全)

• 言語同士の差とは?
 – 採用するパラダイム
 – 記法
 – 動作する環境
 – 標準的な用途
プログラミング言語のパラダイム

• パラダイムって?
 – 言語の備える性質, 必ずしも背反ではない
 – 基本的には、何らかの「抽象化」に対応する
 – 手続き型プログラミング
 – 関数型プログラミング
 – 論理型プログラミング
 – オブジェクト指向プログラミング
 – etc.
プログラミング言語のパラダイム

• 手続き型プログラミング
 – C, C++など普及した言語はほとんどが採用

 – 逐次的に機械が行う処理を記述する

• 関数型プログラミング
 – Haskell, OCamlなどが採用

 – 数学的な記法によるプログラミング

 – 圏論など抽象数学との直接的対応がある
オブジェクト指向プログラミン
      グ
• プログラムを構造的に抽象化するアプローチ
 – cf. 関数型言語:数学的抽象化

 – 計算機上の実体(メモリ上のデータ)を概念構造として
  解釈

 – 概念間の関係性、やり取りの記述によるプログラミング

 – 日常的な概念操作をプログラミングに持ち込む

 – クラスベースとプロトタイプベースに分けられる
  • 今回はクラスベースを扱う
具体例
OOPの利点
• 構造化・モジュール化が進む
 – メンテナンス性の向上

 – 再利用性の向上

• 構造の理解が容易になる
 – UMLなどのインターフェイスの存在

• 設計が容易になり、生産性が向上する
 – ノウハウの蓄積が推進
Design Patterns: Elements of Reusable Object-Oriented Software

デザインパターン
デザインパターン
• 「オブジェクト指向における再利用のためのデザインパ
 ターン」

• OOPのプラクティスをまとめたもの
 – OOP設計=プログラム上の概念の構造化

 – プログラムに内在するオントロジーの公約数集合

• 絶対のものではない
 – 亜種、派生も多数存在する

 – 技術的要請によって新たなパターンが生じる
デザインパターンの実際
• 業務プログラミングでの生産性向上のための活用

• 言語設計において強く意識される
 – 糖衣構文の容易など

 – ex) Iteratorパターン → foreach構文の導入

• プログラムの共通言語としての存在
 – ライブラリ設計など

 – 分野に関わらずデザインパターンが意識されている
パタン・ランゲージとの関係性
• 非OOPコード, 図面
 – 還元論的には全部入っている

 – 専門的な知識があればイメージを起こせる

 – イメージとは?

• プロジェクトの目的
 – 住みたい家, 満たすべき条件 = プログラムの仕様書

 – これだけではプログラムを作れない
パタン・ランゲージとの関係性
• パタン・ランゲージ
 – 要求と図面の媒介

 – 建築物のセマンティックな分節、形式化

• デザインパターン
 – 目的動作とプログラムの媒介

 – プログラム上の概念のセマンティックな分節、形式化

• 柔軟性+目的と向かい合った設計を実現する
Let’s learn the Design Patterns!

デザインパターンを知ろう
生成に関するパターン

• Abstract Factory

• Builder

• Factory Method

• Prototype

• Singleton
構造に関するパターン

• Adapter     • Facade

• Bridge      • Flyweight

• Composite   • Proxy

• Decorator
振る舞いに関するパターン

• Chain of Responsibility • Observer

• Command                • State

• Interpreter            • Strategy

• Iterator               • Template Method

• Mediator               • Visitor

• Memento

Contenu connexe

Tendances

最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~Fujio Kojima
 
ど素人向け エンジニア勉強会
ど素人向け エンジニア勉強会ど素人向け エンジニア勉強会
ど素人向け エンジニア勉強会YukiIwasaki2764
 
括弧を使わないLispプログラミング
括弧を使わないLispプログラミング括弧を使わないLispプログラミング
括弧を使わないLispプログラミングYuta Mizushima
 
Lt python腕試しネタ
Lt python腕試しネタLt python腕試しネタ
Lt python腕試しネタkiwofusi
 
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由Kohei Taniguchi
 
第一回関数型言語勉強会 大阪
第一回関数型言語勉強会 大阪第一回関数型言語勉強会 大阪
第一回関数型言語勉強会 大阪Naoki Kitora
 
OpenCAPI meetup 20180702
OpenCAPI meetup 20180702OpenCAPI meetup 20180702
OpenCAPI meetup 20180702Yutaka Kawai
 
Ruby Introduction
Ruby IntroductionRuby Introduction
Ruby IntroductionYushiroDodo
 
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRubyKanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRubyShinichi Okada
 
新人プログラマーが気に入ったPythonの基礎の基礎
新人プログラマーが気に入ったPythonの基礎の基礎新人プログラマーが気に入ったPythonの基礎の基礎
新人プログラマーが気に入ったPythonの基礎の基礎iPride Co., Ltd.
 
金大アルゴリズム勉強会#007資料
金大アルゴリズム勉強会#007資料金大アルゴリズム勉強会#007資料
金大アルゴリズム勉強会#007資料Takumi Murano
 
並列プログラミング 入門!&おさらい!
並列プログラミング入門!&おさらい!並列プログラミング入門!&おさらい!
並列プログラミング 入門!&おさらい!道化師 堂華
 
PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」Preferred Networks
 
運用で爆発四散しないためのメタプログラミングとの付き合い方
運用で爆発四散しないためのメタプログラミングとの付き合い方運用で爆発四散しないためのメタプログラミングとの付き合い方
運用で爆発四散しないためのメタプログラミングとの付き合い方Yuki Ishikawa
 
Perlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobodyPerlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobodyazuma satoshi
 
Chrome拡張で改善 表紙
Chrome拡張で改善 表紙Chrome拡張で改善 表紙
Chrome拡張で改善 表紙Wataru Terada
 
先端技術 関数型プログラミング
先端技術 関数型プログラミング先端技術 関数型プログラミング
先端技術 関数型プログラミング聡 中川
 
プログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flowプログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flowKeisuke Umezawa
 

Tendances (20)

最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
 
ど素人向け エンジニア勉強会
ど素人向け エンジニア勉強会ど素人向け エンジニア勉強会
ど素人向け エンジニア勉強会
 
括弧を使わないLispプログラミング
括弧を使わないLispプログラミング括弧を使わないLispプログラミング
括弧を使わないLispプログラミング
 
Lt python腕試しネタ
Lt python腕試しネタLt python腕試しネタ
Lt python腕試しネタ
 
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
 
第一回関数型言語勉強会 大阪
第一回関数型言語勉強会 大阪第一回関数型言語勉強会 大阪
第一回関数型言語勉強会 大阪
 
OpenCAPI meetup 20180702
OpenCAPI meetup 20180702OpenCAPI meetup 20180702
OpenCAPI meetup 20180702
 
Ruby Introduction
Ruby IntroductionRuby Introduction
Ruby Introduction
 
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRubyKanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
 
新人プログラマーが気に入ったPythonの基礎の基礎
新人プログラマーが気に入ったPythonの基礎の基礎新人プログラマーが気に入ったPythonの基礎の基礎
新人プログラマーが気に入ったPythonの基礎の基礎
 
金大アルゴリズム勉強会#007資料
金大アルゴリズム勉強会#007資料金大アルゴリズム勉強会#007資料
金大アルゴリズム勉強会#007資料
 
Lt1
Lt1Lt1
Lt1
 
並列プログラミング 入門!&おさらい!
並列プログラミング入門!&おさらい!並列プログラミング入門!&おさらい!
並列プログラミング 入門!&おさらい!
 
PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」
 
運用で爆発四散しないためのメタプログラミングとの付き合い方
運用で爆発四散しないためのメタプログラミングとの付き合い方運用で爆発四散しないためのメタプログラミングとの付き合い方
運用で爆発四散しないためのメタプログラミングとの付き合い方
 
Perlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobodyPerlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobody
 
Chrome拡張で改善 表紙
Chrome拡張で改善 表紙Chrome拡張で改善 表紙
Chrome拡張で改善 表紙
 
先端技術 関数型プログラミング
先端技術 関数型プログラミング先端技術 関数型プログラミング
先端技術 関数型プログラミング
 
プログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flowプログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flow
 
母語方式Coq
母語方式Coq母語方式Coq
母語方式Coq
 

En vedette

Lucene/Solr 用形態素解析システムのご紹介 ベイシス・テクノロジー
Lucene/Solr 用形態素解析システムのご紹介 ベイシス・テクノロジーLucene/Solr 用形態素解析システムのご紹介 ベイシス・テクノロジー
Lucene/Solr 用形態素解析システムのご紹介 ベイシス・テクノロジーBasis Technology K.K.
 
2013 JOI春合宿 Day4 漢字しりとり (Kanji Shiritori) 解説
2013 JOI春合宿 Day4 漢字しりとり (Kanji Shiritori) 解説2013 JOI春合宿 Day4 漢字しりとり (Kanji Shiritori) 解説
2013 JOI春合宿 Day4 漢字しりとり (Kanji Shiritori) 解説Hiroshi Yamashita
 
J 4共通 XCITE秋2014-開発者の可能性を際限なく広げる高性能クラウドSoftLayer
J 4共通 XCITE秋2014-開発者の可能性を際限なく広げる高性能クラウドSoftLayerJ 4共通 XCITE秋2014-開発者の可能性を際限なく広げる高性能クラウドSoftLayer
J 4共通 XCITE秋2014-開発者の可能性を際限なく広げる高性能クラウドSoftLayerMaho Takara
 
20140222 はじめてのオープンストリートマップ
20140222 はじめてのオープンストリートマップ20140222 はじめてのオープンストリートマップ
20140222 はじめてのオープンストリートマップTaichi Furuhashi
 
Landing Teams within Linaro
Landing Teams within LinaroLanding Teams within Linaro
Landing Teams within LinaroJamieBennett
 
つぶやかないでTwitterをビジネスに活用する秘訣セミナー
つぶやかないでTwitterをビジネスに活用する秘訣セミナーつぶやかないでTwitterをビジネスに活用する秘訣セミナー
つぶやかないでTwitterをビジネスに活用する秘訣セミナー新潟コンサルタント横田秀珠
 
OSC名古屋2014 使えるクラウド SoftLayer
OSC名古屋2014 使えるクラウド SoftLayerOSC名古屋2014 使えるクラウド SoftLayer
OSC名古屋2014 使えるクラウド SoftLayerMaho Takara
 
ごちうさ Advent Calendar
ごちうさ Advent Calendarごちうさ Advent Calendar
ごちうさ Advent Calendaryaplus
 
SoftLayer見積もり作成Tips
SoftLayer見積もり作成Tips SoftLayer見積もり作成Tips
SoftLayer見積もり作成Tips softlayerjp
 
YAPC::Asia 2014 前夜祭
YAPC::Asia 2014 前夜祭YAPC::Asia 2014 前夜祭
YAPC::Asia 2014 前夜祭Hon Dallica
 
PC88時代のシューティングゲーム [概要]
PC88時代のシューティングゲーム [概要]PC88時代のシューティングゲーム [概要]
PC88時代のシューティングゲーム [概要]IGDA Japan
 
Irish Planning Institute (IPI) Autumn Conference 2016
Irish Planning Institute (IPI) Autumn Conference 2016Irish Planning Institute (IPI) Autumn Conference 2016
Irish Planning Institute (IPI) Autumn Conference 2016Justin Gleeson
 
2014 JOI春合宿 行列の基礎とその応用
2014 JOI春合宿 行列の基礎とその応用2014 JOI春合宿 行列の基礎とその応用
2014 JOI春合宿 行列の基礎とその応用Hiroshi Yamashita
 
子どもとスマホ 中間成果物
子どもとスマホ 中間成果物子どもとスマホ 中間成果物
子どもとスマホ 中間成果物NAGATA Chihiro
 
Practical Bug Reporting
Practical Bug ReportingPractical Bug Reporting
Practical Bug Reportingcharsbar
 
GTMF 2015: BISHAMON v1.8 最新事情 | マッチロック株式会社
GTMF 2015: BISHAMON v1.8 最新事情 | マッチロック株式会社GTMF 2015: BISHAMON v1.8 最新事情 | マッチロック株式会社
GTMF 2015: BISHAMON v1.8 最新事情 | マッチロック株式会社Game Tools & Middleware Forum
 
Rails 速度改善結果レポート
Rails 速度改善結果レポートRails 速度改善結果レポート
Rails 速度改善結果レポートMasaru Gushiken
 

En vedette (20)

Lucene/Solr 用形態素解析システムのご紹介 ベイシス・テクノロジー
Lucene/Solr 用形態素解析システムのご紹介 ベイシス・テクノロジーLucene/Solr 用形態素解析システムのご紹介 ベイシス・テクノロジー
Lucene/Solr 用形態素解析システムのご紹介 ベイシス・テクノロジー
 
2013 JOI春合宿 Day4 漢字しりとり (Kanji Shiritori) 解説
2013 JOI春合宿 Day4 漢字しりとり (Kanji Shiritori) 解説2013 JOI春合宿 Day4 漢字しりとり (Kanji Shiritori) 解説
2013 JOI春合宿 Day4 漢字しりとり (Kanji Shiritori) 解説
 
J 4共通 XCITE秋2014-開発者の可能性を際限なく広げる高性能クラウドSoftLayer
J 4共通 XCITE秋2014-開発者の可能性を際限なく広げる高性能クラウドSoftLayerJ 4共通 XCITE秋2014-開発者の可能性を際限なく広げる高性能クラウドSoftLayer
J 4共通 XCITE秋2014-開発者の可能性を際限なく広げる高性能クラウドSoftLayer
 
20140222 はじめてのオープンストリートマップ
20140222 はじめてのオープンストリートマップ20140222 はじめてのオープンストリートマップ
20140222 はじめてのオープンストリートマップ
 
Landing Teams within Linaro
Landing Teams within LinaroLanding Teams within Linaro
Landing Teams within Linaro
 
VIOPS04: Intel VT ~仮想化を支える基礎技術~
VIOPS04: Intel VT ~仮想化を支える基礎技術~VIOPS04: Intel VT ~仮想化を支える基礎技術~
VIOPS04: Intel VT ~仮想化を支える基礎技術~
 
つぶやかないでTwitterをビジネスに活用する秘訣セミナー
つぶやかないでTwitterをビジネスに活用する秘訣セミナーつぶやかないでTwitterをビジネスに活用する秘訣セミナー
つぶやかないでTwitterをビジネスに活用する秘訣セミナー
 
ITを活用した販売促進セミナー前編in三条商工会議所
ITを活用した販売促進セミナー前編in三条商工会議所ITを活用した販売促進セミナー前編in三条商工会議所
ITを活用した販売促進セミナー前編in三条商工会議所
 
OSC名古屋2014 使えるクラウド SoftLayer
OSC名古屋2014 使えるクラウド SoftLayerOSC名古屋2014 使えるクラウド SoftLayer
OSC名古屋2014 使えるクラウド SoftLayer
 
VIOPS07: アプリケーションサービスの自動化
VIOPS07: アプリケーションサービスの自動化VIOPS07: アプリケーションサービスの自動化
VIOPS07: アプリケーションサービスの自動化
 
ごちうさ Advent Calendar
ごちうさ Advent Calendarごちうさ Advent Calendar
ごちうさ Advent Calendar
 
SoftLayer見積もり作成Tips
SoftLayer見積もり作成Tips SoftLayer見積もり作成Tips
SoftLayer見積もり作成Tips
 
YAPC::Asia 2014 前夜祭
YAPC::Asia 2014 前夜祭YAPC::Asia 2014 前夜祭
YAPC::Asia 2014 前夜祭
 
PC88時代のシューティングゲーム [概要]
PC88時代のシューティングゲーム [概要]PC88時代のシューティングゲーム [概要]
PC88時代のシューティングゲーム [概要]
 
Irish Planning Institute (IPI) Autumn Conference 2016
Irish Planning Institute (IPI) Autumn Conference 2016Irish Planning Institute (IPI) Autumn Conference 2016
Irish Planning Institute (IPI) Autumn Conference 2016
 
2014 JOI春合宿 行列の基礎とその応用
2014 JOI春合宿 行列の基礎とその応用2014 JOI春合宿 行列の基礎とその応用
2014 JOI春合宿 行列の基礎とその応用
 
子どもとスマホ 中間成果物
子どもとスマホ 中間成果物子どもとスマホ 中間成果物
子どもとスマホ 中間成果物
 
Practical Bug Reporting
Practical Bug ReportingPractical Bug Reporting
Practical Bug Reporting
 
GTMF 2015: BISHAMON v1.8 最新事情 | マッチロック株式会社
GTMF 2015: BISHAMON v1.8 最新事情 | マッチロック株式会社GTMF 2015: BISHAMON v1.8 最新事情 | マッチロック株式会社
GTMF 2015: BISHAMON v1.8 最新事情 | マッチロック株式会社
 
Rails 速度改善結果レポート
Rails 速度改善結果レポートRails 速度改善結果レポート
Rails 速度改善結果レポート
 

Similaire à iii_SGMI #5 "OOP & Design Patterns"

TypeScript で型を上手く使う試み.pdf
TypeScript で型を上手く使う試み.pdfTypeScript で型を上手く使う試み.pdf
TypeScript で型を上手く使う試み.pdfRyo Higashigawa
 
Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...
Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...
Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...No Bu
 
2015LETシンポジウム 最大増加語数のモデリング
2015LETシンポジウム 最大増加語数のモデリング2015LETシンポジウム 最大増加語数のモデリング
2015LETシンポジウム 最大増加語数のモデリングWritingMaetriX
 
プログラミングのことはじめ 互助会 20160507 バージョン
プログラミングのことはじめ 互助会 20160507 バージョンプログラミングのことはじめ 互助会 20160507 バージョン
プログラミングのことはじめ 互助会 20160507 バージョンManabu Murakami
 
2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日nukaemon
 
プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6
プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6
プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6健太 田上
 
ノーコード・ローコード開発の意義
ノーコード・ローコード開発の意義ノーコード・ローコード開発の意義
ノーコード・ローコード開発の意義千紘 佐野
 
大阪工大プログラミング言語の標準化
大阪工大プログラミング言語の標準化大阪工大プログラミング言語の標準化
大阪工大プログラミング言語の標準化Toshiaki Kurokawa
 
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演Hironori Washizaki
 
アプリデザインの共通言語
アプリデザインの共通言語アプリデザインの共通言語
アプリデザインの共通言語Hiroki Akiyama
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementationsmasahitojp
 
Php development efficiency improvement
Php development efficiency improvementPhp development efficiency improvement
Php development efficiency improvement伸幸 茂木
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!Jun-ichi Sakamoto
 
PHPカンファレンス2015
PHPカンファレンス2015PHPカンファレンス2015
PHPカンファレンス2015Daisuke Kasuya
 
C#でもメタプログラミングがしたい!!
C#でもメタプログラミングがしたい!!C#でもメタプログラミングがしたい!!
C#でもメタプログラミングがしたい!!TATSUYA HAYAMIZU
 
CodingTips+ 基礎編
CodingTips+ 基礎編CodingTips+ 基礎編
CodingTips+ 基礎編Yusuke Ito
 
金沢アプリ塾デザインパターンとオープンデータ
金沢アプリ塾デザインパターンとオープンデータ金沢アプリ塾デザインパターンとオープンデータ
金沢アプリ塾デザインパターンとオープンデータMasayuki KaToH
 

Similaire à iii_SGMI #5 "OOP & Design Patterns" (20)

Python勉強会 2015-12-02
Python勉強会 2015-12-02Python勉強会 2015-12-02
Python勉強会 2015-12-02
 
TypeScript で型を上手く使う試み.pdf
TypeScript で型を上手く使う試み.pdfTypeScript で型を上手く使う試み.pdf
TypeScript で型を上手く使う試み.pdf
 
Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...
Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...
Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...
 
2015LETシンポジウム 最大増加語数のモデリング
2015LETシンポジウム 最大増加語数のモデリング2015LETシンポジウム 最大増加語数のモデリング
2015LETシンポジウム 最大増加語数のモデリング
 
プログラミングのことはじめ 互助会 20160507 バージョン
プログラミングのことはじめ 互助会 20160507 バージョンプログラミングのことはじめ 互助会 20160507 バージョン
プログラミングのことはじめ 互助会 20160507 バージョン
 
勉強会 - 1
勉強会 - 1勉強会 - 1
勉強会 - 1
 
2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日
 
自由なデータ
自由なデータ自由なデータ
自由なデータ
 
プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6
プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6
プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6
 
ノーコード・ローコード開発の意義
ノーコード・ローコード開発の意義ノーコード・ローコード開発の意義
ノーコード・ローコード開発の意義
 
大阪工大プログラミング言語の標準化
大阪工大プログラミング言語の標準化大阪工大プログラミング言語の標準化
大阪工大プログラミング言語の標準化
 
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
 
アプリデザインの共通言語
アプリデザインの共通言語アプリデザインの共通言語
アプリデザインの共通言語
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementations
 
Php development efficiency improvement
Php development efficiency improvementPhp development efficiency improvement
Php development efficiency improvement
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
 
PHPカンファレンス2015
PHPカンファレンス2015PHPカンファレンス2015
PHPカンファレンス2015
 
C#でもメタプログラミングがしたい!!
C#でもメタプログラミングがしたい!!C#でもメタプログラミングがしたい!!
C#でもメタプログラミングがしたい!!
 
CodingTips+ 基礎編
CodingTips+ 基礎編CodingTips+ 基礎編
CodingTips+ 基礎編
 
金沢アプリ塾デザインパターンとオープンデータ
金沢アプリ塾デザインパターンとオープンデータ金沢アプリ塾デザインパターンとオープンデータ
金沢アプリ塾デザインパターンとオープンデータ
 

Plus de Ryohei Suzuki

Transformer based approaches for visual representation learning
Transformer based approaches for visual representation learningTransformer based approaches for visual representation learning
Transformer based approaches for visual representation learningRyohei Suzuki
 
Paper memo: persistent homology on biological problems
Paper memo: persistent homology on biological problemsPaper memo: persistent homology on biological problems
Paper memo: persistent homology on biological problemsRyohei Suzuki
 
Paper memo: Optimal-Transport Analysis of Single-Cell Gene Expression Identif...
Paper memo: Optimal-Transport Analysis of Single-Cell Gene Expression Identif...Paper memo: Optimal-Transport Analysis of Single-Cell Gene Expression Identif...
Paper memo: Optimal-Transport Analysis of Single-Cell Gene Expression Identif...Ryohei Suzuki
 
Basic Concepts of Entanglement Measures
Basic Concepts of Entanglement MeasuresBasic Concepts of Entanglement Measures
Basic Concepts of Entanglement MeasuresRyohei Suzuki
 
Disentangled Representation Learning of Deep Generative Models
Disentangled Representation Learning of Deep Generative ModelsDisentangled Representation Learning of Deep Generative Models
Disentangled Representation Learning of Deep Generative ModelsRyohei Suzuki
 
論文紹介: "MolGAN: An implicit generative model for small molecular graphs"
論文紹介: "MolGAN: An implicit generative model for small molecular graphs"論文紹介: "MolGAN: An implicit generative model for small molecular graphs"
論文紹介: "MolGAN: An implicit generative model for small molecular graphs"Ryohei Suzuki
 
Report: "MolGAN: An implicit generative model for small molecular graphs"
Report: "MolGAN: An implicit generative model for small molecular graphs"Report: "MolGAN: An implicit generative model for small molecular graphs"
Report: "MolGAN: An implicit generative model for small molecular graphs"Ryohei Suzuki
 
等号と不等号の物理学
等号と不等号の物理学等号と不等号の物理学
等号と不等号の物理学Ryohei Suzuki
 
Wolf et al. "Graph abstraction reconciles clustering with trajectory inferen...
Wolf et al. "Graph abstraction reconciles clustering with trajectory inferen...Wolf et al. "Graph abstraction reconciles clustering with trajectory inferen...
Wolf et al. "Graph abstraction reconciles clustering with trajectory inferen...Ryohei Suzuki
 
コンピュータは知恵熱を出すか?
コンピュータは知恵熱を出すか?コンピュータは知恵熱を出すか?
コンピュータは知恵熱を出すか?Ryohei Suzuki
 
身体の中の小宇宙:免疫研究の最前線
身体の中の小宇宙:免疫研究の最前線身体の中の小宇宙:免疫研究の最前線
身体の中の小宇宙:免疫研究の最前線Ryohei Suzuki
 
Single-cell pseudo-temporal ordering 近年の技術動向
Single-cell pseudo-temporal ordering 近年の技術動向Single-cell pseudo-temporal ordering 近年の技術動向
Single-cell pseudo-temporal ordering 近年の技術動向Ryohei Suzuki
 
Collaborative 3D Modeling by the Crowd
Collaborative 3D Modeling by the CrowdCollaborative 3D Modeling by the Crowd
Collaborative 3D Modeling by the CrowdRyohei Suzuki
 
汝は計算機なりや?
汝は計算機なりや?汝は計算機なりや?
汝は計算機なりや?Ryohei Suzuki
 
アナログとはなんだろう。―古くて新しい、もう一つの計算―
アナログとはなんだろう。―古くて新しい、もう一つの計算―アナログとはなんだろう。―古くて新しい、もう一つの計算―
アナログとはなんだろう。―古くて新しい、もう一つの計算―Ryohei Suzuki
 
色字共感覚と書記素学習
色字共感覚と書記素学習色字共感覚と書記素学習
色字共感覚と書記素学習Ryohei Suzuki
 
AnnoTone: 高周波音の映像収録時 埋め込みによる編集支援
AnnoTone: 高周波音の映像収録時埋め込みによる編集支援AnnoTone: 高周波音の映像収録時埋め込みによる編集支援
AnnoTone: 高周波音の映像収録時 埋め込みによる編集支援Ryohei Suzuki
 
立体音響とインタラクション
立体音響とインタラクション立体音響とインタラクション
立体音響とインタラクションRyohei Suzuki
 
SIGGRAPH 2014 Preview -"Shape Collection" Session
SIGGRAPH 2014 Preview -"Shape Collection" SessionSIGGRAPH 2014 Preview -"Shape Collection" Session
SIGGRAPH 2014 Preview -"Shape Collection" SessionRyohei Suzuki
 

Plus de Ryohei Suzuki (20)

Transformer based approaches for visual representation learning
Transformer based approaches for visual representation learningTransformer based approaches for visual representation learning
Transformer based approaches for visual representation learning
 
Paper memo: persistent homology on biological problems
Paper memo: persistent homology on biological problemsPaper memo: persistent homology on biological problems
Paper memo: persistent homology on biological problems
 
Paper memo: Optimal-Transport Analysis of Single-Cell Gene Expression Identif...
Paper memo: Optimal-Transport Analysis of Single-Cell Gene Expression Identif...Paper memo: Optimal-Transport Analysis of Single-Cell Gene Expression Identif...
Paper memo: Optimal-Transport Analysis of Single-Cell Gene Expression Identif...
 
Basic Concepts of Entanglement Measures
Basic Concepts of Entanglement MeasuresBasic Concepts of Entanglement Measures
Basic Concepts of Entanglement Measures
 
Disentangled Representation Learning of Deep Generative Models
Disentangled Representation Learning of Deep Generative ModelsDisentangled Representation Learning of Deep Generative Models
Disentangled Representation Learning of Deep Generative Models
 
論文紹介: "MolGAN: An implicit generative model for small molecular graphs"
論文紹介: "MolGAN: An implicit generative model for small molecular graphs"論文紹介: "MolGAN: An implicit generative model for small molecular graphs"
論文紹介: "MolGAN: An implicit generative model for small molecular graphs"
 
Report: "MolGAN: An implicit generative model for small molecular graphs"
Report: "MolGAN: An implicit generative model for small molecular graphs"Report: "MolGAN: An implicit generative model for small molecular graphs"
Report: "MolGAN: An implicit generative model for small molecular graphs"
 
等号と不等号の物理学
等号と不等号の物理学等号と不等号の物理学
等号と不等号の物理学
 
Wolf et al. "Graph abstraction reconciles clustering with trajectory inferen...
Wolf et al. "Graph abstraction reconciles clustering with trajectory inferen...Wolf et al. "Graph abstraction reconciles clustering with trajectory inferen...
Wolf et al. "Graph abstraction reconciles clustering with trajectory inferen...
 
コンピュータは知恵熱を出すか?
コンピュータは知恵熱を出すか?コンピュータは知恵熱を出すか?
コンピュータは知恵熱を出すか?
 
身体の中の小宇宙:免疫研究の最前線
身体の中の小宇宙:免疫研究の最前線身体の中の小宇宙:免疫研究の最前線
身体の中の小宇宙:免疫研究の最前線
 
Single-cell pseudo-temporal ordering 近年の技術動向
Single-cell pseudo-temporal ordering 近年の技術動向Single-cell pseudo-temporal ordering 近年の技術動向
Single-cell pseudo-temporal ordering 近年の技術動向
 
Collaborative 3D Modeling by the Crowd
Collaborative 3D Modeling by the CrowdCollaborative 3D Modeling by the Crowd
Collaborative 3D Modeling by the Crowd
 
汝は計算機なりや?
汝は計算機なりや?汝は計算機なりや?
汝は計算機なりや?
 
アナログとはなんだろう。―古くて新しい、もう一つの計算―
アナログとはなんだろう。―古くて新しい、もう一つの計算―アナログとはなんだろう。―古くて新しい、もう一つの計算―
アナログとはなんだろう。―古くて新しい、もう一つの計算―
 
AnnoTone (CHI 2015)
AnnoTone (CHI 2015)AnnoTone (CHI 2015)
AnnoTone (CHI 2015)
 
色字共感覚と書記素学習
色字共感覚と書記素学習色字共感覚と書記素学習
色字共感覚と書記素学習
 
AnnoTone: 高周波音の映像収録時 埋め込みによる編集支援
AnnoTone: 高周波音の映像収録時埋め込みによる編集支援AnnoTone: 高周波音の映像収録時埋め込みによる編集支援
AnnoTone: 高周波音の映像収録時 埋め込みによる編集支援
 
立体音響とインタラクション
立体音響とインタラクション立体音響とインタラクション
立体音響とインタラクション
 
SIGGRAPH 2014 Preview -"Shape Collection" Session
SIGGRAPH 2014 Preview -"Shape Collection" SessionSIGGRAPH 2014 Preview -"Shape Collection" Session
SIGGRAPH 2014 Preview -"Shape Collection" Session
 

iii_SGMI #5 "OOP & Design Patterns"