PHPカンファレンス福岡2017に参加した。

2017年6月10日(土)に開催された、PHPカンファレンス福岡に参加しました。昨年、PHPカンファレンス東京には参加したのですが、福岡は初参加でした。とても楽しく参加できたので、参加メモ(抜粋)を書きました。

ひとりLT大会@debility

まずはじめに、おお!プリンの人だと思った。ものすごいスピードで一人LT大会を開催するというセッション。タイトルよりも真面目な内容だった。かなり早口で喋っているのに、聞き手が理解して楽しむことができる。スライドをしっかり作り込んでいるのだなぁ。
typotはよさそう。

新卒2年目がサービス開発の際に乗り越えた課題とその解法など@gorogoroyasu

2年目の方とは思えないほど落ち着いて話されていた。そして若い方にチャンスが与えられている素敵な会社だな、と思った。
デプロイの自動化を考える時「設定ファイル化できた!コマンド一発でできる!」というところで満足しがちだけど、そこからさらにGUI化したりDB化したりして改善しているとのこと。
デプロイ設定の自動テストとかどうしてるのかな?ってとことを聞いてみればよかった。

僕達がやってきたレガシープロジェクトとの付き合い方@_nabeen

・テストコードがない
・エンジニアがini職人化
・コードレビュー文化がない

でも結構未だにこういう環境多いと思う。
ただ、カンファレンス参加者の半分以上?は、こういうレガシーは脱出していると思うので、発表するのに結構勇気が必要だったのでは?と思った。しかし同時に未だにレガシーな環境で開発している人に勇気を与えたと思う(私もあらためて勇気をもらった)

「テストは目的ではなく手段」
・目的はバグを出さない=安全な運用。
・実績のある部分に対して無理して書く必要はない→新しく作るところに入れる。
コードレビュー文化を作ってPRで運用したい。

わかる。わかる。でもレガシーに染まった環境だと、そこまでのハードルが非常に高い。そこで「SubGit」を使ったとのこと。使ったこと無いけど、良さそう。DevOpsへの第一歩は、小さな改善からはじめられるのだと改めて感じた。
ところで、@_nabeenさんはTwitterアイコンを作ってくれる人を募集していた。確かに今のアイコン(いらすとやさん)はあんまり本人ぽくなかったので、是非だれか作ってあげて欲しい。

1人から始める大規模Webアプリケーションの言語バージョンアップ(@ravelll

この話を聞いて「全力でがっ!」っとやる人を1人立てることは重要であると感じた。チームでやらないとできない!と考えてしまうと、特にバージョンアップ等影響が大きいことをなかなか進められない。そしてチームで動いた場合、業務タスクの割り込みなどが日常化して失敗することがある。ただし全てを一人でやるのではなく、有識者や周りのメンバーに頼りながら進めることも大事、とのこと。

旧バージョンで運用し続けることのリスク
・セキュリティリスク
・エンジニアの雇用に影響する
・開発者とサービスの成長を阻害するのでは?
-最新情報を収集しても使えず、あきらめてしまう
-得たナレッジもベースが古いのでアウトプットがはばかられる
-レガシーな環境改善を外に出すのも…

「エンジニアの成長がサービスの成長」という言葉がよかった。
周囲を説得する際に「セキュリティが!」とかで推し進めようとしがちだけれど、一度冷静になって他のリスクも含めて説明できるようにしたい。
方針・対象の決定・不安要素のリストアップ・マイルストンの作成・対応したこと・動作検証・リリース・振り返り、
と順序よく説明してくれたので、聞きたいことが一通り聞けた。
熱のある人の意見が通ること、そしてその人が課題に専念できること、周囲と相談し合えること。とても風通しの良い会社なんだな、と感じた。

Dockerを本番で使ってみて分かったこと@hanhan1978

今回のカンファレンスで聞けて一番よかったセッション。
当日感動してツイートしたし、懇親会でご本人にも伝えたし、アンケートにも書いたけど、ほんとに素晴らしいセッションでした。
丁寧で落ち着いた話し方、シンプルだけどポイントがまとめられているスライド、時々上品なユーモアあり、完璧な時間配分。自分もこういうプレゼンができるようになりたい!
そしてセッションの内容も、実経験に基づいた推奨環境・アンチパターンなどが散りばめられていて、非常に勉強になった。こういう方と一緒に働けたらとても幸せだろうなぁと思った。

・コンテナレジストリは好きなものを使うのがよい(機能に大差がない)
・Dockerの破壊的変更、docker-composeのバージョンに気をつける。
・1アプリ,1リポジトリ,1DockerFileが原則。
・起動時にコンテナの中身を動的書き換えるのはアンチパターン。
・Docker for Macでshare-folder遅い問題(うん…cachedフラグかぁ)
・kubernetes自前準備はおすすめしない。GKEおすすめ。
・kubernetes with kube-aws(え!推奨がm4.large✕4…高い)
・CI「後で設定すればいい」はアンチパターン!CodeShipおすすめ。
・情報のキャッチアップには「DockerWeekly」がおすすめ。

ちなみに@hanhan1978さんはLTでも発表されていましたが、こちらも面白かった(PHPでWebサーバ作ろう
たしかにPHPでWEBサーバ書くのは勉強になりそう。
(あと「爆誕!」って淡々と言われていたのが最高だった)

実はこのセッションの裏でやっていた
Progressive Web Apps + AMP = PWAMP for PHPer@yui_tang)も聞きたかった!かなり迷ったけど…今自分がやっていることに近いDockerのセッションを聞く事にした。スライドは読んだけどあとで動画が公開されるのかな?楽しみです。
ちなみに懇親会で@yui_tangさんとお話できてよかった!(メタルの話ばかりしてしまったけど….)

PHPerに覚えて欲しい日本語の重要性@____rina____

・「未入力です。」問題。
・「未入力です。正しく入力してください」問題。
・「ください」と「下さい」問題。

こういうのって、普段から意識してる人にとってみれば当たり前のこと。
だけど悲しいかな、本当に気にしない人ってのも結構いる。
めちゃくちゃプログラム書けるのに、日本語メッセージどうしてこうなった!って人、結構多い。
ちなみに私はこの手の日本語問題にかなりうるさい。この手の問題を見つけたら、徹底的に指摘する(その割にはこのブログの文章は…)
品質やテスト、表現方法に熱意を持ってる人がいる会社はいいな、と思った。
@____rina____さんとも懇親会でお話できて楽しかった。JSTQBを知ってる方に生まれて初めて出会った。

エラーと例外の再入門@Hiraku

今回聞けて良かったセッション№.2。
PHPをやり始める前はC#やJavaなど別の言語をやっていたこともあり、PHPのエラーや例外は違和感を感じることが多かった。
丁寧な説明を聞いて、改めて公式マニュアルを読んで考えることの大切さも感じた(セッションの意図に当てはまるかはわからないが)

・PHPにとって何か良くないことが起きた(=エラー)
・コンパイルという前処理が無いので、怪しいものは実行時に「エラー」
として出すしか無い。
・エラー処理をきれいに書くには、発生と後始末を分けて書くといい。
・エラーのメリット=無視できる!
・deprecatedのメソッドで無理やりtrigger_errorでメッセージ出せる。
・エラーを例外に作り直すこともできる(set_error_handler)
・どこで中断されても大丈夫なようにアプリ側で気をつける(例外安全)
・ゾンビキャッシュ残る問題。例外が発生したタイミングでクリアしたほうがいい。
・最後の砦「set_exception_handler

などなど。他にもいろいろメモしたけど、スライドを見るとよく分かる。
普段、本職はCやC++だけど時々PHPも書かなきゃいけなくなる同僚に対して説得力のある説明ができなかったので、このセッションを参考にして、うまく説明できるといいな…
「Pokémon catching」という言葉は初めて知った。なるほどな。

カンファレンスのこちら側とあちら側@tomzoh

LT、皆さんおもしろかったけど、一番すきだったLT。
Rebuild.fmのnaoyaさんとmiyagawaさんのトークが出てきた。私も、本当にこのエピソード好きだ。
そうなんだよね。たしかに登壇する人はすごい。だけど誰でもそこに行くことはできる。やってみなきゃわからない。

そう、そして私はこのブログを書いた。
2017年はアウトプット頑張りたい。って2017年のはじめに目標を立てた。
だけどやっぱり苦手だった。簡単なこと、誰でも知ってることをわざわざアウトプットしてもいいことないんじゃないか…と思って筆が止まることが多かった。
だけど、PHPカンファレンス福岡2017、楽しかった。素敵なイベントだった。また参加したいと思った。そしてもっともっとたくさん勉強しよう!と思った。そしてブログを書いた。また一歩進めた。

あらためて、運営スタッフの方々、おつかれさまでした。