BASEプロダクトチームブログ

ネットショップ作成サービス「BASE ( https://thebase.in )」、ショッピングアプリ「BASE ( https://thebase.in/sp )」のプロダクトチームによるブログです。

PHPerKaigi2020に4名のメンバーが登壇・プラチナスポンサーとして協賛しました

この度は、2/9(日)~2/11(火)に練馬区の産業プラザ Coconeri ホールにて開催されたPHPerKaigi2020にプラチナスポンサーとして協賛し、また4名のメンバーが登壇しました。

今回は上記メンバーの他に一般聴講者として参加した4名のメンバーからの参加レポートをお届けします!

参加レポート(栗田)

概要

Service Dev Sectionに所属しています栗田です。 2020年2月9日(日)〜2月11日(火・祝)に開催されたPHPerKaigi 2020に聴講者として参加しました。

この記事は2日目の 2月10日(月)の参加レポートとなります。 当日は弊社から2名のトークセッションがあったりと、自分の知り合いのトークセッションがあり 盛りだくさんでした。 セッションを聞いたり、おかしをもぐもぐしたり、参加者と交流したり 茶会に参加したりなど充実した1日を過ごしました!

本文

練馬で行われた会場に到着 f:id:nazonohito51:20200217152342j:plain

ここで受付です。 色々な会社のノベルティや自分専用にカスタマイズされたトレーディングカードもいただきました。 f:id:nazonohito51:20200217152401j:plain

まずはじめにオープニングトークに参加しました! カンファレンスに対する想いが心に残りました。 f:id:nazonohito51:20200217152419j:plain

今回弊社はPlatinumスポンサーとして協賛しております。 自分の会社のロゴが大勢の場の前に出るのは純粋に嬉しいですね。 f:id:nazonohito51:20200217152434p:plain

同僚の @o0h_ さんのトークセッションに参加!! f:id:nazonohito51:20200217152449p:plain

続いて同僚の @budougumi0617 さんのトークセッションに参加!! 弊社から連続のトークセッションになり勢いを感じました。 f:id:nazonohito51:20200217152507p:plain

ひと休憩して、ランチセッションではお弁当をいただき f:id:nazonohito51:20200217152522p:plain f:id:nazonohito51:20200217152537p:plain

午後は↓などに参加しました。

LT... etc などを聞きました。様々なスタイルのセッションがありどれも為になるお話でした。 詳細はリンクよりご確認ください。

最後に茶会に参加して参加者と更に交流を深めました。 f:id:nazonohito51:20200217152559p:plain

※ GMOインターネット株式会社さまからのご提供でした。

茶会にはボドゲなどの交流グッズなどもあり 様々なスタイルで交流する事ができました。 名刺代わりに交換をしたトレーディングカードも大分集まりました!

最後に

自分はPHPカンファレンスの参加経験はありましたが、PHPerKaigiは初の参加でした。 一言で感想をいうとアットホームな温かい場だと感じました。

・初心者、上級者、老若男女 誰でも楽しめる場
・コミュニケーションの場 ・1年に1回、ともだちと会う場

とオープニングセッションで紹介がありましたが、まさにそのとおりだと感じ コミュニティの暖かさを感じました。

自己紹介がしやすいようにトレーディングカード風の名刺をいただいたり スタッフの方がフレンドリーに話しかけてくれたり いたる所で参加者同士で気軽に交流を行われたり PHPerトークンを探しだす、PHPerチャレンジイベントなどもあり 初めての参加でも参加しやすいカンファレンスだなと感じたのと コミュニティの熱量を感じた1日でした。

参加レポート(長澤)

SREに所属していますngswです。得意な領域はインフラ側で、前職でPHPも触ってきました。 今回はインフラ側への言及があった以下の3トークについて感想を書きたいと思います。

レンサバけもの道

僕は以前ホスティングサーバを提供する側にいたことがありますので「これは他人事ではない」というトークでした。 レンサバ == 共用サーバの旨味である「アップデート追従などのマネジメント」と、その反面にある「使い勝手に関わってくる各種制約条件をどう打破するか」という内容です。SSHから始まり最新のバイナリ利用のためのビルドのtipsなど、自由度の高いセルフマネージドなVPSを渡り歩いて来たからこそ語ることのできる内容が盛りだくさんで聴き応えがありました。このトークの背骨となる「モダンを諦めない」「レンサバでもここまでできるんです」という主張はとてもエンジニアしていて好感が持てました。

知らないWebアプリケーションの開発に途中からJOINしたとき、どこから切り込むか?

「既存プロダクトにアサインされたとき、どうすれば開発参加の初動オーバーヘッドを小さくできるか」という主旨のトークでした。

  1. どのようなサービスか
  2. どのようなアーキテクチャか
  3. どのようにデータを保持するか(=どのようなテーブル設計か)
  4. どのような開発環境か(本番環境・開発環境)
  5. どのようなコードか
  6. 開発

https://speakerdeck.com/k1low/phperkaigi-2020?slide=28

「上記の6つのレイヤの情報が揃えば、あとは本人のスキルにあわせて成果が出せるよね」ということでした。 本質に近いもの(発表では上述した数値の小さい事柄のもの)ほど広い理解を要求される点も共感できる内容でした。 トークの最中「われわれのようなインフラ側の人間だとどういう情報があれば初動オーバーヘッドを小さくできるのかなあ」と考えていました。

個人的な経験では「どのようなサービスか」ということにはあまり頓着しなかった思い出があります。自分が一番はじめにほしいなと思う情報は

  • サービスに利用されるFQDN一覧
  • サービスが利用するクラウドサービスのエンドポイント一覧
  • インスタンスの構築手順(コード化されたものも含む)、ないしは相当のものが存在しなければ踏み台へのログイン情報

だと考えています。少なくともこれだけあれば、あとは稼働しているデーモンとポートの関係などはログインして調べてしまえばいいじゃないかと考えてしまう質です。

ただこれがまさにオーバーヘッドなのですよね。そういった意味ではk1Lowさんの発表は高みを目指されていて凄みを感じました。またこの「初動オーバーヘッドを小さくする」ことに成功すれば「採用計画もより柔軟にできるのではないか」という発展性も感じました。われわれの業界はただでさえ即戦力を求めがちなのですから、「単なる一トークではない業界への提言ととってもいいのかもしれない」という気持ちを持ちました。

PHPシステムをコンテナで動かすための取り組みのすべて

さまざまなツールを駆使してコンテナ化を実現されたその手法と、実際の運用に基づく含蓄のあるアドバイスが詰まっていて、 AWS移行を目指す中、オンプレミスでどこまで移行コストを減らす形にできるかという工夫に満ちたトークでした。 個人的に一番興奮してしまったのは「LVS」の話題が上がったところで、そこでテンションが上がりすぎてしまった結果、最後に変な質問を投げかけてしまったのでその点は個人的な反省点です。 ただLVS氏はものすごく賢くて、当該レイヤでやってほしいこと、これできたら嬉しいなってことをほんとに全部実現してくれるツールなので、テンション上がってしまったことは許していただければ幸いです。

参加レポート(炭田)

概要

Service Dev Sectionに所属しています@tac_tandenです。PHPで3年ほどWebアプリケーションの開発をしています。 自分は2020年2月9日(日)〜2月11日(火・祝)の3日間に参加しました。 カンファレンス初心者の自分にとって、一般聴講者としての参加であっても、最初は入っていけるのか正直不安でした。 しかし、PHPerKaigi 2020は運営のスタッフの方や参加者のみなさんはとてもオープンで、親切で、すごく楽しく素晴らしい経験になりました。 また、今回のPHPerKaigiでは、弊社から4名登壇されていて、登壇がより身近になりました(自分もいつかカンファレンスで登壇してみたいと考えています。) 今回の記事では、アプリケーションエンジニアの自分にとって印象に残った以下の2つのトークについて感想を書きたいと思います。

本文

Deep Module in PHP

f:id:nazonohito51:20200217152638p:plain

いとしょさん (@itosho) / Twitter Deep Module in PHP - Speaker Deck

アプリケーションの実装をしていて、実装期間や仕様、依存関係などの制約がありつつも、もっと良いコードを書けないかなと日々試行錯誤されている方も多いと思います。

自分もその一人で、その中で「そもそも良いコードってなんだろう」と自問自答して色々調べたりすることも多いのですが、itoshoさんの発表ではその「良いコード」の一つの指針として、「Deep Module」という考え方があるということを紹介されていました。 発表の中で、良いコード=複雑ではないコードと定義して、多くの機能を提供しながらインターフェースがシンプルなモジュール(=Deep Module)を理想とするという指針を提示されていました。また、実際にDeepなModuleを実装するためのポイントや具体例もあり、とても参考になりました。 設計としての理想を追い求めるよりは、より現実に即した適用しやすい指針なのではないかと個人的には感じます。 Deep Moduleという視点も持って、会社のアプリケーションコードを読む&開発してみたいと思います。

もっと気軽にOSSにPRを出そう!

f:id:nazonohito51:20200217152657p:plain

DQNEOさん (@DQNEO) / Twitter もっと気軽にOSSにPRを出そう! - Speaker Deck

日々会社や個人で開発をしていて、OSSにお世話にならない場面はほとんどないと思います。 しかし、OSSへのコミットやPRを出すとなると、自分としては途端にハードルが高くなる気がしていました。

発表の中で、DQNEOさんもハードルの高さを指摘されていましたが、以下の4つの視点を持つことでPRを出しやすくなるとご紹介されていました。 1. 作者の関心ゾーンの外側を見る 2. 使っていなくてもコントリビュート 3. 業務で得たノウハウを横展開 4. ダメ元でも送ってみる

スキルアップなどももちろんですが、OSSに日頃お世話になっている「恩返し」として、自分でも微力ながら気軽にPRだしてみようと思います。 また、発表セッションのあとの懇親会でも、DQNEOさんには面白いお話をたくさん聞かせていただきました! ありがとうございました!

発表を聴く中で感じたこと

登壇に関して、人脈を作ったり市場価値を上げるなどいうよりも、単純にすごく楽しそうだし、沢山のエンジニアの皆さんとつながることができるのは、素晴らしい体験なんじゃないかなと感じました。 なにより、登壇されている皆さんが、発表をとても楽しんでいるのが印象的でした。

f:id:nazonohito51:20200217153002p:plain

途中で「なにかネタはないだろうか」と色々頭を巡らせていましたが、皆さんの発表を聴く中で、こうすれば発表できるトピックが作れるのではないかと考えました。

  • OSSにPRをだしてみる
  • 会社での経験・知識を一般化して横展開できないか考える
  • 自分のサービス開発を運用する
  • 技術ブログを書く

また、登壇された皆さんの発表がすごくわかりやすく、楽しめたのですが、聴講者目線で印象に残った登壇テクニック?をまとめてみました

  • 発表に入る前に、発表と関連する経歴や自己紹介があると、なんでこんなことをしているか、なんでこんな発表をしているかがわかりやすくて内容が入ってきやすくなる。
  • 他の発表との関連にも言及してみる。他の発表の知識が使えてより理解しやすくなる気がする。
  • 聴講者にフィードバックが欲しいところを発表の途中途中で伝えてもらえると、発表者にフィードバックしやすい。
  • 発表の中で聴講者に手を上げてもらうような質問をちょいちょい入れていくと、ライブ感がでる。

今後、発表する機会があったらぜひ実践してみたいと思います!

参加レポート (tenkoma)

基盤グループ所属の田中(@tenkoma)です。 3回目のPHPerKaigi参加となります。 参加したセッションの感想とPHPer Code Golf についてレポートします。

知らないWebアプリケーションの開発に途中からJOINしたとき、どこから切り込むか?

知らないWebアプリケーションの開発に途中からJOINしたとき、どこから切り込むか? / PHPerKaigi 2020 - Speaker Deck

セッションを聞いた理由

  • 自分が途中からプロジェクトに参加するときにどんな情報をあつめればいいのか、最近考えたことがない気がしたから
  • 新しくjoinしてくるメンバーをサポートするための良い方法が知りたかったから

でした。そんな疑問を考えるヒントが得られるよいセッションでした。

今だからこそ振り返る register_globals

今だからこそ振り返る register_globals / PHPerKaigi 2020 - Speaker Deck

セッションを聞いた理由

  • 最近のPHPって型(カタ)すぎませんか!?(型を使いすぎている、とか思っているわけではありません)
  • 「例えば、PHPを避ける」なんて言われていた時代に、少しの時間でも戻ってみたかった

僕がPHPを使い始めた頃は古くてPHP4.3 を使っていたくらいの時期で、register_globals = Off が既定値でした。register_globals = On のアプリケーションを扱ったことはありませんし、register_globals = On はセキュリティ上問題があるのでOffにするように社内情報共有されていました。 そのためこのセッションは、仕事に生かすかどうかも期待せず、ほぼ息抜きとして聴いたセッションでしたが、PHPの思想に触れることができる味わい深いセッションでした。

PHPer Code Golf by Pixiv

前回は全然参加できなかったな、今回はがんばってみようと思い、PHPerチャレンジでコードを探し入力していました。 しかし、1日目にPHPer Code Golf が始まってからは、そちらへの参加がメインになってしまいました。3問ありましたが、正解後もずっとコードを縮めることに注力した結果、表彰いただくくとができました。

正解するだけで無く、スコアを改善するためには途中のコードをどこかに保管しながらになるのですが、社内の #times_tenkoma にコードスニペットを投稿しながら改善していました。

1日目、帰宅後にベッドの上でFizzBuzzを改善していたときのログ f:id:nazonohito51:20200217152749p:plain

2日目、クロージング(17:10〜)の直前まで、上級編のコードを改善していたときのログ f:id:nazonohito51:20200217152800p:plain

PHPerチャレンジは11位という結果に終わり残念でしたが、こちらで結果が残せて良かったです。 PHPerKaigi はセッションやIRTはもちろん、懇親会、PHPerチャレンジなど、他の企画も力が入っていて楽しめました。

賞を頂いたときのコードについては個人のブログで⛳ PHPer Code Golf by pixiv(PHPerKaigi 2020) 上級編の回答について解説の記事を書きましたので、そちらもご覧ください。

登壇資料

めもりー @m3m0r7

金城 @o0h_

清水 @budougumi0617

東口 @hgsgtk

謝辞

今回弊社は登壇者含めて計9名のメンバーで参加させていただきまして、その中にはカンファレンス初参加のメンバーもございました。それぞれに刺激を受けたり、持ち帰れるものを得たりして大変実りのある時間を過ごさせていただきました。

それも実行委員長である長谷川さんをはじめ、実行委員会の皆様のおかげです。心より御礼申し上げます。来年の開催は未定とのことですが、心より楽しみにしております。誠にありがとうございました!