PHPerKaigi2019に参加して
今回PHPerKaigiは初参加でしたが、そもそもこの手の技術イベントに完全プライベートでソロ参加した事自体初めてだったので、良い機会と思い感想など残しておきます。
今後またイベントに参加していくぞという気持ちと、普段からアウトプット不足は認識してるので、感じたことだけでも吐き出していくぞという気持ちです。
3/29(金)の 前夜祭は普通にお仕事などしてたので、3/30(土)からの参加でした。
明日は行くぞ! #phperkaigi
— ごましお (@halnique55) March 29, 2019
@tomzohさんのオープニングを聞いている頃はまだ「ああ…やっぱり落ち着かないなぁ」など感じてましたが、せめてチケット代のインプットは得て帰らねばという考えでその場におりました。
最初は@Fendo181さんの「フレームワークを作りながらLaravelのアーキテクチャを学ぶ」を拝聴しました。
登壇当時社会人三年目とまだお若いのにすごい!と思うと同時に、ご自身の会社名をしっかり出して登壇している姿を見て、こういう活動にとても理解がある会社なんだなと感じました。
※ そもそもGMOペパボさんはPHPerKaigi2019スポンサーでしたしね。
FWを自作してLaravelと比較しながらDIやコンテナの説明などしてくれていましたが、LaravelもDIもコンテナも触れておいて良かったです。
特にLaravelでテストを書く際に、DIやコンテナのありがたみを感じていたところだったのでわかりみが深かったです。
次は@hidenorigotoさんで「抽象化って何?」でした。
これはいつもコーディングやレビューしながら自問自答していたところだったので、とても楽しみにしてました。
現実世界での例とともに抽象のハシゴを登っていく話と、抽象化は視点によって方向性が変わるという話のおかげで、自分の中で抽象化への理解が数歩深まった感触を得ることができました。
抽象化には方向性がある
— ごましお (@halnique55) March 30, 2019
視点によって変わる
* 牛 ->...->富
* 牛 ->...->動物
* 牛 ->...->乗り物
#phperkaigi #a
※ このあたりでTwitterに投稿する余裕が出てきたようです。
続いてランチ&ランチセッション…正直ランチは外に出ようか迷っていました。
一人だし、お弁当もらって一人で食べてたら浮かないかな?とか、普段の弱々しい気持ちがまたポツポツと出てきてました。
でも朝よくわからずランチチケットもらっちゃったし、参加したかったのにチケットもらえてない人もいるのに参加しないなんてよくない!と思い、お弁当いただいてランチセッション聞くことにしました。
ランチセッションはランチスポンサーのオウケイウェイブさんから、@blue_goheimochiさんによる「Take Off The Colored Glasses」でした。
テクニカルなセッションではなく、オウケイウェイブという会社の紹介や、フィロソフィ的なものの紹介がメインでした。
※ 皆さんご飯食べながら聞く形になるので、そういう内容の方がたぶんお互い良いですよね。
各々の色眼鏡を外して、同じ色眼鏡をかけ直すと、文字にすると矛盾を感じますが、とても共感できる内容でした。
美味しかったけど満腹感すごい…
— ごましお (@halnique55) March 30, 2019
オウケイウェイブさんごちそうさまでした #phperkaigi #a
これはいいものだ
— ごましお (@halnique55) March 30, 2019
オウケイウェイヴ、10月より、月曜午前中に“営業休”を導入 #phperkaigi #a https://t.co/V1z3SyPKiC
ブルーマンデー対策のお話は、初めて聞きましたがなるほどなと。素直にとても良いなと。
うだうだ悩んでましたが、ランチ参加して良かったです。
オウケイウェイブさん、@blue_goheimochiさん本当にありがとうございました。(ごちそうさまでした)
午後イチは@yoku0825さんで「MySQLにWEBアプリのログを保存しているケースの8割くらいが幸せになる方法」でした。
直近ではMySQLにログ入れてないなと思いましたが、以前の職場では場合によっては入れていたなとか、InnoDBの圧縮を使っていたことを思い出してなんだかエモい気持ちになってました。
ほぼコールドなログデータをRDBMSに入れとくのに圧縮してた記憶が呼び起こされた #phperkaigi #a
— ごましお (@halnique55) March 30, 2019
当時よくわからないなりに調べて、適切なページサイズとか検証してました。
さらに新卒時代にMyISAMでFULLTEXTINDEXで全文検索などやっていたことも思い出し、なんだか最近ちゃんとDBと向き合ってないのかな?なんて気持ちにもなっていました。
あと発表の流れが、なんというか引き込まれる感じで、エンターテインメント性があるなあと感じながら聞いていました。
次に聞いたのは@77webさんで「設計力を上げるバリエーションの見極め術」でした。
バリエーションの変化はビジネスの変化という捉え方が、なんだかとても前向きで良いなと思い、普段「この仕様変更は誰得なんじゃい…」などと感じてしまいがちな業務でも、捉え方を変えてみようかなと思えました。
条件分岐禁止ギプスなど面白い取り組みもやられていて、課題解決に楽しんで向き合っているように感じられてとてもナイスでした。
続いては@hypermktさんで「モバイルアプリ向けAPI開発を通じて学んだこと」を聞きました。
技術選定って何を基準に選定するの?や、API設計についてサーバーエンジニアだけでなくアプリエンジニアも一緒に「Web API The Good Parts」を読みながら学んだことなどを聞き、とても健全なお気持ちの環境なんだなと素直に素晴らしいと感じました。
Laravelがドキュメントに書いてないけどこっそり機能提供してたりするのはちょっとわかりみあるなと思い、そこがまたLaravelのFWのコードを読む楽しみでもあるんだよななどと思いながら聞いていました。
LaravelでこういうのないかなってFWのコード読んでるとこっそり提供されてるのは稀によくある #phperkaigi #a
— ごましお (@halnique55) March 30, 2019
次は@koriymさんで「RESTの力」を拝聴しました。
ちょうど最近業務でもRESTを意識しながらAPI設計していた部分があり、どのぐらい自分の中のRESTの認識が正しいのか答え合わせ的なイメージで臨んだのですが…。
自分が「イケてるかも!」などと思いながら作っていたAPIたちは、なんというか数字が書けるようになっただけで「数学完全に理解した!」と言っているぐらいにちっぽけなものだったということを思い知らされました。
HypertextとInternetからWWWが生まれ、その後RESTという考え方が生まれ、APIのバージョン管理がどうとかURIがどうとか単数形複数形がどうとかはよく議論されるが本質的ではないんだとか…。
そして最後の締めくくりと、発表後のあの空間に漂っていたなんとも言えない雰囲気は、なんだか映画の名作を観終わったときのような気持ちの良さがありました。
CRUDとか単数複数形とか表面だけなめてREST感じてたけど、全然まだまだだった
— ごましお (@halnique55) March 30, 2019
もっと深く学びたい #phperkaigi #b
今回あの力強い引き込まれるようなセッションが聞けて、本当に良かったです。
もっともっとRESTは考えながら付き合っていこうと思いました。
その次は@ippey_sさんで「サーバーレスPHP」でした。
サーバーレスは業務でもプライベートでも触れた経験がなく、仕事で聞いたAWSやGCPのセッションで紹介されていたぐらいの知識しかない状態でした。
しかしセッションは非常にわかりやすく、PHPerフレンドリーで、これなら自分にもできそうかも!やってみたい!と思える内容でした。
続いて@niisantokyoさんの「Swooleでフレームワークを高速化 - もう動作が遅いなんて言わせない!」を聞きました。
台湾のエンジニアでLaravelを高速で動作させるHTTPサーバーを作ったとのこと。Nginxより速い。スター数1800超え。凄いhttps://t.co/0XESAAC5hG
— あれふ@技術書典6「お29」旅するエンジニア (@40balmung) March 23, 2019
#TaiwanLaravelMeetUp
ちょうどlaravel-swooleが爆速ですごいというのを聞いたところだったので、タイムリーに興味津々でした。
結果としては早いのは間違いないけど、そもそも普通のWebアプリとは全然別物になるということで、具体例も合わせて紹介していただけてとても参考になりました。
一日目最後は@hanhan1978さんの「PHPerのための計算量入門」でした。
いわゆるOrder記法だったりとか、基本に立ち返りつつも、「必ずしもin_arrayが悪でarray_key_existsが大正義ってわけではない」というお言葉もちゃんといただけて、この辺の使い分けがしっかりできるPHPerでいたいし、周りもそうであってほしいと改めて思いました。
そして@tomzohさんのクロージング「Today's update」を聞き一日目は終了しました。
※ PHPer茶会に参加する勇気は出ませんでした…。
自分でもわからないうちにテンションが上がっており、なかなか寝付けずにTwitterでPHPer茶会の様子の監視や自分でまとめていたメモを見返したりして、夜更かししていました。
完全に寝坊したけど、自分を甘やかして全休するのはもうやめるんだ…!
— ごましお (@halnique55) March 31, 2019
次のレギュラーセッションに間に合うように行きます #phperkaigi
二日目は寝坊しました。オープニングには間に合わないし、最初のセッションも完全に間に合いません。
たぶんいつもの自分だったら、「昨日一日参加しただけでも十分頑張ったし、家のことも片付けないといけないから今日はいいか」となるところでしたが、ここで変わらないとこの先ずっと自分に言い訳して妥協していくことになる!と思い、やっとの思いで起き上がりました。
結果的には起き上がってよかったです。素直に今朝の自分を褒めてあげたい。
そして二日目最初は@cotolier_risaさんの「PHPerKaigi2019のサイトができるまで」から始まりました。
基本的にはWebアプリケーションの開発しかやってこなかった身で、Webデザインの話をちゃんと聞いたのはもしかしたら初めてだったかもしれません。
コンセプトアートやロゴのお話ももちろんそうですが、アートディレクターのお仕事や、デザイナーさんとかもGitHub使ってるんだということや、バイト君が来なくても困らないコンポーネントの分け方などなど、新鮮でとても学びがありました。
デザインとか全然わからないマンなので、展開しやすさを意識した分解/変形しやすいデザインとか素直にお勉強になります #phperkaigi #b
— ごましお (@halnique55) March 31, 2019
デザイナーさんがそのデザインに込めた思いとかを聞くと、エンジニアとしてはなんとか実現したい!と思うし、そういう思いが生まれる環境に身を置きたいなと、しみじみ思いました。
続いては@ex_takezawaさんで、「Hack HTTP Request and Response Interfaces」を聞きました。
すごい難しそうだ…という思いと、界隈にあまり詳しくない自分でも名前を聞いたことあるぐらいだから、ytakeさんってすごい人なんだろうな…という思いから、ややびびっておりました。
しかしセッションではPSR-7の話などが出てきて、ちょうどGuzzleでrequestAsyncやらPromiseやらジェネレータに四苦八苦していた自分には意外とすんなり入ってくる部分もあり、結果的にはこれ以上ないタイミングで聞けたような気がします。
※ やっぱり難易度が高かったのはその通りですが…。
また、ytakeさんはアイスタイルのCTOですし、他には@hidenorigotoさんもmercariのマネージャーオブマネージャーだったり、委員長の@tomzohさんもCTOだし、他にも役職付きの方々がばんばん登壇されていて、それってしっかり技術のある人がエンジニアを引っ張っていってるってことだと思いましたし、そういう環境でエンジニアがやれるってとても素晴らしいことだなと感じました…。
ランチは寝坊したので当然チケットもらえておらず、おとなしく練馬近辺でランチを取り、スタバでTwitterを監視したり午後に向けて気を高めていました。
お昼前にちらっとRe: RESTの力見に行ったけど、質疑応答の雰囲気だけで昨日の熱が感じられた #phperkaigi #c
— ごましお (@halnique55) March 31, 2019
RESTの力の残滓が残っていたのを観測しました。
午後は@soudai1025さんによる「アンチパターンから学ぶ、RDBの正しい設計」から始まりました。
こちらの@soudai1025さんも元々認識していた数少ない人のうちの一人であり、毎度のごとくびびりながら向かいましたが、結果としてはとてもわかりみのあるセッションでした。
紹介されていたアンチパターンもだいたい触れてきていたことや、ORMやキャッシュやロックの話も「うんうん」となる部分が多く、RDBMS周りは意外と修羅場をくぐっていたのかもなとちょっと自信がつきました。
※ でも本は読んでなかったのでちゃんと買います。
続いては@seike460さんによる「PHP監視、サービスを守る為に行う不測の事態への努力」でした。
監視については弱い部分である自覚はあったので、ちょっと身構えておりました。
しかし、開発視点ではなくユーザー視点で監視するべきものを考えるという話を聞いて、一気にイメージが鮮明になった気がしました。
死活監視、ステータス監視、レイテンシと、それぞれ何のために見るのかと考えると、ストンと腹落ちしました。
実際にオオカミ少年化した監視のアラートが鬱陶しいなと思うことは何度もあったので、インフラエンジニアとの歩み寄りが大事だなと思いました。
ここからは怒涛のLTタイムで、バンバン流れるようにLTがデプロイされていきました。
www.slideshare.net
ルーキー枠なる登壇初心者枠の方々の発表があったのですが、これでルーキー?と思うほど皆さん素晴らしい発表で、完全に圧倒されてしまいました…。
その後、徳丸先生こと@ockeghemさんによる「PHPerチャレンジ 「徳丸 浩の挑戦状」解説」がデモ付きで行われました。
基本的なものから巷で話題のものまで、色々な脆弱性や危険な仕組みを悪用したデモは非常にためになったし、直前のLTのネタを拾って自分の発表に還元するなんてテクニックは、やっぱり場馴れ感が違うなと脱帽しました。
ルーキーLTのネタをことごとく拾っていく徳丸先生 #phperkaigi
— ごましお (@halnique55) March 31, 2019
そして最後は再び@tomzohさんによるクロージング及び、PHPerチャレンジの結果発表や各表彰などが行われました。
#私の負けです で勝つのずるい #phperkaigi
— ごましお (@halnique55) March 31, 2019
一位が同点で、正誤に関わらず最後にコミットしたほうが一位になるなんていうなんともライブ感のある結果が見れたり、とても盛り上がっていました。
そうこうしているうちにクロージングも終わり、皆さんは懇親会へ足を運び、私はスタバに寄ってから帰りました。
興奮冷めやらぬままカフェでインプットとアウトプットまとめていたら、再配達をクロージングの時間から逆算して頼んでいたのを忘れて焦っている #phperkaigi
— ごましお (@halnique55) March 31, 2019
ご飯食べながらPHPの現場を聞いている https://t.co/5gwFEeybSg #phperkaigi
— ごましお (@halnique55) March 31, 2019
以上が私のPHPerKaigi2019の参加記録です。
全て書いたら思いの外長文になりましたが、参加して本当に良かったと思いました。
今後もなるべく足を運ぼうと思いましたし、登壇されていた方々の情報発信は追いかけようと思いましたし、もっと自分と周りの技術に目を向けていこうと改めて思いました。
聞く側で参加したぐらいでいきなり何かが極端に変わるわけではないと思いますが、今回の参加をきっかけに自分のバリューを高めていけるよう、頑張ろうと思いました。
最後になりましたが、PHPerKaigi2019とそれに関わった全ての方に感謝します。
ここまで読んでいただいた方、小学生並みの感想文で大変失礼しました。