Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Daisuke Kasuya
8,112 views
PHPカンファレンス2015
PHPカンファレンス2015のセッションスライド
Engineering
◦
Read more
6
Save
Share
Embed
Embed presentation
Download
Downloaded 11 times
1
/ 42
2
/ 42
3
/ 42
4
/ 42
5
/ 42
6
/ 42
7
/ 42
8
/ 42
9
/ 42
10
/ 42
11
/ 42
12
/ 42
13
/ 42
14
/ 42
15
/ 42
16
/ 42
17
/ 42
18
/ 42
19
/ 42
20
/ 42
21
/ 42
22
/ 42
23
/ 42
24
/ 42
25
/ 42
26
/ 42
27
/ 42
28
/ 42
29
/ 42
30
/ 42
31
/ 42
32
/ 42
33
/ 42
34
/ 42
35
/ 42
36
/ 42
37
/ 42
38
/ 42
39
/ 42
40
/ 42
41
/ 42
42
/ 42
More Related Content
PDF
Yii Framework 2.0 いま求められるRAD標準とは #phpkansai
by
Hisateru Tanaka
PDF
エンジニア採用ヤバイ! PHPカンファレンス関西 懇親会LT
by
Tomoyuki Sugita
PDF
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
by
div Inc
PDF
初心者のためのWeb標準技術
by
Shogo Sensui
PPT
大規模Perl初心者研修を支える技術
by
Daisuke Tamada
PDF
非エンジニアカンファレンス資料の抜粋
by
div Inc
PPTX
Hack/HHVMの最新事情とメイン言語に採用した理由
by
Yuji Otani
PDF
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
by
Yusuke Hirao
Yii Framework 2.0 いま求められるRAD標準とは #phpkansai
by
Hisateru Tanaka
エンジニア採用ヤバイ! PHPカンファレンス関西 懇親会LT
by
Tomoyuki Sugita
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
by
div Inc
初心者のためのWeb標準技術
by
Shogo Sensui
大規模Perl初心者研修を支える技術
by
Daisuke Tamada
非エンジニアカンファレンス資料の抜粋
by
div Inc
Hack/HHVMの最新事情とメイン言語に採用した理由
by
Yuji Otani
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
by
Yusuke Hirao
What's hot
PDF
PHP初心者に贈る、まちがえないPHPの始め方・学び方
by
Hiroyuki Sugimoto
PDF
.NET Micro Framework で IoT
by
Yoshitaka Seo
PDF
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて
by
Daisuke Tamada
PPTX
爆速フレームワークでREST APIを作った話
by
Shohei Tai
PDF
中の下のエンジニアを脱出するための仕事術
by
Noriaki Kadota
PPTX
FuelPHP × HHVM サービス開発事例
by
Yuji Otani
PDF
IoT、貯めるだけではもったいない
by
Yoshitaka Seo
PDF
ウェブパフォーマンスの基礎とこれから
by
Hiroshi Kawada
PPTX
最近誰かに「やったほうがいいよ」と伝えた7のこと
by
Noriaki Kadota
PPTX
PHP7ではなくHack/HHVMを選ぶ理由
by
Yuji Otani
PDF
Changing Infrastructure operation by DevOps And Agile Development
by
Taiji Tsuchiya
PPTX
Hack+FuelPHPによるWebサービス開発
by
Yuji Otani
PPTX
ドメイン駆動設計と サーバサイドと私
by
Noriaki Kadota
PDF
NetOps Coding#1 のお知らせ
by
Taiji Tsuchiya
PPTX
NoSQL勉強会資料(2015/03/12@ヒカラボ )
by
Yuji Otani
PDF
PHP7で変わること ——言語仕様とエンジンの改善ポイント
by
Yoshio Hanawa
PDF
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
by
Masahiro Nishimi
PDF
kintone devCamp 2015 ultra fast improvement
by
Takahiro Kubo
PDF
ブラウザのPerformance APIの話
by
Hiroshi Kawada
PPTX
Redis勉強会資料(2015/06 update)
by
Yuji Otani
PHP初心者に贈る、まちがえないPHPの始め方・学び方
by
Hiroyuki Sugimoto
.NET Micro Framework で IoT
by
Yoshitaka Seo
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて
by
Daisuke Tamada
爆速フレームワークでREST APIを作った話
by
Shohei Tai
中の下のエンジニアを脱出するための仕事術
by
Noriaki Kadota
FuelPHP × HHVM サービス開発事例
by
Yuji Otani
IoT、貯めるだけではもったいない
by
Yoshitaka Seo
ウェブパフォーマンスの基礎とこれから
by
Hiroshi Kawada
最近誰かに「やったほうがいいよ」と伝えた7のこと
by
Noriaki Kadota
PHP7ではなくHack/HHVMを選ぶ理由
by
Yuji Otani
Changing Infrastructure operation by DevOps And Agile Development
by
Taiji Tsuchiya
Hack+FuelPHPによるWebサービス開発
by
Yuji Otani
ドメイン駆動設計と サーバサイドと私
by
Noriaki Kadota
NetOps Coding#1 のお知らせ
by
Taiji Tsuchiya
NoSQL勉強会資料(2015/03/12@ヒカラボ )
by
Yuji Otani
PHP7で変わること ——言語仕様とエンジンの改善ポイント
by
Yoshio Hanawa
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
by
Masahiro Nishimi
kintone devCamp 2015 ultra fast improvement
by
Takahiro Kubo
ブラウザのPerformance APIの話
by
Hiroshi Kawada
Redis勉強会資料(2015/06 update)
by
Yuji Otani
Viewers also liked
PDF
5分でわかる? 関数型 PHP の潮流
by
Yuya Takeyama
PPTX
PHPerにもCoderDojoのメンターとしてお手伝いしてほしい
by
Ippei Sumida
PDF
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
by
ichikaway
PDF
Wocker 秒速で WordPress 開発環境を構築する
by
Kite Koga
PPTX
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
by
Yusuke Kawabata
PDF
PHP Codeception テスト -- 日本語
by
Florent Batard
PDF
PHPにないセキュリティ機能
by
Yasuo Ohgaki
PDF
20150531 phpcon kansai
by
kumamidori
PPTX
PHP x AWS でスケーラブルなシステムをつくろう
by
Taiji INOUE
PDF
PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530
by
崇之 清水
PPTX
医薬品化学の世界
by
Hiroki Sato
PDF
計算力増強講座 vol.1 「2乗の計算」
by
Courslide
PDF
医療ビッグデータ勉強会 第2回 国立病院機構における診療情報分析について
by
Naomi Kawashima
PDF
RとSQLiteで気軽にデータベース作成
by
弘毅 露崎
KEY
Play勉強会 第3回
by
Daisuke Kasuya
PPTX
DPCデータ(E/Fファイル)分析ツールの紹介
by
Hiromasa Horiguchi
PPTX
Behat Driven Development
by
Ryo Tomidokoro
PDF
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
by
Tomoki Hasegawa
PDF
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
by
ichikaway
PDF
PHPの今とこれから2015
by
Rui Hirokawa
5分でわかる? 関数型 PHP の潮流
by
Yuya Takeyama
PHPerにもCoderDojoのメンターとしてお手伝いしてほしい
by
Ippei Sumida
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
by
ichikaway
Wocker 秒速で WordPress 開発環境を構築する
by
Kite Koga
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
by
Yusuke Kawabata
PHP Codeception テスト -- 日本語
by
Florent Batard
PHPにないセキュリティ機能
by
Yasuo Ohgaki
20150531 phpcon kansai
by
kumamidori
PHP x AWS でスケーラブルなシステムをつくろう
by
Taiji INOUE
PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530
by
崇之 清水
医薬品化学の世界
by
Hiroki Sato
計算力増強講座 vol.1 「2乗の計算」
by
Courslide
医療ビッグデータ勉強会 第2回 国立病院機構における診療情報分析について
by
Naomi Kawashima
RとSQLiteで気軽にデータベース作成
by
弘毅 露崎
Play勉強会 第3回
by
Daisuke Kasuya
DPCデータ(E/Fファイル)分析ツールの紹介
by
Hiromasa Horiguchi
Behat Driven Development
by
Ryo Tomidokoro
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
by
Tomoki Hasegawa
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
by
ichikaway
PHPの今とこれから2015
by
Rui Hirokawa
Similar to PHPカンファレンス2015
PDF
2014年の社内新人教育テキスト #1(プログラミング言語概論)
by
Shin-ya Koga
PDF
先端技術 関数型プログラミング
by
聡 中川
PDF
#NGK2012B Excelによる設計書について
by
Hiroki Mizuno
PDF
磯野ー!関数型言語やろうぜー!
by
Ra Zon
PDF
PHP 入門
by
Shuhei Iitsuka
PDF
関数プログラミング入門
by
Hideyuki Tanaka
PDF
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
by
parrotstudio
PPTX
函数プログラミングのエッセンスと考え方
by
啓 小笠原
PPTX
関数型 プログラミング LT
by
Oikawa Hiroyuki
PDF
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
by
Kohei Taniguchi
PPT
オブジェクト指向入門5
by
Kenta Hattori
PDF
PHP5.6からPHP7.0への移行
by
Yasuo Ohgaki
PDF
関数型プログラミング in javascript
by
Ryuma Tsukano
PDF
オブジェクト指向開発におけるObject-Functional Programming
by
Tomoharu ASAMI
PDF
BNN CAMP vol.3 インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2
by
Atsushi Tadokoro
PDF
Scalaで萌える関数型プログラミング[完全版]
by
Ra Zon
PDF
関数プログラミング入門
by
masatora atarashi
PPTX
オブジェクト指向型プログラミング
by
hirenjak M.
PDF
20150212 イタンジプログラミング講座テキスト第2回
by
Yusuke Yokozawa
PDF
Swiftによる関数型プログラミング超入門
by
Hisakuni Fujimoto
2014年の社内新人教育テキスト #1(プログラミング言語概論)
by
Shin-ya Koga
先端技術 関数型プログラミング
by
聡 中川
#NGK2012B Excelによる設計書について
by
Hiroki Mizuno
磯野ー!関数型言語やろうぜー!
by
Ra Zon
PHP 入門
by
Shuhei Iitsuka
関数プログラミング入門
by
Hideyuki Tanaka
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
by
parrotstudio
函数プログラミングのエッセンスと考え方
by
啓 小笠原
関数型 プログラミング LT
by
Oikawa Hiroyuki
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
by
Kohei Taniguchi
オブジェクト指向入門5
by
Kenta Hattori
PHP5.6からPHP7.0への移行
by
Yasuo Ohgaki
関数型プログラミング in javascript
by
Ryuma Tsukano
オブジェクト指向開発におけるObject-Functional Programming
by
Tomoharu ASAMI
BNN CAMP vol.3 インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2
by
Atsushi Tadokoro
Scalaで萌える関数型プログラミング[完全版]
by
Ra Zon
関数プログラミング入門
by
masatora atarashi
オブジェクト指向型プログラミング
by
hirenjak M.
20150212 イタンジプログラミング講座テキスト第2回
by
Yusuke Yokozawa
Swiftによる関数型プログラミング超入門
by
Hisakuni Fujimoto
More from Daisuke Kasuya
PDF
Devlove mackerel
by
Daisuke Kasuya
PDF
Overview of Scala ~ Hacker Tackle
by
Daisuke Kasuya
PDF
Api meetup LT
by
Daisuke Kasuya
PDF
中国地方Db勉強会
by
Daisuke Kasuya
PDF
トイレに閉じ込められた心情をMackerelで可視化してみる
by
Daisuke Kasuya
PDF
システムをダイナミックに運用する from DevLove関西
by
Daisuke Kasuya
PDF
ScalaMatsuri 2014 LT
by
Daisuke Kasuya
PDF
DevLOVE甲子園 西日本
by
Daisuke Kasuya
PDF
Scala関西ビギナーズ
by
Daisuke Kasuya
PDF
RxTStudy- git gitにされた俺の屍を越えて行け -
by
Daisuke Kasuya
PDF
こわくないScala
by
Daisuke Kasuya
PDF
デブサミ関西 自分戦略 2013
by
Daisuke Kasuya
PDF
Scala conf2013
by
Daisuke Kasuya
PDF
ペアプロ
by
Daisuke Kasuya
KEY
Dev love関西 forslideshare
by
Daisuke Kasuya
KEY
git gitにされたオレの屍を超えていけ
by
Daisuke Kasuya
KEY
Techreaders3
by
Daisuke Kasuya
KEY
鹿駆動勉強会ポスター2
by
Daisuke Kasuya
KEY
鹿駆動勉強会ポスター
by
Daisuke Kasuya
KEY
勉強会初心者向け勉強会 Study4bg
by
Daisuke Kasuya
Devlove mackerel
by
Daisuke Kasuya
Overview of Scala ~ Hacker Tackle
by
Daisuke Kasuya
Api meetup LT
by
Daisuke Kasuya
中国地方Db勉強会
by
Daisuke Kasuya
トイレに閉じ込められた心情をMackerelで可視化してみる
by
Daisuke Kasuya
システムをダイナミックに運用する from DevLove関西
by
Daisuke Kasuya
ScalaMatsuri 2014 LT
by
Daisuke Kasuya
DevLOVE甲子園 西日本
by
Daisuke Kasuya
Scala関西ビギナーズ
by
Daisuke Kasuya
RxTStudy- git gitにされた俺の屍を越えて行け -
by
Daisuke Kasuya
こわくないScala
by
Daisuke Kasuya
デブサミ関西 自分戦略 2013
by
Daisuke Kasuya
Scala conf2013
by
Daisuke Kasuya
ペアプロ
by
Daisuke Kasuya
Dev love関西 forslideshare
by
Daisuke Kasuya
git gitにされたオレの屍を超えていけ
by
Daisuke Kasuya
Techreaders3
by
Daisuke Kasuya
鹿駆動勉強会ポスター2
by
Daisuke Kasuya
鹿駆動勉強会ポスター
by
Daisuke Kasuya
勉強会初心者向け勉強会 Study4bg
by
Daisuke Kasuya
PHPカンファレンス2015
1.
ビッグウェーブ到来!? - 関数プログラミング導入の要点 - 粕谷大輔
(@daiksy) PHPカンファレンス関西2015 2015-05-30 https://www.flickr.com/photos/48337143@N00/2664619137
2.
粕谷 大輔 id:daiksy /
@daiksy 株式会社 はてな
4.
PHP歴 - 以前勤めていた会社で 社内SNSを導入 - Open
PNE
6.
以下のキーワードを学ぶ - 副作用のないプログラム - 参照透過性
7.
今日のお話 ☓ 関数型言語 ⃝ 関数プログラミング
8.
関数型言語 関数が第一級の対象である言語 Haskell OCaml LISP
9.
関数プログラミング いくつかの成約を守れば、 関数型言語以外でも可能。 関数型言語を学べば、 その知見を フィードバックできる
10.
でも 関数プログラミングって 難しそう。。。 (ラムダ?? モナド?? 圏論??)
11.
確かに奥が深い でもそれは 関数プログラミングに 限らないのでは?
12.
今や誰もが知ってる オブジェクト指向プログラミング
13.
『オブジェクト指向入門』 2冊で約1700ページ
14.
この本を全部読まないと オブジェクト指向の入門は 完了しない?
15.
そんなことはなさそう
16.
関数プログラミングは 身近に実用的に使われるように なってきた
17.
感覚として、LLを習得してる人 は関数型言語に取っ付きやすい という印象
18.
今日はその 入り口を学ぶためのお話
19.
- 副作用のないプログラム - 参照透過性
20.
副作用とは ある機能がコンピュータの(論理的な)状態を変 化させ、それ以降で得られる結果に影響を与 えること (wikipedia [副作用(プログラム)])
21.
代表的な副作用 - 変数を変更する - オブジェクトのフィールドを 設定する -
データ構造を直接変更する
22.
バグの原因の大半は副作用 - 変数に意図しない値が入って いた - オブジェクトが意図しない状 態になっていた -
DBに意図しない値が…
23.
副作用のないプログラム 副作用の影響範囲を局所化する 副作用の無い関数は常に意図ど おりの結果が帰ってくる
24.
副作用のないプログラムとは? -> 参照透過性が保たれている
25.
参照透過性とは??
26.
難しい説明をすると “式が参照透過であるということ は、式をその結果に置き換えるこ とができる”
27.
例) 参照透過である場合 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’ より引用
28.
例) 参照透過である場合 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は参照透過である
29.
例) 参照透過でない場合 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の結果はここまでは同じ
30.
例) 参照透過でない場合 scala) val
x = new StringBuilder(“Hello”) x: StringBuilder = Hello scala) val y = x.append(“, World”) x: StringBuilder = Hello, World 最初の例と同様に、y を x.append(“, World”) に置き換えてみよう
31.
例) 参照透過でない場合 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
32.
例) 参照透過でない場合 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 は参照透過でない
33.
引数を10倍にして返す関数 -> 5を渡したら50 -> 6を渡したら60 参照透過である関数
34.
参照透過である関数 • 何度呼び出しても常に同じ結果 • プログラマは内部の状態に気を配らずに気 軽にいつでも呼び出せる
35.
引数をn倍にして返す関数 -> 5を渡したら5n -> 6を渡したら6n nの状態によって結果が変わる 参照透過でない関数
36.
参照透過でない関数 • 呼び出すときの内部の状態によって結果が 変わる • 関数を呼び出すときにプログラマが常に内 部の状態に気を配る必要がある
37.
関数プログラミングとは - 関数を組み合わせて計算を行 う - 関数の結果が参照透過だから 安全にプログラムが書ける
38.
副作用のないプログラミングとは - 関数をできるだけ参照透過に 保つようにする
39.
購入(商品ID, 個数, クレジットカード)
{ - 商品テーブルをread - 金額 <- 個数 単価 - 課金処理(金額, クレジットカード) }
40.
購入(商品ID, 個数, クレジットカード)
{ - 商品テーブルをread - 金額 <- 個数 単価 - 課金処理(金額, クレジットカード) } 商品取得(商品ID){ - 商品テーブルをread } 購入(商品, 個数) { - 金額 <- 個数 単価 - 課金オブジェクト作成(金額) } 課金処理(課金オブジェクト, クレジットカード)
41.
まとめ (関数プログラミングの入口) - 副作用を局所化することでバ グの混入の余地を少なくする -
なるべく参照透過な関数を作っ て計算することをこころがけ よう
42.
ご清聴 ありがとうございました
Download