PHPカンファレンス関西2015に行ってきました

僕の感想をざっくりまとめるとこんなところです。

『PHP7は5.6の倍速い』
『ドメイン駆動設計が大事』
『今日日、開発体制の話といえばスクラムの話』

それぞれのセッションをまとめてみます。

■基調講演 PHP7で変わること~言語仕様とエンジンの改善ポイント

・PHP7 は約10年ぶりのメジャーバージョンアップ
・4から5へのバージョンアップ知ってるのはおっさん
・PHP7 でも後方互換性は重視しているので移行コスト低い
・メソッドがないなどの致命的なエラーが新しい例外(EngineException)に
・isset() 地獄から抜け出させてくれる ?? 演算子
・PHP5.3 で非推奨になった ereg 関数などが“廃止”
・E_DEPRECATED を非表示にしてきた場合は大変
・PHP7 は PHP5.6 の倍速い(ちなみに、PHP5.0 から PHP5.6 で倍速くなってるらしい)
・PHP の配列は配列という名の連想配列だった
・PHP7 からは本物の配列になるため添字配列使った for 文が速くなる
・エクステンションやライブラリの互換性が無くなっているので注意が必要

スライド:http://www.slideshare.net/hnw/phpcon-kansai20150530

■PHPのフレームワークを俯瞰してみる

・CakePHP3 から DataMapper パターンを取り入れた
・Laravel5 ではフォルダ構造がガラッと変わった
・どのフレームワークも DI を志向してるらしい
・今一番人気は Laravel

■エンジニア1人の状態から複数人同時開発を実現するまでにやったこと

・以前は各職種1名ずつのツーカーチームだったがエンジニア/コーダーが増えてきた
・一般的な方法やツールの導入前にステークホルダーにヒアリング
・やり方はいろいろあるけど流行りだからで押し付けるとなかなか浸透しない
・独断で決めずステークホルダからヒアリングして合意を得る
・ステークホルダーの要望は「短いマイルストンで細かく軌道修正/定期的に成果報告」
・フレームワークをそのまま使わずカスタマイズ可能であることを意識づける
・でもなんだかんだで結局スクラム採用
・非エンジニアでも成果物管理したい←よくある課題、で Git / SourceTree ←これももはや定番
・開発フローに github-flow 採用、非常にシンプルだから git-flow は複雑すぎる
・非エンジニアには「運用」するために必要な知識だけ学んでもらう
・一回限りの「インストール」などはエンジニアがすればいい
・ふりかえりでは「トリプルニッケルス」を採用
・スクラム開発を導入したことで見える化が進んでモチベーションもアップ



■CakePHP3 - Large outer gulp

・CakePHP2 で開発してるとコントローラが肥大化しがちだけどそれは MVC 的に間違い
・本来はモデルに書かなければならない処理をコントローラに書いてしまう
・じゃあ正しくモデルに書こうとするけど CakePHP2 のモデルはもともと薄っぺらい
・そこに突っ込むからモデルがどんどん肥えてしまう
・それを解決するために DataMapper パターンを取り入れてカジュアルにドメイン駆動開発(DDD)



■DMMプラットフォームの失敗から学ぶスクラム開発体制

・DMM 誕生からずっと PHP で開発してきたから10年もののスパゲッティーに
・古い会員基盤から新しい会員基盤へリプレイスをスクラムで
・50人ものの規模のスクラム
・会議ばかりになるので会議参加を任意に
・開発チームをマネジメント/開発/リリースに細分化
・開発チームは最大8名まで
・1人しかいないプロジェクトリーダーがボトルネック
・それを解決するために複数のプロダクトオーナープロキシを設けた
・重要なのは Why の共有→インセプションデッキ、認識の共有→ドメインモデリング
・優先度の判断基準は誰が見ても同じになるよう設定し顧客との合意を得る
・ベロシティグラフから「生産性は上がらない」ことがわかった
・「スクラム屋になっていた」○○しなければならない病
・スクラムだと一定になりがちなリズムをあえて壊して危機感をもたせたい
・YWTM を採用、KPT がうまくいかなかった、特に T
・スプリントを一週間にしているのは早くフィードバックが欲しいから
・でもキツイ、ちょうど二週間に変更しようとしてたところ

スライド:https://prezi.com/ygzhzwdnofcd/dmmcom-dmm/?utm_source=twitter&utm_medium=landing_share

■Symfony - フレームワークの先へ

・Symfony は完成度が高い
・Laravel を支える Symfony
・PofEAA, SOLID原則
・ドメイン駆動設計(DDD)が大事
・設計大事だよね→様々な設計を許容するフレームワークを選ぶ、そうだよね Symfony だよね
・Symfony は祖結合だから Symfony ベースでフレームワーク作るのもあり
・一番人気のフレームワークにも Symfony コンポーネントが採用されている

かわのくんとは

Web系IT企業でプログラミングやマネジメントをしています。趣味で音楽を少々。

Youtubeでライブ動画配信中

Ustreamでライブ動画配信中

スマートフォン向けにPCサイトを自動変換(コンバート)する『CONV2SP』 CSS作成支援ツール『CSSツクール』