先日行われたPHPカンファレンス福岡に行ってきたので、感想や気になったことなどをメモ。
率直な感想
PHPカンファレンス福岡。今日はずっとレガシーなシステムに関する話を聞いてる気がする。やっぱりレガシーとどう向き合うかが課題なんだよなぁ
項目 | 内容 |
---|---|
日時 | 2015年6月27日(土) |
URL | http://phpcon.fukuoka.jp/ |
会場 | 福岡市博多区博多駅前2-10-19 福岡ファッションセンタービル(FFB) 8階 |
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のすべてを、一気にお伝えします。
- setTestNowで”今日の日付”を設定できる
- 元ネタは、放射性炭素年代測定らしい
ホント便利そう
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氏〉
- OWASP Top 10 :近年のセキュリティ問題の傾向
- OWASP Zed Attack Proxy:脆弱性診断ツール
お前は今まで入力したフォームの値を覚えているのか 〈@k1LoW氏〉
- typd :Chromeの拡張。Formの入力値を簡単に再現できる
東京(西側)の勉強会事情 〈@akira1908jp氏〉
- 勉強会やったほうがいいよ
- 気張らなくてもなんとかなる的な
日本語文字ライブラリの紹介 〈@cloud10designs氏〉
- JSで日本語のNormalizeをするライブラリJaco
- PHP側と同一のAPI、設定を使えるようにしたい
- そうすることでバリデーションなどに統一感を持たせることが出来る
後で試したいことまとめ
- ユーザエージェントを判定する「Woothee」
- UI側から動作を確認できる「Behat」
- 便利なDateTime の拡張 「Carbon」
- 不用意にメールが飛ばないように「MailChatcher
- 脆弱性診断ツール「OWASP Zed Attack Proxy」