2024 年,各地で PHP カンファレンスが開かれ,2025 年の下準備として PHP 勉強会を小規模に開催する都市もありました.しかし,小さな街で開く PHP に対象を絞った勉強会では,十分に人が集まらず,存続不能になってしまうことも少なくありません.
第一に守るべきは PHPer リーチャブルな空間をつくることです.勉強会の形式やテーマを絞っている場合ではありません.PHPer と会えて,話ができ,情報交換できることが肝要です.Slack こそありますが,情報を欲する全員がそこに自力で到達できるわけではありません.そこに連れていく PHPer が必要なのです.
そこで,ここに来たみなさんが日本の 1,724 市町村※のどこにいても技術系勉強会が開けるよう,そして維持できるよう,どんな小さな街でも勉強会を続けられる最小のノウハウをお話します.
※ 北方領土の 6 村を含める
このセッションではPHPで作成したアプリケーションをVercelにデプロイする方法を紹介します。
Vercelは「Vercel のフロントエンド クラウドは、開発者にフレームワーク、ワークフロー、インフラストラクチャを提供し、より高速でパーソナライズされた Web を構築します。」(X:@vercelより引用)で、PHPのイメージはありませんが、PHPのアプリケーションをデプロイすることができます。
また、VercelにはVercel PostgresというPostgreSQL(データベース)を提供するサービスもあります。PHPとVercel Postgresを用いてアプリケーションを作成し、Vercelで公開することができます。
このセッションでは、VerceでPHPを用いたアプロケーションを公開する方法とVercel Postgreの紹介をします。
「コンピュータは0と1しか処理できない」とよく言われています。
ビット演算があったり、浮動小数点演算があったり、文字コードが16進数だったりと、PHPerのみなさんもなんとなく実感としてはあると思いますが、なぜ「0と1しか処理できない」のでしょうか。
このトークではアナログの世界・電気回路でデジタルの世界・コンピュータ処理がどの様に表現されるのか、私たちがC言語やPHPで書いたプログラムの実行結果がディスプレイやスピーカーで認識できるところまでがどの様にできているかをお話します。
ふだんの活動ではあまり気にすることのないコンピュータの基本的な仕組みの話になりますが、このトークを聞いたみなさんが今までより少し解像度の上がった目でコンピュータを楽しめることを願っています。
今までバッチ処理について雰囲気でやってきていませんか?僕は少なくとも雰囲気でやってきました。
もちろんバッチ処理なしで実装できるに越したことはありませんが、運用としてすでにそうなっているところも多いのではないでしょうか?
実際そんなに困ることねーし・・・!とそう思っていたそのとき!困る時がやってきます・・・。(震え声)
基本的にバッチ処理を避けた方が良いパターンについて言及しつつ、バッチ処理が必要な際にどのようなことを考えれば良いのか?どう見直す道筋を立てるのか?
TechTrainで実装するときに失敗したな・・・。と思った経験を踏まえてお話しします。
対象者
すでにバッチ処理があるが、どう見直したら良いのかわからない方
なんかバッチ処理でいけそう!と初手で考えてしまう方
バッチ処理書いてみたんだけど、良いのかわからない方
私が主宰するカンファレンスではSNSアイコンが印刷された名札をご用意しています。
この名札は「バリアブル印刷」といって印刷所に「このIllustratorデータをテンプレートにしてココにアイコンをココに名前を入れて下さい」的にお願いして作っていますが、なかなかツラく時間がかかる作業です。
今年3月に開催されたPHPerKaigi 2024ではカンファレンス運営支援ツールforteeに名札生成機能を実装し、印刷所への依頼から作業完了までの日数を3営業日まで縮めることができました。
このトークでは印刷所に入稿できる名札データをPHPでいかにして作るかをお話しします。透明色入りPDFデータ、CMYK変換、フォント埋込など、泥臭く手探りの世界でどう苦しみ、どう解決したかをお楽しみください。
2024年1月、「なぜキャッシュメモリは速いのか」が話題になりました。
この質問に答えるのはなかなか難しいのですが近年のコンピュータの高速化はすべてキャッシュによるものと言っても過言ではないぐらいキャッシュは重要な技術です。
このトークでは「なぜキャッシュメモリは速いのか」の説明から、なぜキャッシュが必須の存在なのか、そしてキャッシュが引き起こすCPUの脆弱性について初心者の方にもわかりやすくご説明します。
コンピュータアーキテクチャの勉強、というよりはキャッシュを取り巻くハートウォーミングストーリーを聴きに来るつもりでいらしてください。きっと「CPU脆弱性って言っても思ったより難しくないな」「おもしろいな」と思って頂けると思います。
近年、動的型のプログラミング言語(型なしとも呼ばれる)を実行せずに検査してソースコード上の問題を発見する試みが盛んです。
型なし言語に型をつけるとは撞着語法もいいところですが、TypeScriptをはじめとして、Ruby、Python、そしてPHPにおいてはPHPStanというツールが普及しつつあります。
今回のトークでは主にPHPStanが提供する型機能について、以下のような内容をお話しします。
このセッションでは、FrankenPHPにおけるPHPの稼働方法とその高速性の理由について解説します。以下のポイントを中心に進めます。
• FrankenPHPの概要: FrankenPHPの基本構造と仕組みを説明し、他のPHPランタイムと比較してどのように異なるかを紹介します。
• PHPの稼働メカニズム: FrankenPHPでPHPがどのように実行されるか、そのプロセスフローを詳述します。
• 高速性の理由: FrankenPHPが高速である理由を技術的な観点から解説します。
対象者
• 高速なPHP実行環境を求めている方
• ウェブアプリケーションのパフォーマンス最適化に関心がある方
• FrankenPHPに関心がある方
このセッションでは、iOSデバイス上でPHP開発環境を効率的に構築するためのベストプラクティスを紹介します。以下のポイントを中心に話します。
•主要ツールとアプリ: iOSで利用可能なPHP開発向けのエディタ、SSHクライアント、データベース管理ツールの紹介
•設定方法: PHP開発環境の基本設定手順と必要なアプリのインストール方法
•リモート開発環境: リモートサーバーに接続する方法、VPNやSSHを使った開発ワークフローの構築
•実践的なテクニック: 効率的な作業を支えるテクニックやトラブルシューティングの方法
•コンテナ技術: Dockerなどを利用した仮想的なPHP開発環境の構築方法
対象者
•WebアプリケーションやAPIを開発している
•ノートPCなしでiOSデバイスを使いたい
•オフィス外での開発環境を最適化したい
このセッションでは、実際に運用されているTechTrainというサービスにおけるLaravelの認証システムをAWS Cognitoに移行する際に注意したポイントについて詳しく解説します。
•移行前の状態がどういう状態だったのか?
•LaravelからCognitoへの認証フローの変更点とその影響
•AWS Cognitoの設定で気をつけたこと
•既存のパスワードなどをどう移行するのか
•Auth0とどう使い分けるのか
•CognitoとGitHubの連携をどう実装するのか
対象者
• Laravelで認証システムを構築している方
• JWTやOIDCについて知ってるけど、どうやって実装するんだっけ?と思っている方
• Cognitoを利用を検討している方
Laravel認証からAWS Cognitoへの移行を成功させるための実践的な知見としくじりを提供します
画面開発で、こんなお悩みを抱えていませんか?
これらの課題が原因で開発効率が低下しモチベーションも低下してしまいました。その解決策の一手として、デザインシステムの導入を進めました。
今回は、すでに存在していたデザインリニューアルのデザイン案をベースに、プロダクトにデザインシステムをうまく反映できていなかった状況から、仕組みを整備して導入を進めるまでの一連の取り組みをお話します。
せっかく作ったアプリがデプロイしても動かない、許可しているはずの通信がなぜか通らない、逆に許可していないはずの通信がなぜか通ってしまう、インターネットに出られない、そしてこの種のデバッグはかなり辛い…!
多数のコンポーネントが組み合わさって動作するクラウドの世界において、設定不備を発見したり修正したりする作業は、どうしてもエンジニア個人の経験と勘に依存しがちです。では、誰でも手軽に扱えて、かつ「マネジメントコンソールを目 grep」以上に体系的なトラブルシューティングは不可能なのでしょうか?
本講演では「正確だが柔軟性の低い数理論理学ベースの検査」と「柔軟だが正確性の低い生成 AI」の両方を利用することで、より確実で効率的なトラブルシューティングを実現する方法をお話しします。背景となる数学的な理論や論文にも触れながら、AWS 環境におけるデモを交えて解説したいと思います。
このセッションではPHPのマイクロサービスアーキテクチャにおける分散トランザクション管理の新たな方法として、
アクターモデル/Phluxorを使ったSagaパターンの実装を紹介します。
データ整合性の維持やレジリエンス向上に役立つ、実践的なアプローチを実装コードを交えて解説します。
アクターモデルによるメッセージングや、アクターによる振る舞いの変更、
ステート管理やSupervisionの活用、永続化などを用いて詳しく解説します。
複雑なワークフローをシンプルにし、スケーラビリティとフォールトトレランスを向上させる具体的な手法を習得しましょう!
『自分がJOINしたチームで障害がよく起きていてチームが大変そうにしているときにどうしますか?』
私の場合はサービス監視・オブザーバビリティがこのチームに必要なことだと考え推進してきました。
そしてその結果、障害は減りチームは機能開発も安定して行える状態になることができました。
このトークでは、
背景
あるプロジェクトでたくさんの障害を発生させてしまった。。。
障害はユーザーに迷惑をかけてしまうし、エンジニアのメンタルが削られるし、進行中のスケジュールを圧迫する。全然いいことがない。障害はこの世から無くなって欲しい。せめて減らしたい。。。
そんな思いから開発プロセスを見直す動きが社内で生まれました。
本LTでは障害予防のために実際にチームで実施している取り組みやどんなテスト観点表を利用しているのか紹介します。
障害を少しでも減らしたい、自分のチームに見合ったプロセスをカスタマイズしたいと同じ悩みを抱えているPHPerの皆さんにお伝えできれば幸いです!
チームが納得感を持つことで、自然にモチベーションが上がり、協力が深まります。
本LTでは、ファシリテーションを通してチームの合意形成をスムーズにし、全員が納得して前に進めるためのコツや心がけていることを紹介します。
意見を引き出すタイミングや、雰囲気作りの工夫など、誰でもすぐに実践できる方法をお伝えします。
こんな人におすすめ
・チームでファシリする機会が多い人
・ファシリに苦手意識がある人
Symfonyでは、設定にアトリビュートを利用することが増え、コードがよりシンプルでわかりやすく管理できるようになってきています。
このセッションでは、アトリビュートを使った設定の種類を紹介し、従来の設定方法と比較しながらSymfonyでのモダンな開発や利便性の向上について解説します。
「いや〜、思ってた以上に時間かかっちゃいました...」
こんな報告、したことありませんか? 私は何度もあります。でも、これって「見積もりが下手」なんじゃなくて、「自分の実力の解像度が低い」だけかもしれません。
このセッションでは、野球選手が素振りで体の動きを意識するように、タスクと自分の実力の解像度を上げるための反復練習法を紹介します。
おしながき
「見積もりが外れる→反省する」で終わらせず、「なぜ外れたか」を深掘りして次に活かす具体的な方法をお伝えします。地道だけど、確実に成長できる練習方法を一緒に考えましょう!
我々はのチームはつい最近結成されたら新チームです。チームも未熟でありながら何を作るかも決まっていませんでした。
そんなチームが顧客の要望に応えたい気持ちはあるものの人手も多いわけではないのでできることは限られます。
しかしこのチームが爆速にプロダクト開発をしています。
どんどん動くものができており、スプリントを進めるたびに機能は増えていき、スプリントレビューで改善のフィードバックをもらっています。
どのように開発を進めているのか、意識していること、テクニック、秘訣を教えます!
プロダクトにバージョン番号ってつけていますか?
どのバージョンで不具合が起きたかなど、バージョン番号をつけておくと運用や開発管理がしやすくなります。
もちろん、われわれもバージョン管理を行なっています。
しかし、セマンティックバージョニングを導入したために、思ってもいない困難が待ち受けていました。
このセッションでは、セマンティックバージョニングから脱却するために行った、『バージョン管理のリファクタリング』について、行なったことやビフォーアフターについてご紹介していきます。