【PHPカンファレンス2019】聴講セッションまとめ
【PHPカンファレンス2019】聴講セッションまとめ
開発室員Tです。テストのこととかiPadProのこととか書いてる人です。
去る9月21日、札幌市民ホールにて開催されたPHPカンファレンス2019北海道に参加しました。こういったセミナーには参加した経験がなかったので、他の企業さんではどういう風に使っているのか、どういう視点から開発しているのかを肌で感じようと思った次第です。
ちなみに今回の記事ですが、すべて文章となります。唯一の画像はサムネイルのみ;;
受付から開会まで
今回の受付はEventonというサイトからの申し込みで、完了時にもらうQRコードか番号が必要とのこと。
なので、iPadProの純正ブラウザ「Safari」からQRコードと番号の書かれたPDFを「ファイル」にダウンロードしておき、それを見せ・・・あ、番号だけでいいんですね。はい。1XXXX番です。はい。あ、QRコードいらない?そうですか。(;;
受付後は、一緒に入っていたコーヒーチケットを使ってコーヒーを飲みつつ、企業展示ブースをぶらり巡回していました。ここはまあ・・・うん、技術的なものより企業紹介みたいなものでしたね。
セッション#1「PHPを学ぶということ」
「PHP初学者はどこから学べばよいか」という疑問は前々からあったのと、前職で突如放り込まれたプロジェクトがPHPとの初邂逅だった自分からしてみれば、見本となるようなコードが一切手元にない状態でどう学べばいいのかは知りたかったところでした。
冒頭から驚かされました。「アルゴリズムから学ぶ」からの「そこからかー」と。思わず納得。
PHPそのものを学ぶなら、VirtualBoxでもさくらのVPSでもなんでもいいので、PHPを実際に実行できる環境さえ用意すればあとはecho "Hello World!"
が実行できたら、curl
で他のサイトからページもらってみたり、file_get(or put)_contents
でファイルの読み書きしてみたりして「こんなことできるのか」で一区切りつき、あとは流行りに乗っかってLaravel
とか入れてみたり。
でもそれを知ってても、実際に動くモノにするためにはアルゴリズムを学ぶしかないよなと。そして気が付きました。大学の必修科目に「C言語」や「Java」のプログラミング言語の講義がありましたが、それとは別に「アルゴリズム」の講義があったのはそういうことだったのかと。プログラミングの授業楽しくて少し疎かにしていたような思い出があったので、真面目に勉強しておけばよかったと後悔。
このセッションで登壇者が伝えたかった意図とはずれてるかもしれませんが、このセッションでは「PHPを学ぶ、というよりは、まず初学者は言語は何でもいいからアルゴリズムの勉強から始めようぜ!」ってことを言いたかったのかなと。
今後、もしも新卒を迎えたときはアルゴリズムってところに重点を置いて接してみようと思います。
昼食
今回想定外だった昼食。がっつりしたボリュームのお弁当でした。これだけでも500円近くするよなー・・・。あとあと眠くなるの確定だろうなと思いながら完食。前のセッション中も、ちょっと机が前後に動いてメモが取りにくかったので、飲食厳禁ではあるものの後ろの座席へ移動。
セッション#2「オミカレのフルリニューアルの裏側を全部見せます!」
登壇されていたオミカレ前川さんの経験された「フルリニューアル」は、「見た目がオッサン臭い」から始まり、見た目を改良したらモデルが~コントローラーが~と次第に増えていき「よし、全部変えよう!」となった経緯だそうです。
実はカンファレンス前日に、ある社内システムのフルリニューアルが完了したばかりでしたので、とても他人事とは思えない内容でしたので、いろいろ記憶に残ったサイトでもありました。
特に「リニューアル後に新しい価値を早く届ける」ための枠組みというところは、私のフルリニューアルでもテーマとなっていたところですが、MVC(Model, View, Controller)それぞれの責務を考えるところや、Controllerで多くの責務を持つためにPresenterを用意して責務を細分化するなどなど。
実はPresenterでないだけで、責務を細分化するといった考え方は、私もやったフルリニューアルでやったことと同じでした。私の場合は「Service」を用意し、その中にDBへ保存するデータの生成処理を行うクラス、フロントエンドに返却するレスポンスデータの生成を行うクラス、外部のAPIサーバーへのリクエスト実行を行うクラスなどを細かくつくり、作成したクラス全てにユニットテストを作成していました。
「これって単に同じことやってたって自慢じゃね?」と思われた方。ええ。自慢ですね。ドヤってます。
このセッションでの大きな収穫は「自分の考えは間違っていなかった!」という自信を持てたことでした。今回のフルリニューアルのバックエンド担当は私1人で、かつ相談できる時間もなかったものですから「この設計で本当に大丈夫か・・・?」というのは、テストを書き終わってから実装が終わり、テストがすべて通ったあとも常に頭に纏わりついていましたので。
設計には正解というものはありませんが、開発業務にかかわらず「自分と同じことをやっている人」という存在は非常に大きいので、こういったイベントに参加するか迷っている方も、新しい技術の情報のみを求めるのではなく、自分と同じ思想の人を求める場として参加されてみてはいかがでしょうか。
セッション#3のまえに
一度退席し、お弁当のあとは眠くなるのでシャキッと目を覚ますためにエナジードリンクを摂取。3つ目のセッションへ。
セッション#3「PHPerのためのPHPUnitとSeleniumを使ったブラウザテストのすゝめ」
これまで自分の書いていたテストは、あくまでAPI側なので、コマンド実行してそのレスポンスが想定通りかどうかをチェックするのみ。ですが、やはりAPI単独で使用されるという場面はあまりなく、最終的にはフロントエンドが必要になってきます。そんなところで出会ったこのセッション。ブラウザテスト、そろそろ挑まないとなー・・・。
そんな中で今回出会ったのがこのセッション、恥ずかしながら、Seleniumというのを知りませんでした。
セッションが進むにつれて「各ブラウザの表示崩れをスクリーンショットを比較して検知できる」というのがとても魅力的。Chrome/Firefox間でもずれたりするときあるんですよね。IE・・・?知らない子ですね。
しかし、そもそもブラウザテストの経験がなかったりすると「今の自分の環境ではどう使えばいいんだろう?」というところになってしまい、そこで止まっている状態に。
ちょうど開発環境を手軽に準備するためにVagrantとAnsibleであーだこーだやってるところなので、さくっとSeleniumの環境作っていろんなブラウザテストを試していきたいと思います。
小休憩
3つ目のセッションが終わった後、少し小休憩へ。
今回のPHPカンファレンスは3階でメインセッションが行われており、1階では企業ブースがちらほらと。ほかにも写真はないですが、登壇できなかったけど聞いてほしいという方が集まっているブースもありました。自由気ままに光がめっちゃ入るスペースでLTのように発表する。なかなか面白かったです。
そして今回の会場である創生スクエア。そもそも札幌に住んでいるとそこまで来ることがないので、少しぶらり散策。図書館のミーティングルームいいですね。外に声漏れないし、カッコイイし、事前予約できるし、その日空いていれば当日予約OKだし、無料だし。
そろそろ会場戻ろうかなといったところで、どこからともなく「ウォー」という音・・・シャウティングチキンによる演奏練習でした。何故・・・。
セッション#5「SQLアンチパターンの紹介」
休憩挟んで4つ目のセッションへ。PHPカンファレンスでは5番目なので#5と表記しました。
・・・この発表者である川井さん、さっきのシャウティングチキンの主であったとは・・・。場を和ませるためにシャウティングチキンでの演奏を試みましたが「あまりウケなかったので、こいつ自体がアンチパターンです」といって放り投げてました。気のせいであればいいんですが、地面に落ちた瞬間少し鳴いたような。断末魔。
とまあ非常に愉快な方でしたが、正直このセッション、自分にはレベルが高かったです。
そもそもデータベースの設計自体に疎かったこともあり、「このアンチパターン、使っちゃってるなー・・・」というのに気が付けませんでした。とはいえ、データベースの設計が疎いという欠点が見つかったので、次の開発案件で注意しないといけない箇所であることを自覚できたのは大きかったです。
セッション#6「クリーンアーキテクチャの考え方に基づく Laravel との付き合い方」
業務でガッツリ使っているLaravelさんのお話。これは聞くしかない!
・・・このセッション、正直一言ですべて語っていたような気がしました。「『重要なもの』を『些細なもの』に依存させない」。この一言が、これからの設計すべてに必要となることだなと思えたセッションでした。
そしてこの一言を実現しやすいのは確かにLaravelだなと。ほかと比べても色濃いセッションだったのですが、この一言が強烈すぎてこれしか書けません。(;;
まとめ
ほかにもセッションはありましたが、当時聞いておきたかったのはこの4つのセッションでしたので、セッション#6が終わったタイミングで会場をあとにしました。
最初に申し込むときは、こういった催し物はレベルが高くてついていけないだろうなーという思いでしたが、業務か趣味かに関係なく、現場の雰囲気を肌で感じられるので、興味があればいろいろ参加してみようというきっかけになりました。
初学者の人は、現場ではどういう雰囲気なのかを味わえますし、初学者向けセッションがあったらそれを聞き、今後の成長に生かせるのではないかと。
既に業務や趣味で触れている分野であれば、ほかの現場ではどういう工夫がなされているのかを盗み、自分の糧とできる絶好のチャンスになるのかと思います。
余談
実は今回、メモにせよ次のセッションの時間にせよ受付にせよ、すべて私の愛機であるiPadProさんだけですべてを完了させることができました!
趣味にもカンファレンスにも何でも使えるiPadProさん・・・惚れる・・・。