SlideShare a Scribd company logo
1 of 38
Download to read offline
エクストリーム・エンジニアへの道
(Ruby編)第3回
デザインパターン	
  
テクノロジックアート	
  
⻑⾧長瀬  嘉秀	
  
•  デザインパターン	
内容	
  
デザインパターンの⽬目的	
  
•  洗練された設計を習得・再利用する	
  
•  ソフトウェアに安定した構造を導入する	
  
•  コードにたいする共通の理解を得やすくする	
  
•  コミュニケーションのための語彙とする	
ソフトウェアの	
  
再利用性、柔軟性、拡張性、保守性	
  
を向上させる
デザインパターンの作成	
  
•  ソフトウェアの再利用性や柔軟性を高めたい	
!  問題ごとに解法の指針をカタログ化	
  「パターン名、問題、解法、結果」	
!  何度も同じような設計・実装をしてきた	
!  経験から獲得した解法の工夫を抽出・洗練する
デザインパターンの意義	
  
•  適用範囲が明確に定義されている	
  → 「課題の解法」を習得・再利用できる	
•  洗練され、高い再利用性・保守性を持っている	
  → 構造が安定し、再利用性を確保できる	
•  コミュニケーションのための語彙になる	
  → 設計に対し、共通の認識を得ることができる	
  → 開発時の前提知識の底上げができる	
•  モデルの知識は変化しにくい	
  → 設計は実装言語に依存せずに再利用できる
GoFのデザインパターン	
  
•  「オブジェクト指向における再利
用のためのデザインパターン 」	
  
•  ガンマ、ブリシデス、ヘルム、ジョ
ンソン	
  (著)	
  	
  
•  本位田真一、吉田和樹(監訳)、
ソフトバンクパブリッシング	
  	
  
デザインパターンの分類	
  
•  デザインパターンは設計上のパターン	
– GoFのデザインパターン(23パターン)	
 GoF(Gang of Four)と呼ばれる四人がカタログ化	
   : Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides	
– J2EEパターン(15パターン)	
Sun Java Centerで、J2EEに有用なものをカタログ化	
– 分散・並行化設計パターン	
Pattern Languages of Programsワークショップ選出のものなど	
デザインパターン	
GoFの	
  
デザインパターン	
J2EEパターン	
分散・並行化	
  
設計パターン
⽣生成に関するパターン	
  
•  オブジェクトの生成プロセスに関する(全5パターン)	
	
 オブジェクトがどのように生成、結合、表現されているのか、という
ことからシステムを独立にする方法を提供する	
No. パターン名	
 目的	
1 Abstract Factory オブジェクト群を明確にせず生成するためのインターフェ
ースを提供する	
2 Builder 複合的に組み合わせたオブジェクトを生成する	
3 Factory Method インスタンス化をサブクラスに任せる	
4 Prototype コピーして新しいオブジェクトを生成する	
5 Singleton インスタンスが1つしか存在しないことを保証する
構造に関するパターン	
  
•  クラス、オブジェクトの構造に関する(全7パターン)	
	
 クラスやオブジェクトを柔軟に合成する方法を提供する	
No.	
 パターン名	
 目的	
1	
 Adapter	
 インターフェースに互換性のないクラス同士を組み合わせる	
2	
 Bridge	
 機能と実装を別々の階層で拡張する	
3	
 Composite	
 オブジェクトを木構造に組み立てる	
4	
 Decorator	
 動的にオブジェクトに責任を追加できるようにする	
5	
 Façade	
 複数のインターフェースに高レベルの統一インターフェースを与える	
6	
 Flyweight	
 インスタンスを共有しコストを節約する	
7	
 Proxy	
 オブジェクトへのアクセスを制御するために処理を代理人に任せる
振る舞いに関するパターン(1/2)	
  
•  クラス、オブジェクトの通信に関する(全11パターン)	
	
 アルゴリズムとオブジェクト間での適切な責任分担の方法を提供する	
No.	
 パターン名	
 目的	
1	
 Chain of
Responsibility	
要求に応じる役割をチェーン状につなぐ	
2	
 Command	
 命令をカプセル化して再利用する	
3	
 Interpreter	
 文法規則を表現する	
4	
 Iterator	
 構造に順にアクセスする方法を提供する	
5	
 Mediator	
 オブジェクト同士の結合度を低める
振る舞いに関するパターン(2/2)	
  
No.	
 パターン名	
 目的	
6	
 Memento	
 インスタンスの状態を戻せるようにする	
7	
 Observer	
 状態の変化が自動的に通知され、更新される	
8	
 State	
 状態にあわせて動作を変える	
9	
 Strategy	
 アルゴリズムをカプセル化して交換可能にする	
10	
 Template Method	
 特定の処理をサブクラスで行う	
11	
 Visitor	
 構造と処理を分離する
ストラテジーパターン	
  
結果	
  
•  複数のアルゴリズムを統一的に扱うことができる	
  
•  アルゴリズムを動的に交換できる	
  
•  アルゴリズムを利用するクライアントから独立に変更できる	
特徴	
  
!  複数の異なるアルゴリズムを一つの集合として扱う	
  
!  集合内に各アルゴリズムをカプセル化する	
  
!  サブクラス化ではなく、委譲によってアルゴリズム
や振る舞いの多様性を引き出す
ストラテジーパターン(構造)	
  
•  Strategy	
  
– アルゴリズムの集合を定義	
  
– アルゴリズムに共通のインタフェースを宣言	
  
•  ConcreteStrategy	
  
– 個々のアルゴリズムの実装	
  
•  Context	
  
– ConcreteStrategyオブジェクトを持つ	
  
– Strategyのインタフェースを介して処理を行う	
ストラテジーパターン(構成要素)	
  
: Client
1 : ContextInterface()
4 : ContextInterface()
7 : ContextInterface()
: Context
2 : SwitchAlgorithm
5 : SwitchAlgorithm
8 : SwitchAlgorithm
3 : AlgorithmInterface()
6 : AlgorithmInterface()
9 : AlgorithmInterface()
: ConcreteStrategyA : ConcreteStrategyB : ConcreteStrategyC
ストラテジーパターン(振る舞い)	
  
社⻑⾧長命令令・起⽴立立!	
  
コード(役職)	
  
class	
  Yakushoku	
def	
  ask	
puts	
  "	
  "	
end	
end	
class	
  Tanto	
  <	
  Yakushoku	
def	
  ask	
puts	
  "まずは様子を見ましょう"	
end	
end	
class	
  Shunin	
  <	
  Yakushoku	
	
  	
  	
  def	
  ask	
	
  	
  	
  puts	
  "積極的に攻めていきましょう"	
	
  	
  	
  end	
end
コード(社員)	
  
class	
  Shain	
def	
  iniBalize	
@yakushoku	
  =	
  Yakushoku.new	
end	
  
	
  def	
  ask	
	
  	
  @yakushoku.ask	
	
  end	
	
  def	
  set_yakushoku_tanto	
	
  	
  @yakushoku	
  =	
  Tanto.new	
	
  end	
	
  def	
  set_yakushoku_shunin	
	
  	
  @yakushoku	
  =	
  Shunin.new	
	
  end	
end
コード(社⻑⾧長)	
  
shain	
  =	
  Shain.new	
shain.set_yakushoku_tanto	
shain.ask	
shain.set_yakushoku_shunin	
shain.ask	
shacho.rb
コード  実⾏行行	
  
%	
  ruby	
  shacho.rb	
  
まずは様子を見ましょう	
積極的に攻めていきましょう
•  部長クラスを追加してください。	
  
•  出張交通費精算をする()メソッドを作成し
てください。簡単にするため、東京大阪間の
新幹線です。	
  
– 担当:自由席(13,620円)+手当(2000円)	
  
– 主任:指定席(14,450円)+手当(3000円)	
  
– 部長:グリーン席(18,690円)+手当(5000円)	
  
演習	
  
コンポジットパターン(動機)	
  
テキスト	
xxxxxxxx
xxxxxxxx
コンポジットパターン(概要)	
  
結果	
  
•  クライアントは、個々のオブジェクトを同じように扱うことができる	
  
•  複雑なオブジェクトを比較的簡単に構成しやすくなる	
特徴	
  
!  部分-­‐全体階層を表現するために、オブジェクトを木構造に組み
立てる	
  
!  個々のオブジェクトとオブジェクトを合成したものを一様に扱う	
  
コンポジットパターン(構造)	
  
コンポジットパターン(構成要素)	
  
•  Component	
– 全てのクラスに共通のインタフェースを宣言する	
  
– 子にあたるComponentを管理するためのインターフェース
を宣言する	
  
•  Leaf	
– 末端のオブジェクトを表す	
  
•  Composite	
– 子オブジェクトの入れ物にあたるオブジェクトを表す	
  
– 子オブジェクトに関する操作を実装する	
  
•  Client	
– Componentクラスのインタフェースを介してオブジェクトを
操作する
コンポジットパターン(振る舞い)	
  
: Client
1 : Add(A : Leaf)
2 : Add(A : Leaf)
3 : Add(B : Composite)
4 : Operation()
A : Leaf
5 : Operation()
7 : Operation()
B : Composite
6 : Operation()
C : Composite
会社組織	
  
コード  組織単位	
  
class Unit	
attr_accessor :name, :contacts	
def initialize(name, contacts)	
@name, @contacts = name, contacts	
end	
def work	
puts `働きます!`	
end	
end	
unit.rb
コード  社員	
  
require_relative 'unit'	
class Shain < Unit	
def work	
puts name + " : 社員は働いています"	
end	
end	
shain.rb
コード  部⾨門	
  
require_relative 'unit'	
class Bumon < Unit	
attr_accessor :units	
def initialize(name, contacts)	
super	
@units = []	
end	
def add(unit)	
units << unit	
end	
bumon.rb
コード  部⾨門(続き)	
  
def work	
puts name + " : チームワークを発揮します。"	
end	
def work_all	
@units.each {|unit| unit.work}	
end	
def get_child	
return units[0]	
end	
end	
差し当たって、1つ返しておく!!
インスタンス例例	
  
株式会社○○ (東京都×××)	
  
	
   本社 (東京都×××)	
  
	
   	
   営業部 (東京都×××1階)	
  
	
   	
   	
   佐藤 太郎 (埼玉県○△△)	
  
	
   	
   	
   斎藤 次郎 (神奈川県△××)	
  
	
   	
   人事部 (東京都×××2階)	
  
	
   	
   	
   山田 三郎 (東京都×○△)	
  
	
   大阪支社 (大阪府△△△)	
  
	
   	
   営業部 (大阪府△△△	
  )	
  
	
   	
   	
   鈴木 四郎 (大阪府○×△)
会社組織  実⾏行行	
  
require_relative 'shain'	
require_relative 'bumon'	
shain = Shain.new("佐藤 太郎","埼玉県○△△")	
shain2 = Shain.new("斎藤 次郎","神奈川県△××")	
bumon = Bumon.new("営業部","東京都×××1階")	
bumon.add(shain)	
bumon.add(shain2)	
shain.work()	
bumon.work()	
bumon.get_child().work()	
bumon.work_all()	
shacho.rb
get_child()はひとつしか返していません。	
  
複数返せるようにコードを改良してください。	
  
演習1	
  
インスタンス例と同じデータを入れて、表示し
てください	
演習2	
  
演習2  表⽰示	
  
ruby	
  shacho2.rb	
  
株式会社○○	
  :	
  チームワークを発揮します。	
  
本社 :	
  チームワークを発揮します。	
  
営業部 :	
  チームワークを発揮します。	
  
佐藤 太郎 :	
  社員は働いています	
  
斎藤 次郎 :	
  社員は働いています	
  
人事部 :	
  チームワークを発揮します。	
  
山田 三郎 :	
  社員は働いています	
  
大阪支社 :	
  チームワークを発揮します。	
  
営業部 :	
  チームワークを発揮します。	
  
鈴木 四郎 :	
  社員は働いています
演習2  shocho2.rb	
  
require_relative 'shain'	
require_relative 'bumon'	
company = Bumon.new("株式会社○○","東京都×××")	
honsha = Bumon.new("本社","東京都×××")	
eigyoubu = Bumon.new("営業部","東京都×××1階")	
shain = Shain.new("佐藤 太郎","埼玉県○△△")	
shain2 = Shain.new("斎藤 次郎","神奈川県△××")	
jinjibu = Bumon.new("人事部","東京都×××2階")	
shain3 = Shain.new("山田 三郎","東京都×○△")	
shisha = Bumon.new("大阪支社","大阪府△△△")	
eigyoubu2 = Bumon.new("営業部","大阪府△△△")	
shain4 = Shain.new("鈴木 四郎","大阪府○×△")
演習2  shocho2.rb	
  続き	
  
company.add(honsha)	
honsha.add(eigyoubu)	
eigyoubu.add(shain)	
eigyoubu.add(shain2)	
honsha.add(jinjibu)	
jinjibu.add(shain3)	
company.add(shisha)	
shisha.add(eigyoubu2)	
eigyoubu2.add(shain4)	
company.work()

More Related Content

What's hot

NoOpsへの挑戦
NoOpsへの挑戦 NoOpsへの挑戦
NoOpsへの挑戦 Hiromasa Oka
 
①Bmg×ピクト図解 20140211 公開用
①Bmg×ピクト図解 20140211 公開用①Bmg×ピクト図解 20140211 公開用
①Bmg×ピクト図解 20140211 公開用Hidehiko Akasaka
 
20160531 bp studyデザイン思考とマインドマップ_v001
20160531 bp studyデザイン思考とマインドマップ_v00120160531 bp studyデザイン思考とマインドマップ_v001
20160531 bp studyデザイン思考とマインドマップ_v001Hidehiko Akasaka
 
20150212 ピクト図解入門(リクルートジョブズ様 IT朝大学)
20150212 ピクト図解入門(リクルートジョブズ様 IT朝大学)20150212 ピクト図解入門(リクルートジョブズ様 IT朝大学)
20150212 ピクト図解入門(リクルートジョブズ様 IT朝大学)Hidehiko Akasaka
 
SES2020 IoTアーキテクチャ・デザインパターン
SES2020 IoTアーキテクチャ・デザインパターンSES2020 IoTアーキテクチャ・デザインパターン
SES2020 IoTアーキテクチャ・デザインパターンHironori Washizaki
 
概念モデリング再入門 + DDD
概念モデリング再入門 + DDD概念モデリング再入門 + DDD
概念モデリング再入門 + DDDHiroshima JUG
 
20150219 ピクト図解入門 3_w1h編
20150219 ピクト図解入門 3_w1h編20150219 ピクト図解入門 3_w1h編
20150219 ピクト図解入門 3_w1h編Hidehiko Akasaka
 
Bp study bmg_ピクト図解_20140226_v2_公開用
Bp study bmg_ピクト図解_20140226_v2_公開用Bp study bmg_ピクト図解_20140226_v2_公開用
Bp study bmg_ピクト図解_20140226_v2_公開用Hidehiko Akasaka
 
スマートデバイスを活かしたビジネスを成功させるポイント
スマートデバイスを活かしたビジネスを成功させるポイントスマートデバイスを活かしたビジネスを成功させるポイント
スマートデバイスを活かしたビジネスを成功させるポイントRyohei Sogo
 
BMGWorks主催 Value Proposition Canvas ワークショップ(2015/01/28)
BMGWorks主催 Value Proposition Canvas ワークショップ(2015/01/28)BMGWorks主催 Value Proposition Canvas ワークショップ(2015/01/28)
BMGWorks主催 Value Proposition Canvas ワークショップ(2015/01/28)Hidehiko Akasaka
 
事業成長にコミットするエンジニア組織への道のり
事業成長にコミットするエンジニア組織への道のり事業成長にコミットするエンジニア組織への道のり
事業成長にコミットするエンジニア組織への道のりRecruit Lifestyle Co., Ltd.
 
開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~
開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~
開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~KojiKono1
 
サービスデザイン思考×ピクト図解 V1.1
サービスデザイン思考×ピクト図解 V1.1 サービスデザイン思考×ピクト図解 V1.1
サービスデザイン思考×ピクト図解 V1.1 Hidehiko Akasaka
 
AI Utilization Seminar 20190709
AI Utilization Seminar 20190709AI Utilization Seminar 20190709
AI Utilization Seminar 20190709陽平 山口
 
東北大学AIE - 機械学習入門編
東北大学AIE - 機械学習入門編東北大学AIE - 機械学習入門編
東北大学AIE - 機械学習入門編Daiyu Hatakeyama
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けてHironori Washizaki
 
スマートデバイスSIの落とし穴と適した開発手法とは?
スマートデバイスSIの落とし穴と適した開発手法とは?スマートデバイスSIの落とし穴と適した開発手法とは?
スマートデバイスSIの落とし穴と適した開発手法とは?Takuya Kitamura
 
LEANSTARTUPアンチパターン #devlove #leanstartup
LEANSTARTUPアンチパターン #devlove #leanstartupLEANSTARTUPアンチパターン #devlove #leanstartup
LEANSTARTUPアンチパターン #devlove #leanstartupItsuki Kuroda
 

What's hot (20)

NoOpsへの挑戦
NoOpsへの挑戦 NoOpsへの挑戦
NoOpsへの挑戦
 
①Bmg×ピクト図解 20140211 公開用
①Bmg×ピクト図解 20140211 公開用①Bmg×ピクト図解 20140211 公開用
①Bmg×ピクト図解 20140211 公開用
 
20160531 bp studyデザイン思考とマインドマップ_v001
20160531 bp studyデザイン思考とマインドマップ_v00120160531 bp studyデザイン思考とマインドマップ_v001
20160531 bp studyデザイン思考とマインドマップ_v001
 
20150212 ピクト図解入門(リクルートジョブズ様 IT朝大学)
20150212 ピクト図解入門(リクルートジョブズ様 IT朝大学)20150212 ピクト図解入門(リクルートジョブズ様 IT朝大学)
20150212 ピクト図解入門(リクルートジョブズ様 IT朝大学)
 
SES2020 IoTアーキテクチャ・デザインパターン
SES2020 IoTアーキテクチャ・デザインパターンSES2020 IoTアーキテクチャ・デザインパターン
SES2020 IoTアーキテクチャ・デザインパターン
 
概念モデリング再入門 + DDD
概念モデリング再入門 + DDD概念モデリング再入門 + DDD
概念モデリング再入門 + DDD
 
20150219 ピクト図解入門 3_w1h編
20150219 ピクト図解入門 3_w1h編20150219 ピクト図解入門 3_w1h編
20150219 ピクト図解入門 3_w1h編
 
Bp study bmg_ピクト図解_20140226_v2_公開用
Bp study bmg_ピクト図解_20140226_v2_公開用Bp study bmg_ピクト図解_20140226_v2_公開用
Bp study bmg_ピクト図解_20140226_v2_公開用
 
スマートデバイスを活かしたビジネスを成功させるポイント
スマートデバイスを活かしたビジネスを成功させるポイントスマートデバイスを活かしたビジネスを成功させるポイント
スマートデバイスを活かしたビジネスを成功させるポイント
 
SIAI2020
SIAI2020SIAI2020
SIAI2020
 
BMGWorks主催 Value Proposition Canvas ワークショップ(2015/01/28)
BMGWorks主催 Value Proposition Canvas ワークショップ(2015/01/28)BMGWorks主催 Value Proposition Canvas ワークショップ(2015/01/28)
BMGWorks主催 Value Proposition Canvas ワークショップ(2015/01/28)
 
事業成長にコミットするエンジニア組織への道のり
事業成長にコミットするエンジニア組織への道のり事業成長にコミットするエンジニア組織への道のり
事業成長にコミットするエンジニア組織への道のり
 
開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~
開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~
開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~
 
サービスデザイン思考×ピクト図解 V1.1
サービスデザイン思考×ピクト図解 V1.1 サービスデザイン思考×ピクト図解 V1.1
サービスデザイン思考×ピクト図解 V1.1
 
AI Utilization Seminar 20190709
AI Utilization Seminar 20190709AI Utilization Seminar 20190709
AI Utilization Seminar 20190709
 
東北大学AIE - 機械学習入門編
東北大学AIE - 機械学習入門編東北大学AIE - 機械学習入門編
東北大学AIE - 機械学習入門編
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
 
ML@Loft 20200430
ML@Loft 20200430ML@Loft 20200430
ML@Loft 20200430
 
スマートデバイスSIの落とし穴と適した開発手法とは?
スマートデバイスSIの落とし穴と適した開発手法とは?スマートデバイスSIの落とし穴と適した開発手法とは?
スマートデバイスSIの落とし穴と適した開発手法とは?
 
LEANSTARTUPアンチパターン #devlove #leanstartup
LEANSTARTUPアンチパターン #devlove #leanstartupLEANSTARTUPアンチパターン #devlove #leanstartup
LEANSTARTUPアンチパターン #devlove #leanstartup
 

Viewers also liked

エクストリームエンジニア4
エクストリームエンジニア4エクストリームエンジニア4
エクストリームエンジニア4T-arts
 
レジリエンスで高める組織づくり
レジリエンスで高める組織づくりレジリエンスで高める組織づくり
レジリエンスで高める組織づくりYou&I
 
エクストリームエンジニア5
エクストリームエンジニア5エクストリームエンジニア5
エクストリームエンジニア5T-arts
 
プロダクトマネジメント入門
プロダクトマネジメント入門プロダクトマネジメント入門
プロダクトマネジメント入門You&I
 
アジャタ法説明資料(公開用)
アジャタ法説明資料(公開用)アジャタ法説明資料(公開用)
アジャタ法説明資料(公開用)nishikawa_makoto7
 
現場に持ち帰るまでがAgile japan!
現場に持ち帰るまでがAgile japan!現場に持ち帰るまでがAgile japan!
現場に持ち帰るまでがAgile japan!nishikawa_makoto7
 
Pfpws w22 事例紹介_ペアマインドマップ
Pfpws w22 事例紹介_ペアマインドマップPfpws w22 事例紹介_ペアマインドマップ
Pfpws w22 事例紹介_ペアマインドマップnishikawa_makoto7
 

Viewers also liked (8)

しょうぎアプリ
しょうぎアプリしょうぎアプリ
しょうぎアプリ
 
エクストリームエンジニア4
エクストリームエンジニア4エクストリームエンジニア4
エクストリームエンジニア4
 
レジリエンスで高める組織づくり
レジリエンスで高める組織づくりレジリエンスで高める組織づくり
レジリエンスで高める組織づくり
 
エクストリームエンジニア5
エクストリームエンジニア5エクストリームエンジニア5
エクストリームエンジニア5
 
プロダクトマネジメント入門
プロダクトマネジメント入門プロダクトマネジメント入門
プロダクトマネジメント入門
 
アジャタ法説明資料(公開用)
アジャタ法説明資料(公開用)アジャタ法説明資料(公開用)
アジャタ法説明資料(公開用)
 
現場に持ち帰るまでがAgile japan!
現場に持ち帰るまでがAgile japan!現場に持ち帰るまでがAgile japan!
現場に持ち帰るまでがAgile japan!
 
Pfpws w22 事例紹介_ペアマインドマップ
Pfpws w22 事例紹介_ペアマインドマップPfpws w22 事例紹介_ペアマインドマップ
Pfpws w22 事例紹介_ペアマインドマップ
 

Similar to エクストリームエンジニア3

jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶShumpei Shiraishi
 
PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)nishikawa_makoto7
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」Shuji Morisaki
 
議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」nishikawa_makoto7
 
【文献紹介】Automatic community creation for abstractive spoken conversation summar...
【文献紹介】Automatic community creation for abstractive spoken conversation summar...【文献紹介】Automatic community creation for abstractive spoken conversation summar...
【文献紹介】Automatic community creation for abstractive spoken conversation summar...Takashi YAMAMURA
 
Eclipse xtext 紹介
Eclipse xtext 紹介Eclipse xtext 紹介
Eclipse xtext 紹介Akira Tanaka
 
Adversarial Multi-task Learning for Text Classification
Adversarial Multi-task Learning for Text ClassificationAdversarial Multi-task Learning for Text Classification
Adversarial Multi-task Learning for Text ClassificationMakoto Takenaka
 
Abstractive Text Summarization @Retrieva seminar
Abstractive Text Summarization @Retrieva seminarAbstractive Text Summarization @Retrieva seminar
Abstractive Text Summarization @Retrieva seminarKodaira Tomonori
 
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計アシアル株式会社
 
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】Tomoharu ASAMI
 
[DL輪読会]StyleNet: Generating Attractive Visual Captions with Styles
[DL輪読会]StyleNet: Generating Attractive Visual Captions with Styles[DL輪読会]StyleNet: Generating Attractive Visual Captions with Styles
[DL輪読会]StyleNet: Generating Attractive Visual Captions with StylesDeep Learning JP
 
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスeZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスericsagnes
 
提案に役に立つ情報 (teianlab 勉強会)
提案に役に立つ情報 (teianlab 勉強会)提案に役に立つ情報 (teianlab 勉強会)
提案に役に立つ情報 (teianlab 勉強会)MKT International Inc.
 
Infer.NETを使ってLDAを実装してみた
Infer.NETを使ってLDAを実装してみたInfer.NETを使ってLDAを実装してみた
Infer.NETを使ってLDAを実装してみた正志 坪坂
 
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ クラウド時代のモデリングを考える
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ  クラウド時代のモデリングを考えるオブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ  クラウド時代のモデリングを考える
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ クラウド時代のモデリングを考えるTomoharu ASAMI
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するTakahito Tejima
 

Similar to エクストリームエンジニア3 (20)

jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
 
PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
 
Modeling Workshop
Modeling WorkshopModeling Workshop
Modeling Workshop
 
議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」
 
【文献紹介】Automatic community creation for abstractive spoken conversation summar...
【文献紹介】Automatic community creation for abstractive spoken conversation summar...【文献紹介】Automatic community creation for abstractive spoken conversation summar...
【文献紹介】Automatic community creation for abstractive spoken conversation summar...
 
Eclipse xtext 紹介
Eclipse xtext 紹介Eclipse xtext 紹介
Eclipse xtext 紹介
 
Adversarial Multi-task Learning for Text Classification
Adversarial Multi-task Learning for Text ClassificationAdversarial Multi-task Learning for Text Classification
Adversarial Multi-task Learning for Text Classification
 
Abstractive Text Summarization @Retrieva seminar
Abstractive Text Summarization @Retrieva seminarAbstractive Text Summarization @Retrieva seminar
Abstractive Text Summarization @Retrieva seminar
 
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
 
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
 
[DL輪読会]StyleNet: Generating Attractive Visual Captions with Styles
[DL輪読会]StyleNet: Generating Attractive Visual Captions with Styles[DL輪読会]StyleNet: Generating Attractive Visual Captions with Styles
[DL輪読会]StyleNet: Generating Attractive Visual Captions with Styles
 
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスeZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
 
提案に役に立つ情報 (teianlab 勉強会)
提案に役に立つ情報 (teianlab 勉強会)提案に役に立つ情報 (teianlab 勉強会)
提案に役に立つ情報 (teianlab 勉強会)
 
Infer.NETを使ってLDAを実装してみた
Infer.NETを使ってLDAを実装してみたInfer.NETを使ってLDAを実装してみた
Infer.NETを使ってLDAを実装してみた
 
Scrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pubScrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pub
 
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ クラウド時代のモデリングを考える
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ  クラウド時代のモデリングを考えるオブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ  クラウド時代のモデリングを考える
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ クラウド時代のモデリングを考える
 
読書会Vol6
読書会Vol6読書会Vol6
読書会Vol6
 
20120529 アジャイルサムライ読書会第6回
20120529 アジャイルサムライ読書会第6回20120529 アジャイルサムライ読書会第6回
20120529 アジャイルサムライ読書会第6回
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
 

エクストリームエンジニア3