コネヒト開発者ブログ

コネヒト開発者ブログ

CakePHPの国際カンファレンス「CakeFest Virtual 2021」に登壇してきました!

こんにちは。CTOをやっている@itoshoです。コネヒトではここ1ヶ月でiOSDCやAWS Dev Day、PHPカンファレンス、PyCon JPと大きなカンファレンスへの登壇が続いています( ・∀・)イイ!!

というわけで、僕も負けじ?と「CakeFest Virtual 2021」に登壇してきたのでその様子をお届けしたいと思います。

CakeFest Virtual 2021とは?

CakeFestはPHPのフレームワークであるCakePHPの国際カンファレンスで、今年は昨年に引き続きオンラインで開催されました。構成としては初日にCakePHPのコアメンバーによるワークショップが開催され、2日目にカンファレンス形式で世界各国のエンジニアからの発表が行われました。

イベントの規模は、公式発表ではないので推測になりますが、2日目のカンファレンスは常時100人前後の方が参加していたと思います。雰囲気としては、オンラインということもあり参加者同士のコミュニケーションはそこまで多くはありませんでしたが、それでも2019年に日本で開催された時と同様にアットホームな空気が終始流れており、CakePHPのコミュニティの温かさを改めて感じることが出来ました。

tech.connehito.com

登壇内容「Components Reconsidered」

僕は「Components Reconsidered」(邦題: Component再考)というテーマで登壇をしました。CakePHPにはComponentと呼ばれるMVCモデルにおけるController層の共通処理をまとめたり、拡張したりする仕組みがあります。Component自体は非常に便利なのですが、CakePHP4.2からDIコンテナが実装されたこともあり、今後Componentの出番はより限定的になっていくのではないか?という問題意識がありました。

ですので、このセッションではComponentの機能やユースケースをおさらいしながら、代替方法の検討(具体的にはTraitやDIを取り上げました)を行い、その上でそれぞれの使い分けをどうするかといったことをお話させていただきました。

詳しくは以下のスライドをご覧ください。

speakerdeck.com

疎い英語で恐縮ですが、動画も公開されています。*1

www.youtube.com

登壇後の反応

内容的に明確な答えがあるテーマではなく、個々人のスタンスや環境に依る部分も大きいため、ドキドキしていたのですが、当日Slackに寄せられた反応をみる限り、概ね好評だったように思います。*2

特にCakePHPのLead DeveloperであるMark StoryさんとCore MemberであるAdmadさんからポジティブなフィードバックをいただけたのは自信になりました。

f:id:itosho525:20211016002114p:plainf:id:itosho525:20211016002046p:plain
コアコミッターからのフィードバック

英語での発表

英語での登壇では2年前のCakeFestで一度経験済みなのですが、今回は前回以上に緊張しました。前回は日本開催で翻訳者の方もいたので何とかなる感があったのですが、今回はそういった助け舟もない状態だったので、登壇が決まったタイミングから当日までずっと変なプレッシャーがありました。

その中でもCakePHPのコミュニティマネージャーの方が事前にリハーサルを丁寧に行ってくださったのと、同じ日本人である @yakitori009 さんが登壇仲間だったのは心強かったです。

準備としては、①サンプルコードの作成→②スライドの作成(英語)→③トークスクリプトの作成(日本語)→④トークスクリプトの翻訳(英語)→⑤ひたすら練習という流れで行いました。少なく見積もっても、国内のカンファレンスで登壇するときの5倍は準備に時間がかかりました。

ちなみにこのあたりは前回ブログにまとめたものがあるので、興味がある方はご覧ください。

itosho525.hatenablog.com

前回との差分で言うと、前回よりも技術的に突っ込んだ内容だったので、④の翻訳作業は識者(英語とソフトウェア開発双方に詳しい方)の方にご協力をいただきました。*3

また、英会話についてはコロナ渦ということもあり、数ヶ月からCAMBLYを頑張っています。あとは、DeepLに死ぬほどお世話になりました。ありがとうDeepL。

面白かったセッション3選

開催時間が日本時間の深夜ということもあり、全てのセッションをリアルタイムで観れたわけではないのですが、その中で個人的に特に面白かったセッションを3つ紹介します。

  • Workshop 3 - Mark Story
    • CakePHP4.3からfixtureの仕様が変わる(スキーマ管理とテストデータが分離される)のですが、具体的な変更内容を知ることが出来てよかったです
  • Fighting COVID-19 with Contact Tracing in Czech Republic
    • チェコでのCOVID-19対策事例の話で、CakePHP製の接触者追跡システムがダイレクトに社会の役に立っている話がエモくて最高でした
  • Our Standards and Why We Use Them
    • Jump24社で採用されている規約の話なのですが、コード例が多くて、1コントローラー1アクションにしてるんだとかリポジトリパターン採用してるんだとかが垣間みれて参考になりました

全てのセッションのスライドや動画はこちらにまとまっています。

cakefest.org

まとめ

正直、英語での発表は準備含めてとても大変ではあるのですが、その分学びも多かったです。やはり一人のエンジニアとして広い世界で勝負していきたいので、引き続きチャンスがあればどんどん登壇していきたいなと思っていますし、コロナが落ち着いたら実際に海外に行って、各国のエンジニアともっと対話したいなぁと改めて思いました。

また、冒頭にも述べた通り、CakePHPのコミュニティの温かさは本当に素晴らしく、海外カンファレンスの参加や登壇はCakeFestからはじめるのが一番よいのでは?と思えるぐらいですので、皆さんも是非来年のCakeFestに参加してみてください!

そして、僕も微力ながら、CakePHPのコミュニティに貢献していければと思っています。

技術コミュニティに貢献したいエンジニア募集中!

コネヒトでは「Beyond a Tech Company」というテックビジョンを掲げているのですが、テックカンパニーの条件の一つとして「技術コミュニティの発展に貢献している」ということを重要視しています。

というわけで、コネヒトではプロダクト開発だけではなく、OSS貢献やカンファレンス登壇などアウトプットが好きなエンジニアを大大大募集しております!

1mmでも興味がありましたら、まずはカジュアルにお話させてください。

meety.net

*1:機会があれば、日本語でも再演したいなと思っています…!

*2:CakePHPの公式Slackは http://cakesf.herokuapp.com から参加出来ます。また、今回のイベントは #cakefest チャンネルからその様子を伺うことが出来ます。

*3:前回も社内外からご協力をいただいたのですが、前回はどちらかというと英語のレビューが主でした。