php-mruby のごしょうかい
by
KONDO Uchio
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
mruby のご紹介 〜PHPから使ってみるぞ!〜 2014-10-17 Fukuoka.php
Slide 2
Slide 2 text
誰?
Slide 3
Slide 3 text
近藤うちお 技術基盤チーム @ GMOペパボ ルビースト Fukuoka.rb 関係者 でもRubyより前に触ったのはPHPだよ! 出身はタモリがdisってる愛知です
Slide 4
Slide 4 text
[PR]著書です(共著)
Slide 5
Slide 5 text
めっちゃルビーストやん なんしにきとうと?
Slide 6
Slide 6 text
仕事 主に福岡でやってるサービスを見てます ・minne(Rails, しかしよく触るのはPuppet) ・ムームードメイン (PHP/モバイル向けなどがRails) ・ロリポップ!!!!!!レンタルサーバー (ほぼPHP)
Slide 7
Slide 7 text
PHP!!!
Slide 8
Slide 8 text
最近書いたPHP ! (のC拡張へのパッチ)のコード
Slide 9
Slide 9 text
Yes, I am PHPer!!1
Slide 10
Slide 10 text
本題
Slide 11
Slide 11 text
php-mruby
Slide 12
Slide 12 text
mruby?
Slide 13
Slide 13 text
mruby三行 組み込み向けのRubyの実装 ISO Ruby相当(だいたい1.8) luaっぽいことがRubyでできる、みたいな?
Slide 14
Slide 14 text
「組み込み」 物理的なデバイスと言う意味だけでなく、 Cベースの他のソフトウェアに組み込める
Slide 15
Slide 15 text
e.g. mod_mruby https://suzuri.jp/matsumotory/86257/mug/m/white
Slide 16
Slide 16 text
e.g. mitchellh/go-mruby cgoを使ってる
Slide 17
Slide 17 text
php-mruby chobi_e さんの 実装が代表的
Slide 18
Slide 18 text
(m)rubyを 他言語に組み込んで どうするの?
Slide 19
Slide 19 text
僕はこう思ったッス
Slide 20
Slide 20 text
例えば、 バラバラのコンポーネントの 設定/共通部分をmrubyで。 フロント Rails なんか分かんない 古いやつ CGI… 共通API Go 顧客管理 PHP+Zend
Slide 21
Slide 21 text
ほら、アレですよ マイクロサービス?ってやつ
Slide 22
Slide 22 text
SOA/microservices の ボトルネックの一つ 共通設定部分をどう管理する?
Slide 23
Slide 23 text
mrubyなら DSLでスマートに 設定・ロジック管理できそう
Slide 24
Slide 24 text
※ 個人の感想です LTということで、 あまり深入りしない…
Slide 25
Slide 25 text
動かしてみよう
Slide 26
Slide 26 text
おてもとで
Slide 27
Slide 27 text
やるぞ!
Slide 28
Slide 28 text
segmentation fault _人人人人人人人人人人人人人人人_ > <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
Slide 29
Slide 29 text
かなりカジュアルにセグる… @hoge みたいなインスタンス変数がダメぽ $hoge ならいける(サンプルもそう) PHPじゃないので、これはグローバル変数 あれ……???
Slide 30
Slide 30 text
いろいろやって Rubyの外部ファイルから DSLを読み込んで PHP内部で使うとこまできた
Slide 31
Slide 31 text
demo
Slide 32
Slide 32 text
No content
Slide 33
Slide 33 text
cf. 手前味噌ブログ ! ! ! ! ! Goでも「全く同じDSL」を解釈・利用可能 http://udzura.hatenablog.jp/entry/2014/09/18/163715
Slide 34
Slide 34 text
コツとか PHP.call_user_func がmrubyの側で 定義されてる。これをブリッジにできる。
Slide 35
Slide 35 text
! ! ! ! ここでも @prefix なんて利用できないぞ! 甘えるな!
Slide 36
Slide 36 text
所感
Slide 37
Slide 37 text
go-mruby がかなり良いので あんな感じのAPIがいい… mrubyをDSL的に使う上では最高な設計 ミシェルハシモト氏のコードめっちゃ奇麗 2012年から更新が無いし、 書き直してみたいかも…
Slide 38
Slide 38 text
ということで PHP拡張の書き方を学習中… _人人人人人人人人人人人人人人人人_ > ZEND_BEGIN_ARG_INFO_EX <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
Slide 39
Slide 39 text
あと PHP力が低すぎて 奇麗なコードにならないぞい…… さっきの、クラスすら無い……
Slide 40
Slide 40 text
まとめ
Slide 41
Slide 41 text
東京風まとめ ペパボ福岡支社では @udzura に厳しく PHPを教えてくれる人を募集しています
Slide 42
Slide 42 text
ご清聴 ありがとうございました! PHPは
Slide 43
Slide 43 text
Credits Font: やさしさゴシック http://www.fontna.com/blog/379/ Theme: Azusa http://memo.sanographix.net/post/82160791768 ! ! あと、テーマカラーのオレンジ色(とフォント)は @tatsuoSakuraiさんのスライドからいただきました…