採択
2022/09/25 13:20〜
Track1
Long Session (60mins)
PHP Beginner 初心者向け

PHPの今とこれから2022

rui_hi 廣川類

今年11月にリリースされる予定のPHPの最新バージョン8.2における機能強化・変更点を中心にPHPの開発に関する最新の情報,PHPコミュニティに関する話題について紹介します.PHPの最新動向に興味がある方向けに,初心者の方にもわかりやすい解説にしたいと思います.

採択
2022/09/25 11:20〜
Track1
Long Session (60mins)

オンプレミスからパブリッククラウドへのサービスマイグレーション

rhack_commerce Rakuten Dream Service

オンプレミスにて提供しているサービスをパブリッククラウドへ載せ替える際に注意しながら取り組んだ点を紹介します。

また、私たちのサービス価値を維持するため、競合との競争力を失うわけにはいきません。
そのため、パブリッククラウドへマイグレーションを行うプロジェクトと並行しながら、
如何にサービス改善を行ったかを紹介します。

さらに、EOLを向かえたWebフレームワークを利用していたため、クラウド環境に移行するにあたり、SymfonyからLaravelへWebフレームワークのマイグレーションをいかに効率的に実施したのかも合わせて紹介します。

採択
2022/09/25 10:00〜
Track1
Long Session (60mins)

急成長3社サービスの開発ストーリー〜継続成長を支える技術と仕組みのお話〜

flexy_circu FLEXY CTO meetupスピーカーの方々 | FLEXY

本セッションでは、FLEXY(フレキシー)が定期開催しているオンラインイベント「CTO meetup」の出張特別編として、Makuake、BASE、pixivと国内トップクラスのサービスを展開する3社に登壇頂きます。

ユーザー数やサービス実績を伸ばし続ける3社が、安定的かつ継続的にプロダクト開発を進める上で工夫してきた点はどこか。
また、サービス拡大に伴い組織も大きく成長するなか、どのようにチームパフォーマンスを最大化させたのか。
PHPをはじめとする技術活用の手法から、外部人材活用や開発体制構築といった組織戦略の話まで、実践テクニックを語って頂きます。

Makuake
「生まれるべきものが生まれ 広がるべきものが広がり 残るべきものが残る世界の実現」をビジョンに掲げる、アタラシイものや体験の応援購入サービス。
会員数が約220万人(2022年7月時点)、Makuakeに掲載した各プロジェクトに対する応援購入総額は年間200億円規模と国内最大級の実績と人気を誇るプラットフォーム。
登壇者
CTO/生内 洋平さん
Twitter: https://twitter.com/ikunai

BASE
「ネットでお店を開くなら」でお馴染みとなっている、誰もが簡単にショップ開設できるネットショップ作成サービス。
充実した機能や使い勝手の良さから、5年連続ネットショップ開設実績No.1、累計180万以上のショップの開設実績を誇る。
登壇者
CTO/川口 将貴さん
Twitter: https://twitter.com/dmnlk

pixiv
イラスト、マンガ、小説作品の投稿プラットフォームで、今年9月にサービス開始から15周年を迎える。
昨年9月時点で登録ユーザー数7,100万人以上(うち半数近くが海外ユーザー)、累計投稿作品数1億超えという実績をもつ国内最大級のクリエイタープラットフォーム。
登壇者
開発リーダー/宇佐美 健太さん
Twitter: https://twitter.com/tadsan

採択
2022/09/24 10:00〜
Track1
Long Session (60mins)
Service Operation

17年続くWebサービスを改善する 〜新卒2年目からみるカラーミーショップ〜

GMOdev やんまー、ほみるん | GMOペパボ

PHP製の複数のサブシステムをもつWebサービスの開発運用の現場を、新卒2年目のWebアプリケーションエンジニアとSREが、2つの側面から紹介します。

  1. Webアプリケーションレイヤにおける改善の取り組み
    新しい機能開発と並行してWebサービスのレガシーな部分を継続的に改善する取り組みについて、Webアプリケーションエンジニアの側面から紹介します。

  2. カラーミーショップの改善におけるSRE活動について
    社内横断SRE組織が、カラーミーショップのエンジニアとともにWebサービスを改善するために行っている施策について紹介します。

Twitter:
やんまー: https://twitter.com/yammerjp
ほみるん: https://twitter.com/h0mirun_deux

採択
2022/09/25 14:40〜
Track1
Long Session (60mins)
Security Frontend

SPAセキュリティ超入門

ockeghem 徳丸浩

SPA(Single Page Application)の普及が一層進んでおり、従来型のMPAを知らないウェブ開発者も生まれつつあるようです。SPA対応のフレームワークでは基本的な脆弱性については対策機能が用意されていますが、それにも関わらず、脆弱性診断等で基本的な脆弱性が指摘されるケースはむしろ増えつつあります。
本セッションでは、LaravelとReactで開発したアプリケーションをモデルとして、SQLインジェクション、クロスサイトスクリプティング、認可制御不備等の脆弱性の実例を紹介しながら、現実的な対策について紹介します。LaravelやReact以外のフレームワーク利用者にも役立つ説明を心がけます。

Long Session (60mins)
Hardware

プログラムが動作するというのはどういうことか

tomzoh 長谷川智希

みなさんは普段からPHPやGo, JavaScript, Java などいろいろな言語でプログラムを書いて実行させていると思います。言語によってコンパイルの様な事前作業が必要だったり、書いたプログラムの実行方法が違ったり、実行速度が違ったりしますが、その違いはどこから来ているでしょうか。そしてそもそもプログラムを実行した時にコンピュータの中では何が起きているでしょうか。

このトークではみなさんがプログラムを実行した時のコンピュータの動作を電気回路から画面表示までに分けて解説します。
このトークを通じてCPUやその他のハードウェア、コンパイラなど「コンピュータの低レイヤ」と言われる領域に興味を持ち語り合える仲間が増えることを期待しています!

15
Long Session (60mins)
Test & Debug Beginner 初心者向け Framework

LaravelでTDDを体験しよう

omoon 大村創太郎

2021年6月に出版された「PHPフレームワーク Laravel Webアプリケーション開発 バージョン8.x対応」の11章「テスト駆動開発の実践」を、著者自らデモを交えて解説します。TDDを始めたいけれどどうやって始めたら良いのかわからない、実際にどんな感じになるのか想像ができないのでほんとに意味があるのかわからない、なんか面倒くさそう、など、TDDへの興味はあるけれどなかなか最初の一歩が踏み出せない、という方にぜひ見ていただきたいです。(2018年のPHPカンファレンスでのセッションをブラッシュアップし、2020年代のTDD初心者の皆さまに向けて改めてお送りします)

7
Long Session (60mins)
Database Service Operation

メールアドレスとアカウント管理の基礎に立ち返る

tadsan うさみけんた

現在多くのWebサービスではメールアドレスをIDとしてユーザー情報を管理しています。
このようなユーザーを管理するDB設計はWeb開発の基礎とも呼べるもので、多くのWebフレームワークも基本機能として備えています。

このようなサービス運用のためにいくつかの考慮事項があります。

  • ユーザーのメールアドレスの入力ミスによる機会逸失を防ぐ
  • 特定の条件のユーザーからの登録を阻止する

要約するとたった二点ですが、実際の要件はサービスの運用形態や提供したいユーザー体験に併せて様々に異なってきます。
たとえば、同じユーザーからの複数回の登録を許容しない、特定のドメインからの登録を禁止するなどです。

明確な要件に見えても、現実にはそう単純に実装できない要素がいくつもあります。
メールアドレスや関連仕様、DB製品とCollation、メール配信サービスプロバイダ、ユーザー認証プロバイダなども影響します。

今回のトークではメールバリデーションライブラリの実装を通じて、アカウント管理に必要な観点についてみつめなおしましょう。

9
Long Session (60mins)
Architecture

「三角形」という図形を題材にモデリングの練習をしよう!

okashoi おかしょい/岡田 正平

昨今ソフトウェア開発においてモデリングの重要性が解かれています。
ですがそれらは業務知識に結びついた話になりやすいです。
対象への理解がないと自分ごととして捉えづらい(ピンと来ない)でしょう。

そこで理解しやすい図形「三角形」を題材にし、共通認識をもったうえでモデリングの練習をしてみましょう。

7
採択
2022/09/24 14:40〜
Track2
Long Session (60mins)
Test & Debug Service Operation 🔰はじめての登壇

20年ものの巨大レガシープロダクトをPHP 8.0にアップデートした際の対策と得られた知見

赤間 仁志

サイボウズのGaroon(ガルーン)は今年で20周年を迎えるグループウェアです。
このセッションでは、20年にわたって開発が続いている巨大なレガシープロダクトのPHPバージョンを7.4から8.0にアップデートした際に得られた知見についてお話しします。

Garoonはさまざまな組織を支えるグループウェアであり、お客様の業務にまつわるデータをお預かりする性質上、セキュリティの確保が重要な課題です。
そのため毎年欠かさずにPHPのメジャー/マイナーアップデートを行い、常に最新のセキュリティ更新を取り込める状態を保っています。

しかしGaroonはPHP4系の時代から脈々と開発が続いているため、コードベースは巨大でありレガシーなコードが多分に含まれています。
さらにPHP本体にパッチを当てて自前でビルドしていることもあり、PHPのバージョンに対する依存度も高いです。
今年はPHP7.4からPHP8.0という影響の大きいアップデートを計画したため、約一年かけて準備を行なってきました。

その中で、比較演算子の問題をはじめとする、特に対処が困難であった以下のトピックについて詳しくお話しします。

  • 厳密でない比較演算子の挙動変化を検出する仕組みの作成
  • シリアライズされたデータに対する比較演算結果の保証
  • 標準ライブラリ関数の見落としやすい変更点

結果的に、紆余曲折ありつつもPHP8.0へのアップデートが完了できました。
GaroonのPHPをアップデートするために具体的にどのように準備をおこなったのか、またその中で得られた知見を共有することで、
これからPHP8系へのアップデートを行う方々の助けになれたら幸いです。

Long Session (60mins)
Framework

API Platformの世界へようこそ 〜導入から実戦投入まで〜

ttskch たつきち

API Platformは、SymfonyをベースとするPHP製のオープンソースAPIフレームワークです。
Symfonyアプリケーションにアトリビュート(アノテーション)を1行追加するだけで一瞬でREST APIとOpenAPIドキュメントを生成できてしまう優れもので、Symfonyのエコシステムにおいてはすでに決定版と言える存在となっています。

しかしながら、ある程度以上複雑なことをしようとすると途端にフレームワークについての深い理解が求められたり、痒いところに手が届かず強引なワークアラウンドが必要になったりするという面もあり、入門と実戦の間には大きな隔たりがあるように思います。

このトークでは、まずはAPI Platformの導入方法から、Data Provider・カスタムコントローラ・Data Persisterといった重要な基本機能の概要までを、実際に動作するデモをお見せしながら丁寧にご紹介し、さらに、よくあるユースケースで必要になるワークアラウンドなど、実戦投入に向けた実装のテクニックをお伝えします。

API Platformの実戦投入、あるいはその検討の一助になれば幸いです!

4
採択
2022/09/24 16:00〜
Track1
Long Session (60mins)
PHP

いちユーザーが PHP に新機能を追加するまで - Random Extension 5.x

zeriyoshi Go Kudo

PHP では言語に対する変更に対し必ず RFC (Request for Comments) 文章を作成し、投票で一定数以上の票を獲得する必要があります。
またその提案に対する議論は必ず Internals ML と呼ばれるメーリングリストにて英語で行う必要があります。

上記のようなハードルの高さからか、比較的 PHP の利用率が高い日本からの新機能の提案、実装の例は少ない印象ですが、実際にやってみるとどうなのでしょうか。

今回は RFC を作成、実装し、 PHP 8.2 で実装が決まった Random Extension 5.x を例に PHP への新機能追加・変更を行っていくまでの道のりについてお話できればと思います。

採択
2022/09/24 11:20〜
Track3
Long Session (60mins)
PHP Beginner 初心者向け

PHP初心者セッション2022

kashioka 柏岡秀男

PHPカンファレンスの初期の頃から続けている初心者向けのセッションです。

PHPとはどんな言語か
PHPの実行環境にはどんなものがあるか
スクラッチでのPHPの書き方の基本

このセッションをお聞きいただけると手元で簡単なPHPのコードを実行することが出来るようになります。

・対象となる方
このセッションではPHPを普段使われていない方、プログラミングを始めて間もない方を対象としています。
・対象とならない方
ご自分でマニュアルを見て環境設定、プログラミングが出来る方は対象外です。

採択
2022/09/25 14:40〜
Track2
Long Session (60mins)
Architecture Framework

Modularising the Monolith

avosalmon Ryuta Hamasaki

様々なロジックが密に結合したモノリシックなアプリケーションは開発速度を遅くする一方で、マイクロサービスアーキテクチャはサービス間のコミュニケーションやトランザクションなどといった別の課題があります。
モジュラーモノリスは、モノリシックなアプリケーションの中にドメイン境界を引いて疎結合な状態をつくる、モノリスとマイクロサービスの中間的なアーキテクチャです。

このトークでは、モジュラーモノリスをLaravelアプリケーションに適用する方法を具体例を用いながら紹介します。Laravelを例にしていますが、他のフレームワークにも適用できる内容です。

Laracon Onlineで話した内容に少し付け加えて日本語で話します。
https://www.youtube.com/watch?v=0Rq-yHAwYjQ&t=4057s

トーク内容

  • モノリスとマイクロサービスのメリット・デメリット
  • モジュラーモノリスとは
  • Laravelアプリケーションのディレクトリ構造をドメインごとにモジュール化
  • ドメイン間のコミュニケーション
  • モジュラーモノリスなアプリケーションのテスト
  • ドメイン境界を超えたコードの自動検知
採択
2022/09/24 13:20〜
Track3
Long Session (60mins)
PHP Architecture Beginner 初心者向け

フラットなPHPからオブジェクト指向で自動テストのあるPHPへ、そしてフレームワークへ

77web 菱田 裕美

フラットなPHPの書き方はわかった、では次はフレームワークへ…というとき、どんな基準でフレームワークを選んでいますか?なぜそのフレームワークを使ってアプリケーションを書くと良いのか、理解できていますか?堅牢でメンテナブルなアプリケーションを作るとき、なぜフラットなPHPでは難しいのでしょうか?
入門書や動画講座でPHPの基本文法を学んだあと、盲目的に次のステップとしてフレームワークを学習するのではなく、必要性を実感した上でフレームワークを学習してほしい、と私は常々考えています。
このトークではフラットなペラ1枚のPHPスクリプトから出発して、オブジェクト指向で自動テストのできるPHPアプリケーションへ、そして更にフレームワークを使ったアプリケーションになるまで、コードと考え方をお話しします。

◆含まれるもの

  • PHPのオブジェクト指向の用語と書き方
  • ありふれたスクリプトの中に埋め込まれた「仕事」の発見と整理の考え方
  • PHPUnitを使った自動テストの基本
  • Symfonyフレームワークを使ってHTTPリクエストを受け取ってHTTPレスポンスを返すまで

◆含まないもの

  • データベース操作
  • テーブル設計
  • Laravelフレームワークの使い方
Long Session (60mins)
Team & Communication

真にアジャイルな開発チームになるために 〜プラクティスを実践する〜

Panda_Program プログラミングをするパンダ

■ 発表内容
チーム開発に効果的なアジャイルのプラクティスとその実践例を紹介します。

■ ストーリー
「ゴールデンウィーク明けまでにこの機能を作ってほしい」と社内向けの新規機能の開発を任されたとあるチーム。このチームは4月頭に組成されたばかりであり、開発する機能はビジネスの成長ドライバーになることを期待されている。期間は1ヶ月しかない。ただし、その1ヶ月に根拠はない。

チームの構成はプロダクトオーナー1名、エンジニアマネージャー1名、エンジニア6名。不確実性に対処しつつ円滑にリリースを行うべく、アジャイルのプラクティスを実践して開発に立ち向かっている(6月上旬にリリース予定日が立てられて、6月下旬にその日通りにリリースできた)。確かに当初の予定よりは遅れている。

しかし、チームのエンジニアの誰一人として疲弊しきっていない。むしろ、組織の中で偉いAさんは「遅れていても、着実に進んでいることがわかる上に、遅れの理由が納得できるので安心感がある」と言い、スクラムマスターBさんは「このチームではスクラムがうまく回っている。もしそうでなければ、リリースはさらに1ヶ月以上遅れていただろう」と述べている。

なぜそれが可能なのか。何がうまくいっているのか。チームで実践したアジャイルのプラクティスとその実践例を紹介します。

■ 発表内で登場するキーワード(予定)

  • DevOps → セキュリティのシフトレフト、トランクベース開発、同期レビュー、継続的なデリバリ
  • XP → 全員同席、ペア・モブプログラミング、TDD、インクリメンタルな設計、コードの共有、本物の顧客参加
  • スクラム → プロダクトバックログ、プロダクトレビュー
  • 実装 → クリーンアーキテクチャ、戦術的DDD
  • その他 → 荒ぶる四天王(時間・スコープ・予算・品質)、リファクタリング、イテレーション、フィードバックサイクル
12
採択
2022/09/25 14:40〜
Track3
Long Session (60mins)
Team & Communication Troubleshooting

エラーと向き合い、自信を持ってサービス開発に取り組み、前に進む

o0h_ きんじょうひでき

アプリケーション開発をしていると、どうしても不具合は生まれます。
バグ、障害、故障、エラー…近接する概念が色々とありますが、その中でも「プログラムetcの修正で修復できるもの・根治できるもの」が確かに存在します。

実際の所、皆さんのサービスで、それらはどのくらい発生しているでしょうか?その内、直せるはずの「バグ」「欠陥」はどのくらいあるでしょうか?
パッと答えが浮かばない、という方も多いと思います。
どうやってこの状況を脱していきますか。

とにもかくにも、「可視化」「現実的な目標」「コントロール可能な状況を作る」「割れ窓状態を脱する」のが重要だと思います。
そして、それに勝るとも劣らず「なぜ、エラーを少ない状態を実現したいのか。そこにどんな価値があるのか」という認識の統一も欠かせません。
チーム全体を方向づけ、小さな実践を押し進めながら「それらは夢物語なんかじゃない」と勇気づけるような成果を上げていきましょう。

本セッションでは、まずは「エラーやバグがもたらす不経済」について説明します。併せて「なぜ、検知と修復を急ぎたいのか」「遅れが何をもたらすか」も扱います。
その後に、自身の体験も踏まえながら「どうやって・何を努力していき、チーム一丸となって”エラーを減らす”を実現していくか」について共有します。

想定するオーディエンス

  • 「エラーを減らしたいな」「バグを減らしたいな」という気持ちのある人
    • もしくは「減らせるのだろうか」と気にしたこともなかった人
    • とはいえ「ガチガチのレギュレーション」や「窮屈さ」は望んでいない人
  • チームの生産性に課題を感じている人、向上させたいと考えている人

本セッションで得られるもの

  • 「なぜエラーを減らしたいか」の理論的な背景、根拠となりそうな情報
  • 組織として、どのようにエラーやバグを減らしていくか?という導入-出口の戦略
  • アプリケーションエラートラッキングツールの活用方針
    • Sentryの利用を想定しています

本セッションで話さないこと

  • アーキテクチャや「良いコードの書き方」といった、品質面の話

関連リンク、参考書籍