PHPカンファレンス2016に行ってきた

当日に急遽予定が空いたため、PHPカンファレンスに参加してきました。
完全に時間を割くことはできず残念ながら「オープニング」と「ライトニングトーク」は聴講できず。。。

参加セッション

Composerプラグインを作ってみよう / 中野 拓さん

基本的にPHP開発はFuelPHPを利用していて、
プロジェクト開始時にcpmposerを起動する以外は特にメンテナンスをしていませんでした。
(最初に起動しておしまいパターンが多いです)

イメージとしてはJavaのMavenに近いのかなーという知識ぐらいしかなかったのでせっかくなのでセッションを聞いてみることにしました。

当日発表された資料は下記にて公開されています。

発表内で知らなかったこと。

composer.jsonに「scripts」を定義すると任意のコマンドやシェルスクリプトを実行することができる。
⇒ ただしシェルの場合はハードコーディングなのでコピペによる使い回しになる
⇒ だったらそれをプラグインにすればいい
つまり、
「Composerプラグイン」 = 「パッケージ化したscript」
とのこと。

あとは、「composerはライブラリの依存関係解決ツール」ということで、
今までプロジェクトが変わるたびに共通で使えそうなソースコードをコピペで利用していましたが、
composer.jsonで管理できるようにすれば、わざわざ過去のモジュールから引っ張り出さなくても、
設定ファイルのみで解決でるのは誰でも作業ができるという点でとても魅力を感じました。

開発時はなるべくパッケージにできるような構成を意識して車輪の再開発が防げるかなと。

RDBアンチパターン / 曽根 壮大さん

自分は一次受けによるフルスクラッチ開発が多いのでDB設計も当然最初から行うわけですが、
実際に利用するRDBMSの仕様をしっかりと理解して設計ができているかと問われると怪しい部分もあります。

裏の和田さんによる「PHP7 で堅牢なコードを書く」も興味がありましたが、
DB関連のスキルアップということでそーだいさん(@soudai1025)のセッションを受講しました。

当日発表された資料は下記にて公開されています。

実施のセッションの内容についてはスライドに細かく記載されているのでそちらを参照したほうがいいかと思います。
また、togetterにもまとめがあります。

結論から言うと、最高に熱いセッションでした。
スライドの枚数が多くかなり駆け足のセッションでしたが、60分で学んだことはほかにもたくさんありました。
聴講した中で特に刺さった部分を記載します。

曽根さんはセッションの中でDB設計の重要性を積み木に例えていました。
(最初に三角とか丸とかの形で作ってしまうと後が大変になるみたいなニュアンス)

これは実体験としてとても共感できて、
フルスクラッチ開発より既存システムのリプレイスの方がはるかに難易度が高かったことがあります。
特にDB定義周りに手を加えることができなかったため、必然的にアプリ側の実装もそれに引きずられる形で冗長で難解な処理になってしまうこともしばし。

積み木の土台部分の重要性を再確認できたいい経験です。

また、RDBの知識についてスキルアップという観点からもお話がありました。

スライドの冒頭でありました
「データベースの寿命はアプリケーションよりも長い」
はまさにその通りで、つまりはRDBの知識はアプリケーションのそれと比べて時間がたっても普遍的に使えるものが多いと。

セッション内では、例として女性の方で産休・育休を経て現場に戻った際に、
DB側の知識があればすぐに現場復帰することができる。
(アプリ側は技術革新のサイクルが早いため長期間離脱すると浦島太郎状態になることもしばしあるので)

これは女性に限らず全ての人にも共通であてはまる問題で、
たとえば転職などを考える際に、
「社内独自のFWを使ってアプリ開発を行ってました」
「○○のFWを利用した開発経験があります」
といった特定の技術に偏ってしまうと、それ以外の業務に入った時に応用が利かないケースもしばしあるかと思います。

それよりも、
「RDBなどのレイヤーから設計にかかわっていました」
「運用にてDBでこんな問題がでました。こんなチューニングしました」
の方がはるかに重宝される人材かと思います。

ORMによるアプリ開発の知識を「0 ⇒ 10」だとすると、DBの知識は「10 ⇒ 100」にするスキルであるとのこと。

ORMはDB処理をいい感じに隠蔽してくれるため、多少知識がなくても動くものは作れると思います。
ただし、DB関連で問題が起こるのは実際に運用が始まったあとがほとんどで、
その際に「10 ⇒ 100」にする力を出せるか出せないかでエンジニアの価値が変わってくると。

他にもたくさんありますが、
とりあえず持ち帰ってすぐにでも伝えたい事を忘れないうちに本記事にて記述しました。

安全なPHPアプリケーションの作り方 2016 / 徳丸浩さん

何度かPHPカンファレンスは参加していますが、
徳丸先生(@ockeghem)のセッションを聞くのは初めてだったので受講しました。

当日発表された資料は下記にて公開されています。

安全なPHPアプリケーションの作り方2016 from Hiroshi Tokumaru

最近の脆弱性の情報をデモを交えて解説していだだきました。

自分も案件でも運用・保守にて脆弱性対応としてミドルウェアのバージョンアップなどの対応を行っていますが、実際に悪用されるとこういうことになるという動きを見ることができたのが新鮮でした。

セッションの中心は脆弱性情報の解説でしたが、
スライドの最後の「安全なアプリケーションの作り方」にて、
「防御的プログラミングを実践する」それに付随する「単体テストを徹底する」という点の重要度を再確認できました。

基本的に単体テストフェーズにあまり工数を積めない現実がありますが、
自分のプロジェクトの場合は必ずUTを作成してカバレッジを出すようにしています。

方針としては、「提供する関数が期待通りの動作を保証する」という点を重視していました。
それにより後工程でのテストでは比較的バグの出現率が少なく一定の効果が出ていたと思います。

そこに防御的プログラミングの観点を強化することでさらにセキュリティという部分でも堅牢なシステムを初期段階から構築ができると思いました。

その他

RDBアンチパターンの裏でやっていた和田 卓人(@t_wada)さんのセッションがかなり評価が高かったそうです。
下記に資料も公開されています。

当日はサイン会も開催されており、
「SQLアンチパターン」は売り切れるほどの大盛況だったようです。
(自分は既に本持っているので持参してサインをもらおうとしましたが家にわすれるという大失態。。。)

また、レバテックさんのサイトですべてのスライドまとめがあるようです。
【速報!】PHPカンファレンス2016 講演スライドまとめ #phpcon2016

まとめ

各セッションともに短い時間ではありましたが、
そこでの学びは業務1年に匹敵するほどのものだと思います。

各分野で著名な方々のセッションが聞けるだけでも価値はありますが、
そこから持ち帰っていかに自分に吸収し、かつ周りにも伝えていくことがさらなるスキルアップにつながると思いました。

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る