SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión
ビッグウェーブ到来!?
- 関数プログラミング導入の要点 -
粕谷大輔 (@daiksy)
PHPカンファレンス関西2015
2015-05-30
https://www.flickr.com/photos/48337143@N00/2664619137
粕谷 大輔
id:daiksy / @daiksy
株式会社 はてな
PHP歴
- 以前勤めていた会社で
社内SNSを導入
- Open PNE
以下のキーワードを学ぶ
- 副作用のないプログラム
- 参照透過性
今日のお話
☓ 関数型言語
⃝ 関数プログラミング
関数型言語
関数が第一級の対象である言語
Haskell
OCaml
LISP
関数プログラミング
いくつかの成約を守れば、
関数型言語以外でも可能。
関数型言語を学べば、
その知見を
フィードバックできる
でも
関数プログラミングって
難しそう。。。
(ラムダ?? モナド?? 圏論??)
確かに奥が深い
でもそれは
関数プログラミングに
限らないのでは?
今や誰もが知ってる
オブジェクト指向プログラミング
『オブジェクト指向入門』
2冊で約1700ページ
この本を全部読まないと
オブジェクト指向の入門は
完了しない?
そんなことはなさそう
関数プログラミングは
身近に実用的に使われるように
なってきた
感覚として、LLを習得してる人
は関数型言語に取っ付きやすい
という印象
今日はその
入り口を学ぶためのお話
- 副作用のないプログラム
- 参照透過性
副作用とは
ある機能がコンピュータの(論理的な)状態を変
化させ、それ以降で得られる結果に影響を与
えること
(wikipedia [副作用(プログラム)])
代表的な副作用
- 変数を変更する
- オブジェクトのフィールドを
設定する
- データ構造を直接変更する
バグの原因の大半は副作用
- 変数に意図しない値が入って
いた
- オブジェクトが意図しない状
態になっていた
- DBに意図しない値が…
副作用のないプログラム
副作用の影響範囲を局所化する
副作用の無い関数は常に意図ど
おりの結果が帰ってくる
副作用のないプログラムとは?
-> 参照透過性が保たれている
参照透過性とは??
難しい説明をすると
“式が参照透過であるということ
は、式をその結果に置き換えるこ
とができる”
例) 参照透過である場合
scala) val x = “Hello, World”
x: String = Hello, World
scala) val r1 = x.reverse
r1: String = dlroW ,olleH
scala) val r2 = x.reverse
r2: String = dlroW ,olleH
r1とr2の結果は同じ
コードは‘Functional Programming in scala’ より引用
例) 参照透過である場合
scala) val r2 = x.reverse
r2: String = dlroW ,olleH
scala) val r1 = “Hello, World”.reverse
r1:String = dlroW ,olleH
scala) val r2 = “Hello, World”.reverse
r2:String = dlroW ,olleH
変数xを、その式の結果である”Hello, World” と置き換えても
r1とr2の結果は同じ
-> 変数xは参照透過である
例) 参照透過でない場合
scala) val x = new StringBuilder(“Hello”)
x: StringBuilder = Hello
scala) val y = x.append(“, World”)
x: StringBuilder = Hello, World
scala) val r1 = y.toString
r1: String = Hello, World
scala) val r2 = y.toString
r2: String = Hello, World
r1 と r2の結果はここまでは同じ
例) 参照透過でない場合
scala) val x = new StringBuilder(“Hello”)
x: StringBuilder = Hello
scala) val y = x.append(“, World”)
x: StringBuilder = Hello, World
最初の例と同様に、y を x.append(“, World”) に置き換えてみよう
例) 参照透過でない場合
scala) val x = new StringBuilder(“Hello”)
x: StringBuilder = Hello
scala) val y = x.append(“, World”)
x: StringBuilder = Hello, World
scala) val r1 = x.append(“, World”).toString
r1: String = Hello, World
例) 参照透過でない場合
scala) val x = new StringBuilder(“Hello”)
x: StringBuilder = Hello
scala) val y = x.append(“, World”)
x: StringBuilder = Hello, World
scala) val r1 = x.append(“, World”).toString
r1: String = Hello, World
scala) val r2 = x.append(“, World”).toString
r2: String = Hello, World, World
変数を式に置き換えたことで結果が変わった -> 変数 y は参照透過でない
引数を10倍にして返す関数
-> 5を渡したら50
-> 6を渡したら60
参照透過である関数
参照透過である関数
• 何度呼び出しても常に同じ結果
• プログラマは内部の状態に気を配らずに気
軽にいつでも呼び出せる
引数をn倍にして返す関数
-> 5を渡したら5n
-> 6を渡したら6n
nの状態によって結果が変わる
参照透過でない関数
参照透過でない関数
• 呼び出すときの内部の状態によって結果が
変わる
• 関数を呼び出すときにプログラマが常に内
部の状態に気を配る必要がある
関数プログラミングとは
- 関数を組み合わせて計算を行
う
- 関数の結果が参照透過だから
安全にプログラムが書ける
副作用のないプログラミングとは
- 関数をできるだけ参照透過に
保つようにする
購入(商品ID, 個数, クレジットカード) {
- 商品テーブルをread
- 金額 <- 個数 単価
- 課金処理(金額, クレジットカード)
}
購入(商品ID, 個数, クレジットカード) {
- 商品テーブルをread
- 金額 <- 個数 単価
- 課金処理(金額, クレジットカード)
}
商品取得(商品ID){
- 商品テーブルをread
}
購入(商品, 個数) {
- 金額 <- 個数 単価
- 課金オブジェクト作成(金額)
}
課金処理(課金オブジェクト, クレジットカード)
まとめ (関数プログラミングの入口)
- 副作用を局所化することでバ
グの混入の余地を少なくする
- なるべく参照透過な関数を作っ
て計算することをこころがけ
よう
ご清聴
ありがとうございました

Más contenido relacionado

La actualidad más candente

プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏Yusuke Hirao
 
PHP初心者に贈る、まちがえないPHPの始め方・学び方
PHP初心者に贈る、まちがえないPHPの始め方・学び方PHP初心者に贈る、まちがえないPHPの始め方・学び方
PHP初心者に贈る、まちがえないPHPの始め方・学び方Hiroyuki Sugimoto
 
.NET Micro Framework で IoT
.NET Micro Framework で IoT.NET Micro Framework で IoT
.NET Micro Framework で IoTYoshitaka Seo
 
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについてDaisuke Tamada
 
爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話Shohei Tai
 
中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術Noriaki Kadota
 
FuelPHP × HHVM サービス開発事例
FuelPHP × HHVM サービス開発事例FuelPHP × HHVM サービス開発事例
FuelPHP × HHVM サービス開発事例Yuji Otani
 
IoT、貯めるだけではもったいない
IoT、貯めるだけではもったいないIoT、貯めるだけではもったいない
IoT、貯めるだけではもったいないYoshitaka Seo
 
ウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからHiroshi Kawada
 
最近誰かに「やったほうがいいよ」と伝えた7のこと
最近誰かに「やったほうがいいよ」と伝えた7のこと最近誰かに「やったほうがいいよ」と伝えた7のこと
最近誰かに「やったほうがいいよ」と伝えた7のことNoriaki Kadota
 
PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由Yuji Otani
 
Changing Infrastructure operation by DevOps And Agile Development
Changing Infrastructure operation by DevOps And Agile DevelopmentChanging Infrastructure operation by DevOps And Agile Development
Changing Infrastructure operation by DevOps And Agile DevelopmentTaiji Tsuchiya
 
Hack+FuelPHPによるWebサービス開発
Hack+FuelPHPによるWebサービス開発Hack+FuelPHPによるWebサービス開発
Hack+FuelPHPによるWebサービス開発Yuji Otani
 
ドメイン駆動設計と サーバサイドと私
ドメイン駆動設計と サーバサイドと私ドメイン駆動設計と サーバサイドと私
ドメイン駆動設計と サーバサイドと私Noriaki Kadota
 
NetOps Coding#1 のお知らせ
NetOps Coding#1 のお知らせNetOps Coding#1 のお知らせ
NetOps Coding#1 のお知らせTaiji Tsuchiya
 
NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )Yuji Otani
 
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイントPHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイントYoshio Hanawa
 
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)Masahiro Nishimi
 
kintone devCamp 2015 ultra fast improvement
kintone devCamp 2015  ultra fast improvementkintone devCamp 2015  ultra fast improvement
kintone devCamp 2015 ultra fast improvementTakahiro Kubo
 
ブラウザのPerformance APIの話
ブラウザのPerformance APIの話ブラウザのPerformance APIの話
ブラウザのPerformance APIの話Hiroshi Kawada
 

La actualidad más candente (20)

プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
 
PHP初心者に贈る、まちがえないPHPの始め方・学び方
PHP初心者に贈る、まちがえないPHPの始め方・学び方PHP初心者に贈る、まちがえないPHPの始め方・学び方
PHP初心者に贈る、まちがえないPHPの始め方・学び方
 
.NET Micro Framework で IoT
.NET Micro Framework で IoT.NET Micro Framework で IoT
.NET Micro Framework で IoT
 
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて
 
爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話
 
中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術
 
FuelPHP × HHVM サービス開発事例
FuelPHP × HHVM サービス開発事例FuelPHP × HHVM サービス開発事例
FuelPHP × HHVM サービス開発事例
 
IoT、貯めるだけではもったいない
IoT、貯めるだけではもったいないIoT、貯めるだけではもったいない
IoT、貯めるだけではもったいない
 
ウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれから
 
最近誰かに「やったほうがいいよ」と伝えた7のこと
最近誰かに「やったほうがいいよ」と伝えた7のこと最近誰かに「やったほうがいいよ」と伝えた7のこと
最近誰かに「やったほうがいいよ」と伝えた7のこと
 
PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由
 
Changing Infrastructure operation by DevOps And Agile Development
Changing Infrastructure operation by DevOps And Agile DevelopmentChanging Infrastructure operation by DevOps And Agile Development
Changing Infrastructure operation by DevOps And Agile Development
 
Hack+FuelPHPによるWebサービス開発
Hack+FuelPHPによるWebサービス開発Hack+FuelPHPによるWebサービス開発
Hack+FuelPHPによるWebサービス開発
 
ドメイン駆動設計と サーバサイドと私
ドメイン駆動設計と サーバサイドと私ドメイン駆動設計と サーバサイドと私
ドメイン駆動設計と サーバサイドと私
 
NetOps Coding#1 のお知らせ
NetOps Coding#1 のお知らせNetOps Coding#1 のお知らせ
NetOps Coding#1 のお知らせ
 
NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )
 
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイントPHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
 
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
 
kintone devCamp 2015 ultra fast improvement
kintone devCamp 2015  ultra fast improvementkintone devCamp 2015  ultra fast improvement
kintone devCamp 2015 ultra fast improvement
 
ブラウザのPerformance APIの話
ブラウザのPerformance APIの話ブラウザのPerformance APIの話
ブラウザのPerformance APIの話
 

Destacado

5分でわかる? 関数型 PHP の潮流
5分でわかる? 関数型 PHP の潮流5分でわかる? 関数型 PHP の潮流
5分でわかる? 関数型 PHP の潮流Yuya Takeyama
 
PHPerにもCoderDojoのメンターとしてお手伝いしてほしい
PHPerにもCoderDojoのメンターとしてお手伝いしてほしいPHPerにもCoderDojoのメンターとしてお手伝いしてほしい
PHPerにもCoderDojoのメンターとしてお手伝いしてほしいIppei Sumida
 
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
継続的Webセキュリティテスト PHPカンファレンス関西2015 LTichikaway
 
Wocker 秒速で WordPress 開発環境を構築する
Wocker 秒速で WordPress 開発環境を構築するWocker 秒速で WordPress 開発環境を構築する
Wocker 秒速で WordPress 開発環境を構築するKite Koga
 
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろうPHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろうYusuke Kawabata
 
PHP Codeception テスト -- 日本語
PHP Codeception テスト -- 日本語PHP Codeception テスト -- 日本語
PHP Codeception テスト -- 日本語Florent Batard
 
PHPにないセキュリティ機能
PHPにないセキュリティ機能PHPにないセキュリティ機能
PHPにないセキュリティ機能Yasuo Ohgaki
 
20150531 phpcon kansai
20150531 phpcon kansai20150531 phpcon kansai
20150531 phpcon kansaikumamidori
 
PHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろうPHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろうTaiji INOUE
 
PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530
PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530
PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530崇之 清水
 
医薬品化学の世界
医薬品化学の世界医薬品化学の世界
医薬品化学の世界Hiroki Sato
 
計算力増強講座 vol.1 「2乗の計算」
計算力増強講座 vol.1 「2乗の計算」計算力増強講座 vol.1 「2乗の計算」
計算力増強講座 vol.1 「2乗の計算」Courslide
 
医療ビッグデータ勉強会 第2回 国立病院機構における診療情報分析について
医療ビッグデータ勉強会 第2回 国立病院機構における診療情報分析について医療ビッグデータ勉強会 第2回 国立病院機構における診療情報分析について
医療ビッグデータ勉強会 第2回 国立病院機構における診療情報分析についてNaomi Kawashima
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成弘毅 露崎
 
DPCデータ(E/Fファイル)分析ツールの紹介
DPCデータ(E/Fファイル)分析ツールの紹介DPCデータ(E/Fファイル)分析ツールの紹介
DPCデータ(E/Fファイル)分析ツールの紹介Hiromasa Horiguchi
 
Behat Driven Development
Behat Driven DevelopmentBehat Driven Development
Behat Driven DevelopmentRyo Tomidokoro
 
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMSDrupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMSTomoki Hasegawa
 
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015ichikaway
 
PHPの今とこれから2015
PHPの今とこれから2015PHPの今とこれから2015
PHPの今とこれから2015Rui Hirokawa
 

Destacado (20)

5分でわかる? 関数型 PHP の潮流
5分でわかる? 関数型 PHP の潮流5分でわかる? 関数型 PHP の潮流
5分でわかる? 関数型 PHP の潮流
 
PHPerにもCoderDojoのメンターとしてお手伝いしてほしい
PHPerにもCoderDojoのメンターとしてお手伝いしてほしいPHPerにもCoderDojoのメンターとしてお手伝いしてほしい
PHPerにもCoderDojoのメンターとしてお手伝いしてほしい
 
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
 
Wocker 秒速で WordPress 開発環境を構築する
Wocker 秒速で WordPress 開発環境を構築するWocker 秒速で WordPress 開発環境を構築する
Wocker 秒速で WordPress 開発環境を構築する
 
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろうPHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
 
PHP Codeception テスト -- 日本語
PHP Codeception テスト -- 日本語PHP Codeception テスト -- 日本語
PHP Codeception テスト -- 日本語
 
PHPにないセキュリティ機能
PHPにないセキュリティ機能PHPにないセキュリティ機能
PHPにないセキュリティ機能
 
20150531 phpcon kansai
20150531 phpcon kansai20150531 phpcon kansai
20150531 phpcon kansai
 
PHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろうPHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろう
 
PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530
PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530
PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530
 
医薬品化学の世界
医薬品化学の世界医薬品化学の世界
医薬品化学の世界
 
計算力増強講座 vol.1 「2乗の計算」
計算力増強講座 vol.1 「2乗の計算」計算力増強講座 vol.1 「2乗の計算」
計算力増強講座 vol.1 「2乗の計算」
 
医療ビッグデータ勉強会 第2回 国立病院機構における診療情報分析について
医療ビッグデータ勉強会 第2回 国立病院機構における診療情報分析について医療ビッグデータ勉強会 第2回 国立病院機構における診療情報分析について
医療ビッグデータ勉強会 第2回 国立病院機構における診療情報分析について
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
 
Play勉強会 第3回
Play勉強会 第3回Play勉強会 第3回
Play勉強会 第3回
 
DPCデータ(E/Fファイル)分析ツールの紹介
DPCデータ(E/Fファイル)分析ツールの紹介DPCデータ(E/Fファイル)分析ツールの紹介
DPCデータ(E/Fファイル)分析ツールの紹介
 
Behat Driven Development
Behat Driven DevelopmentBehat Driven Development
Behat Driven Development
 
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMSDrupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
 
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
 
PHPの今とこれから2015
PHPの今とこれから2015PHPの今とこれから2015
PHPの今とこれから2015
 

Similar a PHPカンファレンス2015

PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」Preferred Networks
 
いまどき(これから)のPHP開発
いまどき(これから)のPHP開発いまどき(これから)のPHP開発
いまどき(これから)のPHP開発Kenjiro Kubota
 
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由Kohei Taniguchi
 
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)parrotstudio
 
【CodeCamp】PHP教科書サンプル
【CodeCamp】PHP教科書サンプル【CodeCamp】PHP教科書サンプル
【CodeCamp】PHP教科書サンプルcodecampJP
 
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~Fujio Kojima
 
Nom de fonction français
Nom de fonction françaisNom de fonction français
Nom de fonction françaishajikami
 
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業株式会社 オープンソース・ワークショップ
 
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業株式会社 オープンソース・ワークショップ
 
PHP-ML で手書き数字認識
PHP-ML で手書き数字認識PHP-ML で手書き数字認識
PHP-ML で手書き数字認識y-uti
 
iii_SGMI #5 "OOP & Design Patterns"
iii_SGMI #5 "OOP & Design Patterns"iii_SGMI #5 "OOP & Design Patterns"
iii_SGMI #5 "OOP & Design Patterns"Ryohei Suzuki
 
PHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special EditionPHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special EditionRui Hirokawa
 
PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告y-uti
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-pluginIkuko Kanada
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-pluginFumito Mizuno
 
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考えるPHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考えるTakuya Sato
 
ど素人向け エンジニア勉強会
ど素人向け エンジニア勉強会ど素人向け エンジニア勉強会
ど素人向け エンジニア勉強会YukiIwasaki2764
 
PHPerのためのpostgresqlチューニングmini
PHPerのためのpostgresqlチューニングminiPHPerのためのpostgresqlチューニングmini
PHPerのためのpostgresqlチューニングminiTakhisa Hirokawa
 

Similar a PHPカンファレンス2015 (20)

PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」
 
いまどき(これから)のPHP開発
いまどき(これから)のPHP開発いまどき(これから)のPHP開発
いまどき(これから)のPHP開発
 
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
 
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
 
【CodeCamp】PHP教科書サンプル
【CodeCamp】PHP教科書サンプル【CodeCamp】PHP教科書サンプル
【CodeCamp】PHP教科書サンプル
 
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
 
Nom de fonction français
Nom de fonction françaisNom de fonction français
Nom de fonction français
 
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
 
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
 
PHP-ML で手書き数字認識
PHP-ML で手書き数字認識PHP-ML で手書き数字認識
PHP-ML で手書き数字認識
 
YAPC::Asia2015
YAPC::Asia2015YAPC::Asia2015
YAPC::Asia2015
 
iii_SGMI #5 "OOP & Design Patterns"
iii_SGMI #5 "OOP & Design Patterns"iii_SGMI #5 "OOP & Design Patterns"
iii_SGMI #5 "OOP & Design Patterns"
 
PHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special EditionPHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special Edition
 
PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-plugin
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-plugin
 
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考えるPHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考える
 
ど素人向け エンジニア勉強会
ど素人向け エンジニア勉強会ど素人向け エンジニア勉強会
ど素人向け エンジニア勉強会
 
Tfug kansai vol1
Tfug kansai vol1Tfug kansai vol1
Tfug kansai vol1
 
PHPerのためのpostgresqlチューニングmini
PHPerのためのpostgresqlチューニングminiPHPerのためのpostgresqlチューニングmini
PHPerのためのpostgresqlチューニングmini
 

Más de Daisuke Kasuya

Overview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker TackleOverview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker TackleDaisuke Kasuya
 
中国地方Db勉強会
中国地方Db勉強会中国地方Db勉強会
中国地方Db勉強会Daisuke Kasuya
 
トイレに閉じ込められた心情をMackerelで可視化してみる
トイレに閉じ込められた心情をMackerelで可視化してみるトイレに閉じ込められた心情をMackerelで可視化してみる
トイレに閉じ込められた心情をMackerelで可視化してみるDaisuke Kasuya
 
システムをダイナミックに運用する from DevLove関西
システムをダイナミックに運用する from DevLove関西システムをダイナミックに運用する from DevLove関西
システムをダイナミックに運用する from DevLove関西Daisuke Kasuya
 
DevLOVE甲子園 西日本
DevLOVE甲子園 西日本DevLOVE甲子園 西日本
DevLOVE甲子園 西日本Daisuke Kasuya
 
Scala関西ビギナーズ
Scala関西ビギナーズScala関西ビギナーズ
Scala関西ビギナーズDaisuke Kasuya
 
RxTStudy- git gitにされた俺の屍を越えて行け -
RxTStudy- git gitにされた俺の屍を越えて行け -RxTStudy- git gitにされた俺の屍を越えて行け -
RxTStudy- git gitにされた俺の屍を越えて行け -Daisuke Kasuya
 
デブサミ関西 自分戦略 2013
デブサミ関西 自分戦略 2013デブサミ関西 自分戦略 2013
デブサミ関西 自分戦略 2013Daisuke Kasuya
 
Dev love関西 forslideshare
Dev love関西 forslideshareDev love関西 forslideshare
Dev love関西 forslideshareDaisuke Kasuya
 
git gitにされたオレの屍を超えていけ
git gitにされたオレの屍を超えていけgit gitにされたオレの屍を超えていけ
git gitにされたオレの屍を超えていけDaisuke Kasuya
 
鹿駆動勉強会ポスター2
鹿駆動勉強会ポスター2鹿駆動勉強会ポスター2
鹿駆動勉強会ポスター2Daisuke Kasuya
 
鹿駆動勉強会ポスター
鹿駆動勉強会ポスター鹿駆動勉強会ポスター
鹿駆動勉強会ポスターDaisuke Kasuya
 
勉強会初心者向け勉強会 Study4bg
勉強会初心者向け勉強会 Study4bg勉強会初心者向け勉強会 Study4bg
勉強会初心者向け勉強会 Study4bgDaisuke Kasuya
 

Más de Daisuke Kasuya (20)

Devlove mackerel
Devlove mackerelDevlove mackerel
Devlove mackerel
 
Overview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker TackleOverview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker Tackle
 
Api meetup LT
Api meetup LTApi meetup LT
Api meetup LT
 
中国地方Db勉強会
中国地方Db勉強会中国地方Db勉強会
中国地方Db勉強会
 
トイレに閉じ込められた心情をMackerelで可視化してみる
トイレに閉じ込められた心情をMackerelで可視化してみるトイレに閉じ込められた心情をMackerelで可視化してみる
トイレに閉じ込められた心情をMackerelで可視化してみる
 
システムをダイナミックに運用する from DevLove関西
システムをダイナミックに運用する from DevLove関西システムをダイナミックに運用する from DevLove関西
システムをダイナミックに運用する from DevLove関西
 
ScalaMatsuri 2014 LT
ScalaMatsuri 2014 LTScalaMatsuri 2014 LT
ScalaMatsuri 2014 LT
 
DevLOVE甲子園 西日本
DevLOVE甲子園 西日本DevLOVE甲子園 西日本
DevLOVE甲子園 西日本
 
Scala関西ビギナーズ
Scala関西ビギナーズScala関西ビギナーズ
Scala関西ビギナーズ
 
RxTStudy- git gitにされた俺の屍を越えて行け -
RxTStudy- git gitにされた俺の屍を越えて行け -RxTStudy- git gitにされた俺の屍を越えて行け -
RxTStudy- git gitにされた俺の屍を越えて行け -
 
こわくないScala
こわくないScalaこわくないScala
こわくないScala
 
デブサミ関西 自分戦略 2013
デブサミ関西 自分戦略 2013デブサミ関西 自分戦略 2013
デブサミ関西 自分戦略 2013
 
Scala conf2013
Scala conf2013 Scala conf2013
Scala conf2013
 
ペアプロ
ペアプロペアプロ
ペアプロ
 
Dev love関西 forslideshare
Dev love関西 forslideshareDev love関西 forslideshare
Dev love関西 forslideshare
 
git gitにされたオレの屍を超えていけ
git gitにされたオレの屍を超えていけgit gitにされたオレの屍を超えていけ
git gitにされたオレの屍を超えていけ
 
Techreaders3
Techreaders3Techreaders3
Techreaders3
 
鹿駆動勉強会ポスター2
鹿駆動勉強会ポスター2鹿駆動勉強会ポスター2
鹿駆動勉強会ポスター2
 
鹿駆動勉強会ポスター
鹿駆動勉強会ポスター鹿駆動勉強会ポスター
鹿駆動勉強会ポスター
 
勉強会初心者向け勉強会 Study4bg
勉強会初心者向け勉強会 Study4bg勉強会初心者向け勉強会 Study4bg
勉強会初心者向け勉強会 Study4bg
 

PHPカンファレンス2015