PHPカンファレンス福岡 2015 に行ってきた

先日行われたPHPカンファレンス福岡に行ってきたので、感想や気になったことなどをメモ。

率直な感想

PHPカンファレンス福岡。今日はずっとレガシーなシステムに関する話を聞いてる気がする。やっぱりレガシーとどう向き合うかが課題なんだよなぁ

ref. https://twitter.com/atyks/status/614686488647696384

項目 内容
日時 2015年6月27日(土)
URL http://phpcon.fukuoka.jp/
会場 福岡市博多区博多駅前2-10-19 福岡ファッションセンタービル(FFB) 8階
Twitter https://twitter.com/phpcon_fukuoka
ハッシュタグ #phpconfuk

あなたと秘伝のタレ mid 2015〈@uzulla氏〉

秘伝のタレは基本的には「悪い物」として扱われており、その存在は否定され続けています。

我々は秘伝のタレについてどのように付き合い、どのように安全にタレを補充していくのか。あるいは秘伝のタレとどうやって決別していくべきか。

いくつかの秘伝のタレの具体例を交えつつ、あなたとタレの今後の付き合い方について、一緒に考えましょう。

秘伝ははじめから秘伝なのではなく、使いまわされる中で文脈が欠落していき、秘伝化する。そして文脈が欠落したまま継ぎ足されていき、別の使われ方をし始めたりする

外部ライブラリが腐っていないとは限らない。一番ひどいタレは実はフレームワークなのかもしれない

  • 自分側がタレになっていることも
  • 新しいものが良いとも限らない
  • そもそもPHPがタレなのでは?

大切なことは、流行っているものや、他の言語、言語に依らない知識を学ぶこと
普通に書く。アクロバティックではなく普通に書く

10年超えるサービスのphpバージョンを4から最新にする話〈@linyows氏〉

php4.3で、テストもない、サーバも物理で、冗長化もされてない、サーバもコード化されてない、デプロイはFTPという、10年越えサービスのphpバージョンアップを通して行った様々な改善で得た知見を話します。

サーバ切り替えは一気にやらず、ロードバランサーで新旧サーバを振り分ける
はじめは新環境の方へのトラフィックを少なくしておいて、徐々に切り替えていく

  • インフラ周りをVagrant、Chef、Capistranoに置き換えていき、開発環境のポータブル化を進めた
  • PEAR周りは新しいバージョンに置き換えることはせず、自力でアップデートしていった
  • 半年くらいかかった

phpspecで始めるBDD〈@ex_takezawa氏〉

phpspecの利用方法とビヘイビア駆動開発のポイントを解説します

BDD(Behavior Driven Development)
- Test First, Test Driven Developmentの流れ
- テストとリファクタリングを繰り返すCI

PHP Spec。オブジェクトの振る舞いを使用として自然言語で記述する

behatによるRESTFUL APIのテスト、及びbehat extensionの作り方〈@hanhan1978氏〉

Restful APIのテストを例に出しつつ、behat extensionの自作方法をレクチャーします。内容的には中級者向けですが、なるべく初心者でもステップを踏めば、自作可能なように努力します。PHPにおけるBDDの裾野が少しでも広がればと思います。

  • behatはcucumberのPHP版。テストを自動的にやってくれる
  • テスト(feature)とアサーション(step)は自分で作る
  • テストを作るための敷居が引くい(昼休みにでも試せるレベル)

当日の資料

オープンソースな帳票ツールを作りました〈@hidakatsuya氏〉

オープンソースな帳票(PDF)ツール Thinreports for PHP の紹介。
シンレポーツと呼びます。特徴としては、マルチプラットフォーム対応のデザイナで簡単にレイアウトが作れること、日本語表示ももちろん OK なこと。使い方や今後のロードマップなどを紹介します。

  • Rubyで作ったPDF帳票ツール Thinreports をPHPに移植した
  • Thinreportsは、ChromeエクステンションのeditorとPDFを生成するGeneratorで動作する
  • 今回移植したのはGenerater側
  • レポジトリはThinreports Generator for PHP

当日の資料

僕がエンジニアを辞めた理由〈栗林 氏〉

オフショアを利用した開発・運営の話。ベトナムオフショアを採用した経緯、今後ベトナムオフショアを使用していく理由

  • やることがいっぱいあって、開発以外のタスクが増えて来たのでオフショア
  • ベトナムは単価が安い、でもバグが多い
  • バグが多いのは要件定義がちゃんとできていないことも原因
  • 要件定義は大切(全体の7割くらい)

実はまだエンジニアやってます

PHPでHerokuを利用したWebサービスの作り方〈@hiro_y氏〉

conasu(https://conasu.co)などWebサービスをHerokuを利用して開発・運用するにあたってどのような部分に気をつけて開発しているか、ローカルの開発環境をどうしているかなどをお話しします。

Herokuの特徴
- Gitによるデプロイ
- Compserによる拡張のインストールが可能
- The Twelve Factorsという考えかた
- でも、東京リージョンがないのでレイテンシは低め
- 料金体系が変更になり、無料のプランだと24時間連続で立ちあげられなくなった

素晴らしき Carbon の世界 〜あなたも今日から日時マスター〜〈@omoon氏〉

一度使うとやめられない、DateTime の拡張 Carbon(http://carbon.nesbot.com)の素晴らしさを、愛を込めてお伝えします。

基本的な使い方、便利な使い方、テストでの使い方、ハマりどころ、等、Carbonのすべてを、一気にお伝えします。

ホント便利そう

当日の資料

CakePHPを業務で使ってみた(7年ほど)〈@k1LoW氏〉

会社として業務においてCakePHPという1PHPフレームワークとどのように向き合っているのか?どのように効率化を図っているのか?飽きないのか?もうLaravelでいいのではないのか?公開できるギリギリの範囲で紹介します。

  • 会社で1フレームワークのみを採用するのはメリットとデメリットがある
  • デメリットはCakePHPの考えかたの枠に囚われてしまうこと。「ほげ言語」のパラドックス。隣の芝生を青く感じていこう
  • メリットはフレームワークのレール(ベストプラクティス、ライブラリ、プラグイン、自動生成)を伸ばしやすい

「ほげ言語」のパラドックス
- 普通のやつらの上を行け ---Beating the Averages---
- あなたは本当に、他の言語を学ぶべきなのか?

インフラエンジニアからレガシーPHPへのレイヤーアップ〈@pyama86氏〉

ISPのサーバエンジニアから、WEB業界に転職し、10年もののPHPのWEBシステムの開発者となった際に、アグレッシブに改善し、そこで既存不具合を踏んだことや、サービスを良くしていったこと、安全にレガシーシステムを触っていくための方法論の話

レガシーは必ずしも悪ではない。リファクタリングはナウく書くのが目的ではない。
- 触る範囲を明確にする
- E2Eテストを使ってUIの挙動とDBの値を保証できれば大きく信頼性を高められる

とある事業の脱レガシー 〜技術的負債を取り戻すプロジェクトの物語〜 〈@tanakahisateru氏〉

もっともイケてないタイプの架空のPHPプロジェクトを例に取り、いまどきのWeb開発では一般的にどうしたらいいのかを、未経験者でも楽しくわかりやすい形でお伝えできたらと思います。これから始める人、うっかりイケてない始め方をしちゃった人に、経験者から、今のうちに知って欲しい、PHPプログラミングの周辺の基礎を。

ITは直接売上を上げるわけではないのでレガシーが残りやすい
- Gitは重要
- チケット管理は重要
- テスト環境をVagrantで構築
- テストサーバをAWSに。最終的に本番もAWS

最終的には人事、社風を変えていくことが大事

当日の資料

LT

2015年はOWASP Kyushuが熱男(アツオ)!〈@decoy_service氏〉

お前は今まで入力したフォームの値を覚えているのか 〈@k1LoW氏〉

  • typdChromeの拡張。Formの入力値を簡単に再現できる

東京(西側)の勉強会事情 〈@akira1908jp氏〉

  • 勉強会やったほうがいいよ
  • 気張らなくてもなんとかなる的な

日本語文字ライブラリの紹介 〈@cloud10designs氏〉

  • JSで日本語のNormalizeをするライブラリJaco
  • PHP側と同一のAPI、設定を使えるようにしたい
  • そうすることでバリデーションなどに統一感を持たせることが出来る

後で試したいことまとめ