目次
- はじめに
- 『PHPer Kaigi』とは
- セッションレポート
- PHP の現場公開収録
- モバイルアプリ向けAPI開発を通じて学んだこと
- 3ヶ月でphp5.5から7.2にした現在と今後の向き合い方
- ネットワークのことを知るためソフトウェアルータを自作した話
- PHPerのための計算量入門
- マニュアルにない引数を与えるとどうなる?php-srcへのバグ報告をした時の話
- Hack HTTP Request and Response Interfaces
- ランチセッション
- HP監視、サービスを守る為に行う不測の事態への努力
- LT 大会
- PHPer Challenge 「徳丸 浩の挑戦状」解説
- その他ステキポイント
- 懇親会
- さいごに
はじめに
みなさんどうも Conference レポーターの urabes です。先月も Laravel JP conference 参加レポートを書いたばかりな気がしますが、弊社もこの度 Gold スポンサー枠として最高に熱い Conference に初参加してきたので、当日の雰囲気と私が聴講したセッション内容をお伝えできたらと思います。
『PHPer Kaigi』とは
PHPer、つまり、現在PHPを使用している方、過去にPHPを使用していた方、これからPHPを使いたいと思っている方、そしてPHPが大好きな方たちが、技術的なノウハウとPHP愛を共有するためのイベントです。
※ 公式から引用
今年は 3/29(金) ~ 3/31(日) の3日間、毎年恒例の練馬区の産業プラザ Coconeri ホールで開催されました。
コンセプト通り、「PHP」という共通言語だけで、普段めちゃくちゃ触っている方から、最後に触ったのが数年前の方や直近数ヶ月前から触り始めた方まで様々な方が参加されていました。
そして常に、スピーカー以外の参加者でさえもゲリラでアウトプットしたりや相談をし合っていたりと、参加者皆が存分に場を活用しておりとても賑やかでした。
その他にも3日間通して参加者全員がチャレンジできるゲームあり、参加者を楽しませ・交流を促す仕掛けや心遣いも感じられました。
大まかな様子はこれくらいにして、次に聴講したセッションのレポートをしていきます。
セッションレポート
多重影分身をしたいくらいどれも良さそうなセッションばかりでしたが、著者が参加できた 3/30(土)、3/31(日)の中で印象的だったものをレポートしていきます。
聴講できなかったセッションのスライドはまとめてくださった方がいらっしゃるので、こちらからご覧くださいませ。
■ PHPの現場公開収録 [ 2 日目]
【新原 雅司 さん,竹澤 有貴 さん】
28. ファミコンで理解する DI(ytake) | PHPの現場
新原さんと弊社 CTO 竹澤との対談形式で、テーマが「開発現場での悩み」のお便りに対して答えていく公開収録でした。
有難いことに、こちらのポッドキャストで全編を何度も聴けます。寝る前のお供や当時のツイートを眺めながらどうぞ。
POINT
どれも切実な現場ならではの声だったのですが、twitter で特に盛り上がった質問を以下に記載します。
- 自分がワクワクするものって何だっけ
- DI を小学生にわかりやすく例えるとすると
- オブジェクト指向などものごとの理解をチームでどう共有しているのか
- レビューでの相手へのアプローチ方法について
- ちゃんとテストしてますか?
1h弱あるのにあっという間に過ぎてしまいます。お2人の掛け合いも途切れ無くとても濃い対談コーナーですので是非お聴きください。
■ モバイルアプリ向けAPI開発を通じて学んだこと [ 2 日目]
【バーチ― さん】
Laravel を利用して、モバイルアプリ向けの API を新規開発した際に体感して得たナレッジについてのお話でした。主に「技術選定」と「API設計」「Laravel API 認証実装」についてでした。
POINT
- 技術選定をする上では、ロジックを組み理由付けをはっきりさせてから行う
- 読書会を開き、チーム全体のAPI設計力の底上げと共通認識の確立を図る
- いきなり API 設計に入らず、時間を掛けてでもデザイナー・クライアント・開発者で画面を見るなどして共通認識をつくってから設計に入る
- App\Exception\Handler::render で例外に応じたレスポンスをつくれるのは初めて知った
事前の共通認識と底上げ、技術選定での理由付けと当たり前の様で、実は一部ながらで進んでしまうケースが多いこれらの問題についてあげていましたが、具体的にどう読書会を開いているのかなどを参考までにお聞きしたかった(今更)と後悔…。2019-04-09 11:59:32 Tuesday
■ 3ヶ月でphp5.5から7.2にバージョンアップした現在と今後の向き合い方 [ 2 日目]
【kosa3 さん】
実際に人員リソース不足や PHP バージョンアップの知見不足から、3 か月というタイトなスケジュールの中でのバージョン移行を成し遂げた際で得たナレッジについてでした。
POINT
- 運用と並行しての対応は障害がたくさんありやっぱ大変。
- しかし、バージョンアップを乗り越えた先には天国が待っている。パフォーマンスが上がったり、こういう機会じゃないとできない様なテスト方法の見直し(circleCI を取り入れることで自動テスト)を実現させたりなど、今後のバージョンアップに備えての対策を考えれば今後苦しまずいられるので頑張ろう…!
時系列での作業工程の解説だったので具体的でとてもわかりやすかったです。
業界の現状として PHP7 系へのバージョンアップに大半が遅れてしまっている昨今、どれだけやばいのかを再確認できました(2018 年内で 5 系のサポート終わってるのにこれだけの企業がそのまま現行しているのと、まだこれだけの工数が今後必要なのだということに対して)。
弊社でも一部、memcached を使っているものがあったりバージョンアップに合わせた代替案を考慮しないといけないものもある為、とても参考になりました。
■ PHPerのための計算量入門 [ 2 日目]
【Ryo Tomidokoro さん】
Laravel JP Copnference では、Webアプリケーションチューニングについてお話してくださった富所さん。今回も「計算量」という観点から、ある例題に対してアプリケーションの潜在的な問題点について「どう検出して」「どう対処するか」を語ってくださいました。
POINT
- 計算量とは
- 時間計算量(プログラムが演算する回数)
- 空間計算量(プログラムが利用するメモリ使用量)
- O 記法 : O(n),O(n^2)…の様にデータ量を記述する。()の中身が処理するデータ量
- データ量が少なければ問題が無いことが多い為、指摘し過ぎるのも✖
定数やルーティングが多くなると計算量も多くなる為、アルゴリズムの深い理解が必要だなぁと思い、紹介していた「アルゴリズムとデータ構造」を読んでみたくなったのでポチりました。恥ずかしいことに著者は「計算量」について最近意識しだしたので、意識をするにあたって「推測するな、計測せよ」を実践できるように精進していきます。
■ マニュアルにない引数を与えるとどうなる?php-srcへのバグ報告をした時の話 [ 3 日目]
【てきめん さん】
ちゃんと PHP の公式にも乗っている通り、「気づいたらバグを報告しよう」を実行してみての感想と、実際に「どこにどのように報告すべきか」までをまとめてくださった経験談です。
POINT
- 引数のデータ型を間違えると NULL が返ってくることが多い
- 報告することが大事、貢献しようとする気持ちが大事
- 目的が明確な為、英語を勉強しようというモチベーションにもなる。というか勉強になる。
- レポートを書く際の注意として
- 英語で書くコツとして、文章を端的に書く
- 事象の背景を細かに書く
バグ報告のレポートをする際に気をつける確認事項についての話でしたが、様々なバグ報告にもフレームワークとして役立つと思いました。
世界中の人々が自分の踏んだバグを踏まなくて済む
とても大事な心持ちだと思うので、臆せずやっていきたいと思います!
■ Hack HTTP Request and Response Interfaces [ 3 日目]
【ytake さん】
「Hack とは?」について。ライフサイクルの説明、Hack の成り立ち・現状・今後について語ってくださいました。
POINT
- 元々、Hack = PHP が魔改造されたものだった
- 現状、Hack 上で PHP を動かすには Hack に型を認識させる必要がある
- これまで使えていた composer が Hack の次バージョンでは動かなくなる。Hack は yarn をベースにした Package Manager に移行する為、段々と「PHPぽいなにか」ではなくなっていきどんどん PHP から離れていく
- 特徴としてパイプライン処理をデザインできるで
著者は Hack 触ったことないマンでわからないことしかなかったのですが、ランタイムなどのパイプライン処理をデザインできる(楽しそう)のでその辺りを設計したい人にとっては面白い言語だってことを理解できました。そして現状コントリビュートされている方々がまだ少ないらしく、今が貢献できるチャンスであります。本ブログを読んだ方も是非これを期に Hack を触ってみてはいかがでしょうか?
■ ランチセッション [ 3 日目]
【株式会社 メルカリ さん】
2日目のランチセッションは、メルカリの後藤さんから、「メルカリの Value」についてと、「視点・視座・視野」についての解説でした。
POINT
- 事象に対して変化させるのは自分ではなく、別の周りに対して促すことも時には必要。見定めよう。
- 視座 → from(どこの立ち位置から)
- 視点 → vector(どのように見るか、視座 → 視野への矢印)
- 視野 → to(何を見ているか)
成長する為には、登場人物としてどんな事象があり、それら事象の定義はどのようなものかについて理解を深めることができました。今後の自分の取り組み方について色々と考えさせられる良い機会になりました。とても励みになりましたし、後藤さんが仰っていた通りお弁当に合う良いおかずになりました。
本日、ランチセッションのお弁当はこちらになります。スポンサーのmercari様ありがとうございます! #phperkaigi pic.twitter.com/m1AO6Ejmhs
— PHPerKaigi 2019 @3/29-31 (@phperkaigi) March 31, 2019
3 日目にしてやっとランチチケットをゲットできたので美味しいお弁当にありつくことが出来、最高でした。ご提供ありがとうございました!
■ PHP監視、サービスを守る為に行う不測の事態への努力 [ 3 日目]
【せいけしろー さん】
slide.seike460.com
「適切な監視とは」についてで、PHP に限らず広義な監視についてのお話でした。様々なエラーパターンからどう対処していくのか、「目的意識をもつ事の大事さ」についてと、参考例としての「監視方法のアーキテクチャ」を図で見やすくまとめられています。
POINT
- ただ監視ツールを導入するのではなく、ツールの選定理由を明確にしてから導入する
- ユーザー目線での監視を意識すること
- 死活監視
- HTTP ステータス監視
- レイテンシー監視
最近、オライリー本で「入門 監視」が発売された中でのタイムリーなセッションでした。富所さんの「推測するな、計測せよ」に近しく、問題への目的意識を持ち、ユーザがサイトを「どう見れなくなったか」に合わせて健全な監視をすることが大事だと学べました。あとで監視本もう少し読もう。
■ LT大会 [ 3 日目]
資料はコチラから。
「ルーキーズ枠」という勉強会等で初めてLTをされる方々を含めての LT セッションでした。司会の長谷川さん曰く「LTはスポーツ」とのことで、制限時間 5 分間から 1 秒でも過ぎるとドラが鳴ってしまう厳しいルール。
ルーキーズ枠の皆さん、めちゃくちゃうまくて全然ルーキーじゃなかった…。
■ LT・登壇でマサカリに備えるたった一つの心得
【果物リン さん】
因みに私はこちらの LT を見て尚のこと刺激を貰え、 Conference で喋りたくなりました。
もがいて強い気持ちを持っていこうな!
■ PHPer Challenge 「徳丸 浩の挑戦状」解説 [ 3 日目]
【徳丸浩 さん】
EGセキュアソリューションズ株式会社の徳丸 浩さんから出題されたゲームの解説でした。
徳丸さんが用意した脆弱性があるサイトを攻撃して「PHPer トークン」を 3 日間でいかに多く見つけられるかのゲームです。
他にも、会場内のどこかに書かれているものが隠されていたりや参加ブログを書いてそれをブログリンク集に登録すると現れるなど様々なイベントをクリアすることで「PHPerトークン」を見つけることができます。
解説をまとめてくださっている方がいらっしゃったので共有。面白いのでぜひご覧ください。
攻撃する側の考えの組み立て方を少しでも学べる事ができました。実践してみて、脆弱性について知見をもっと増やしたいとモチベーションを頂けました。
その他ステキポイント
その他にも個人的に感じた Conference の良かった点をいくつか挙げていきます。
★ UnConference
アンカンファレンスゾーン、盛り上がってます。あなたも話してみませんか? まだまだ枠が空いています。ホワイトボードに、タイトルとお名前をお書きください。 #phperkaigi #c pic.twitter.com/OeK5g7qD8A
— PHPerKaigi 2019 @3/29-31 (@phperkaigi) March 30, 2019
セッションと別のスペースでは、「DDD 相談会」や「クリーンアーキテクチャ相談会」「フロントエンド相談会」「無限LT」などなど様々な IRT が時間の隙間なく参加者からゲリラ的に開かれていました。
★ 確認しやすいスライドサイドバナー
スライドの横のバナー上にタイトルや誰が登壇しているのかが常時表示されているのがとてもおしゃれ且つ機能的だと素直に感心しました。Speaker の顔が見えるのも良いですよね。
★ 充実し過ぎてるドリンクコーナー
また会ったな無限コーヒー。更に無限オレンジジュースや、無限紅茶まで揃っており最強でした。
★ ノベルティ
ユニークなノベルティがたくさんでした。「条件分岐禁止ギプス」はシリコン版を貰えることを終わった後で気づき結構ヘコみました。バッグ普通にかわいい。
★ Speaker にとっても充実な FB の為の仕組み
今のうちに昨日のセッションのフィードバックをしよう! #phperkaigi pic.twitter.com/9IbX2JQtVk
— 山本ユースケ (@yusuke) March 31, 2019
ちゃんと自家製の FB の為のフォームまでつくられている…!
その為にセッション毎の休憩時間が 15 分だったのか…と妙に納得。Speaker のモチベーションにもつながるし、即意見を頂ける仕組みはすごく良いなと思った。
★ 運営・参加者がみんな全力且つ協力的
#phperkaigi のスタッフのみなさんお疲れ様でした!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! pic.twitter.com/IMQsyODcjI
— Takashi Kaga (@TAKA_0411) April 1, 2019
FB や席を詰める際にも参加者同士で声を掛け合っている姿が印象的でした。スタッフさんの努力の賜物ですね。
懇親会
私が参加できたのは 2 日目の「PHPer 茶会」だけだったのですがめちゃくちゃ楽しめました。
というのも、運営の方々の計らいでネックストラップにtwitter アイコンが印刷されているんです。オフ会みたいなノリで twitter で繋がっているエンジニア同志が声を掛けやすくなるアイスブレイクを担っていました。
参加できませんでしたが、他にも前夜祭や 3 日目終了後にも懇親会があり、PHPer Kaigi はコミュニティ間の交流を大事にしているんだなと個人的に思いました。
さいごに
今回初参加でしたが、紹介しきれなかった Speaker や取り組みがまだたくさんあります。このレポートだけじゃ紹介しきれない良さがまだまだ溢れんばかりありますので、あとは是非参加して体感しましょう(ブログの役割の放棄)!
そしてやっぱり登壇側は楽しそうだなぁと思ったので、この1年頑張って来年の PHPer Kaigi には LT あたりを狙って Speaker として応募したいと思います!
初参加者にそう思わせる場をつくりあげてくれた運営の皆様、Speaker の皆様、参加者の皆様、ありがとうございました!