More Related Content
Similar to PHP版レガシーコード改善に役立つ新パターン #wewlc_jp (20)
More from Yahoo!デベロッパーネットワーク (20)
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
- 2. 自己紹介
佐藤 祐司
• 2010年新卒入社
• Webエンジニア
• PHP
@kuidaoring
- 9. サービス
サービス規模
• 58.3億PV / 月
• 1.4億UB / 月
出典:Yahoo! JAPAN 媒体資料 2014年6月改訂版 (PDF)
http://i.yimg.jp/images/marketing/portal/paper/media_sheet_open.pdf
- 36. 関数オーバーライド
• 名前空間を使って組み込み関数などを
上書き
• 実際には上書きしてない
• 元ネタ
PHPでネイティブ関数を含むコードのテスタビリティを上げる2つの方法
- 絶品ゆどうふのタレ
http://yudoufu.hatenablog.jp/entry/20110808/1312828535
• 名前空間が接合部になる
- 42. 名前空間
PHP5.3から導入
PHP: 名前空間 ‒ Manual
http://php.net/manual/ja/language.namespaces.php
他の言語のパッケージやモジュールに相当
- 84. exitの検討
どうするか
• returnの代わりに使ってませんか
• returnに変える
• exitする部分をラップ関数にする
• その後に関数オーバーライドを使う
- 88. テスト
• ビューとロジックが混ざっているので
ロジックのみの検証はおそらく不可能
• 条件によって変わるビューを検証する
• assertRegex, assertContains
• HTMLであればassertTagなど
- 92. 課題
• 関数内でグローバル変数を参照している
部分を引数に置き換えるように
リファクタリングする
• 地道に。。。
• 参考
テスト不能な PHP コードをリファクタリングするための戦略
http:/www.ibm.com/developerworks/jp/opensource/library/os-refactoringphp/