Hatena::ブログ(Diary)

くろまほうさいきょうでんせつ RSSフィード Twitter

2012/09/16 (日)

PHPカンファレンス2012メモ #phpcon2012

気になったところのみ。

f:id:calpo:20120916104211p:image

基調講演

マルチバイト(mb_*関連)がネイティブサポート

デフォルトの文字コードがUTF-8に → htmlspecialchars()注意
絵文字もネイティブサポートへ。

Composer

RubyでいうBundler的なライブラリ依存管理の仕組み。
Symphony2を始めとして多くのものが対応している。
(というかsymfony2はコンポーザーでインストール!)
「みんな対応している」重要

初心者セッション

php.netおすすめ
  • 関数マニュアル
    • そのページのPHPソースコードも見れる。時代を感じる懐かしいコード。
  • ユーザーコントリビューション
    • 英語だけどコードの投稿が多い、参考になる
  • チュートリアル

開発を支えるツール等
  • バージョン管理 svn git hg
  • テスト PHPUnit Selenium
  • タスク管理 track Redmine Candycane Backlog

いまだからできる、ふつうのはなし Gree

終盤5分くらい聞いた。
古いシステムの改善は、機能毎に区切って(縦に切って)少しずつリプレイスしていくのがいいと思ってたけど、どうもそうではなく、既存のシステムに新たに層を2つくらい積み重ねて(横に追加して)いくことで改善を行うような話だったらしい。
聞きたかった・・・

徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012

と・と・鳥ランド!
IPAやセキュリティ専門家をウォッチ、騒ぎ出したら急いで対応

脆弱性の意見度が高くても、対象範囲が狭いとそんなに騒がれない。
(対象範囲が狭い ← あるシステムがその脆弱性の影響を受けるかどうかも攻撃者からはわからない、というのも重要?)

IEしねばいいのに

jsonがHTMLとして解釈されて、その中のscriptタグが評価実行されてしまう。
X-Contenttype-nosniff

最先端Web開発

アジェンダ見たところ、自社開発フレームワーク(dietcake)の紹介かとおもいきや、プレゼン開始直後のスライドでそのアジェンダに取り消し線が入った!
とてもいい話でした。感動した。

PHPという言語自体のポリシーに通じる部分もあり、とても共感できました。

新しくjoinする人をどのように迎え、どのように育ててゆくか。

フレームワークはシンプルに保つ

Symphonyとか1,2で変わりすぎて学習はやり直し、Doctrineのコードなんか全部ちゃんと読める人などほとんどいない。
フレームワークのコードが現実的に読める内容であること。
「変わらない」ということの価値。

グループプログラミング

ドライバー1、ナビゲータ3 でのペアプロ
join.meというサービスでドライバーの画面をナビゲータの端末で共有
なんと生産性自体は一人の時とそんなに変わらないらしい(4倍近くになってる!?)

Githubでプロジェクトの健全性を測る

コミットの回数とタイミングが統計的に確認できる
→ 夜中土日のコミットが多いとデスマってるなーとなる

Git x Pull Request ~ チーム開発最終奥義

svnからgitへの移行

svnとgitコマンドの対応を覚えることではない、開発フローの刷新である!

gitのメリット

ローカルでの気軽なコミット、手軽なブランチング、賢くて高速なマージ

リリースを細かく

リニューアルとかの大きな案件でも「○○の構造変更」とかだけでリリース等
こうするとあとでマージが大変とかにならない

featureブランチから更にfeatureブランチを生やす

複数人での機能開発での混乱を少なく

PullRequestを通して必ずレビュー

これを繰り返してメンバーの長所短所など特徴を知ることができる
細かい単位で行うことで、レビューの効率がとても良くなる
どのような要求に対してどのような変更を行ったかが重要であり、そこに対して効果的なレビューが出来る

チームにあったやり方で

KLabさんとか、基本master一本でそこからいくつも細かい開発ブランチ生やすようなシンプルなやり方だし。

ツールはGitLabおすすめ

もしくはGithubEnterprise
githubのプライベートリポジトリもいいけど、それだと落ちてる時リリースできないよね。

と、聞いて思ったけど、composerによるライブラリインストールがビルドプロセスに入ってるとpackagistが死んでたらビルドできないじゃん、そういうのってどうしてるのかしら?

基本はGithub,Packagistだよりだけど、急ぎのリリースの場合はこれら無しでローカルのリソースからデプロイできる、って感じかなぁ。

Composer による依存管理と Packagist によるライブラリ公開

日本語化頑張り中だそう
https://github.com/kawahara/composer

フレームワークアップデート

Symfony2

twigいいなー
composerでインストール

Yii

よく知らなかったので期待していました。
海外ではだいぶ人気があるみたい。国内はFuelPHPに完全敗北状態。
なんとPHP5.1以上対応。
↑逆に心配になったけど、どうなんだろ?
Yii2からComposer対応だけどいつ出るのやら・・・らしい。