laravel開発カフェ〜rails3アプリ「かんばんりすと」の移植

34
Laravel 開発カフェ~ Rails3 プリ「かんばんりすと」の 移植 古川文生 @jumilla 2014.7.28

Upload: fumio-furukawa

Post on 25-May-2015

2.479 views

Category:

Engineering


0 download

DESCRIPTION

第80回PHP勉強会発表資料です。

TRANSCRIPT

Page 1: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

Laravel開発カフェ~Rails3アプリ「かんばんりすと」の

移植古川文生 @jumilla !

2014.7.28

Page 2: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

自己紹介

• プログラムを作ったOS

• MS-DOS、Windows、Linux、Mac、Android、iOS

!• プログラミング言語

• C、C++、Objective-C、Java(SE, Android)、VB、C#、Perl、PHP5、Python3 !

• フレームワーク • .NET、Android、CakePHP2、FuelPHP、Laravel4、Flask、Pyramid、Cocoa

古川文生(ふるかわふみお)@@jjuummiillllaa ((フミリア))

Page 3: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

活動株式会社ストレートスピリッツ

ソーシャルシステムコーディネーター

あったかマネー研究会

お金についてもっと知ろう

プログラミングコーチ

iOSプログラミング(プライベートコーチ)そして・・・

Page 4: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

PHPフレームワーク「Laravel」とは?

2011年に生まれたモダンなWebフレーム

ワーク

PHP5の機能を積極的に使っている

さまざまなWebフレームワークの機能の

いいとこ取り

ファサードが便利、APIのアクセスに迷

わない

Page 5: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

ファサード?  ふぁさーど?

Page 6: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

ファサードとはLaravel4 APIの入り口です。

PHPクラスです。グローバル名前空間にエイリアスされています。

コントローラー内でもビュー内でも同じコードでアクセスできます。

$input = Input::all();!Redirect::to($url);

どこでもこう書ける

Page 7: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

Laravelロビー活動

2014年5月「OSC2014 沖縄」に登壇

2014年6月~7月「Laravel開発カフェ」3回開催

2014年7月4日「Laravel Meetup Tokyo Vol.4」主催

古川の活動を振り返る

福岡・北海道・大阪でもララベルの声が!!

Page 8: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

Laravel開発カフェ

Page 9: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

Laravel開発カフェって?!

1日フルタイム

ペアプログラミング

オープンソースで公開

コンセプトはね

Page 10: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

何を作るか?かんばん風タスク管理アプリ「かんばんりすと」

http://kanban-list.heroku.com/

Page 11: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

かんばんりすと

Rails3/bootstrap2ベース

1ユーザー1かんばんのシンプルな作り

DnD操作主体の直感的なUI(ほぼJavaScript)

データベースは3テーブルしかない

分析したよ

Page 12: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

みんなでやれば  1日で終わるだろう

Page 13: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

とりあえずやってみよう♪

Page 14: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植
Page 15: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

問題点が次々と噴出!

Page 16: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

1. 開発OSがみんな違う

Mac

Mac+Apache

Windows+Linux(リモート接続)

Windows+Linux(Vagrant+VirtualBox)

Ubuntu

Page 17: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

2. 開発ツールがみんな違う

Sublime Text+Source Tree

Php Storm

EmEditor+Git(コマンドライン)

Page 18: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

3. Webアプリの解析手法がなかった

アプリを触ってURLを見つける(←アドホック!)

MySQLの中身を共有するのに全フィールドをホ

ワイトボードに書き出す(←ローテク!)

Page 19: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

4. みんなRubyもRailsも知らないソースコード解析がつらい!

! 記号の意味がわからない(@とか@@とか)!

! 演算子が読めない(<=>ってなんだ!?)!

Viewの移植(erb→blade)がつらい!

! → erb2bladeコマンドの開発!

ORマッパーの書き換えがつらい

Page 20: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

中にはよかった面も

Page 21: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

1. Rails3とLaravel4は結構似ていた

Routing+MVC

フォルダ構成

app/config/controllers/models/views

パッケージ管理

composer

ORマッパー

メソッドチェーン

モデルとコレクション

リレーション

クエリースコープ

Page 22: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

!

2. Rails固有の機能もカバーできた

PHPポーティングあり

codesleeve/asset-pipelineパッケージ

まだ不具合あり(アプリ側で回避)

AAsssseettPPiippeelliinnee

Page 23: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

!

2. Rails固有の機能もカバーできた

認証

zazico/confideパッケージ(4.0 BETA)

デバイスによるビューの差し替え

jenssegers/agentパッケージ

Viewファサードのフック

ddeevviissee

Page 24: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

!

3. ツールが開発できた

Railsのテキストテンプレート erb を Laravel4のHTML

テンプレート bladeに変換するツール

正規表現で置換しただけ

artisanコマンドとして実装

https://github.com/jumilla/laravel-erb2blade

eerrbb22bbllaaddee

Page 25: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

ひととおり動いた(^^)/

hhttttpp::////kkaannbbaannlliisstt--ddeevv..ssttrraaiigghhtt--ssppiirriittss..ccoommでデモ運用中!

Page 26: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

参加者の声

相談できる人がいるのはうれしかった

VVaaggrraanntt教えてもらえた

熱かった/暑かった

仕事モードになってしまった

またやりますよね?

※一部抜粋

Page 27: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

ソースコード公開中GitHub

http://github.com/jumilla/kanbanlist

Travis/Coveralls設定済み

Laravel4アプリのリファレンス実装として活用してください

デモ

http://kanbanlist-dev.straight-spirits.com

developブランチから自動デプロイ

Page 28: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

まとめ!

対象アプリの分析情報、分析手法が足りなかった

!

参加意識・仲間意識が高まる

一人で悩むより相談した方が解決がはやい

かなり神経使う

!

5時間語り明かす

xx 情報不足

◎ ペアプロOOKK!

◎ 飲み会大盛り上がり

Page 29: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

イベントメトリクス

開催回数   3回

  総時間   24時間

総参加人数  のべ15人

総ペア数    5組

!

!おつかれさまでした!

Page 30: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

そして・・・

Page 31: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

Laravel Tokyo

http://laravel.tokyo

2014/8/1 start

Page 32: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

これからのLaravel活動Laravel Tokyo ユーザーグループ オフラインイベント/書籍執筆などの活動

他フレームワークのユーザーグループとの交流もしていきたい

http://laravel.tokyo

Laravel東京スクール (シーズン1) 開催 平日夜 月イチ×6回(第1回は8/7木)

五反田 VACANCY OFFICE

http://laravelers.doorkeeper.jp/events/13216

Page 33: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

2014年はLaravelが  Cool(来る)

Page 34: Laravel開発カフェ〜Rails3アプリ「かんばんりすと」の移植

ご清聴ありがとうございました

質問・問い合わせなどは [email protected] まで