レギュラートーク(20分)

財務諸表とFour Keysから「組織のパフォーマンス」を考えてみよう

isanasan_ いさな

DORAによる調査、State of DevOpsが定義し、書籍「LeanとDevOpsの科学」の広まりと共に浸透したFour Keysという指標は、ソフトウェアデリバリのパフォーマンスを示すだけでなく、組織そのもののパフォーマンスに因果関係があると知られています。

ところで、この「組織そのもののパフォーマンス」というのは一体なんのことなのでしょうか?
本トークでは、「組織そのもののパフォーマンス」を財務諸表の観点から眺めることでFour Keysとの関連性を考えてみようと思います。

13
採択
2023/03/24 15:50〜
Track A
レギュラートーク(20分)

クローズドなサービスをIdentity-Aware Proxyを使って安全に公開する

■ 背景
サービスの管理用システムや社内専用システムはどの様にアクセスを制限していますか?
外部からアクセスができないよう会社のIPアドレス限定でアクセス許可を行う形が多いかなと思います。
しかし、これでは在宅勤務時など社外からアクセスできない弊害が……。
そこで、Google CloudのIdentity-Aware Proxy(IAP)を利用し、クローズドなサービスにどこからでも安全にアクセスできるようにします。

■ お話すること
・IAPを活用してサービスを守りつつ、安全にクローズドなサービスを公開していくための構成やポイントをお話します。
・IAPで認証されたことを前提に、パスワードレスで利用できるサービスとしたPHPのコードも交えてお話していきます。

■ 前提
・Google Cloudを利用した構成についてのお話です
・Googleアカウントを使った認証をベースにお話します

採択
2023/03/24 12:55〜
Track B
レギュラートーク(20分)
オンライン登壇

時間を気にせず普通にカンニングもしつつ ISUCON12 本選問題を PHP でやってみる

sji_ch sji

ISUCON は「いい感じにスピードアップコンテスト」の略で、ほぼ同様の処理をするよう作られた Web サービスの参考実装が複数の言語で用意され、参加者は競技中好きな言語を選んでその性能改善をしていきます。2022 年に実施された ISUCON12 の本選参加チームには PHP は使われなかったのですが、参考実装はきちんと存在しています。

このトークでは ISUCON12 本選問題の PHP 参考実装を使い、時間制限を気にせず、本選参加者の感想ブログの取り組みを平然とパクりつつ、PHP でどこまでスコアが伸びるか試した際の知見をお話します。

PHP はサービスをいい感じにスピードアップするのには不向きなのでしょうか。Go のような本選常連組の言語にはかなわないのでしょうか。それとも、本選で良い成績を残した他言語の参加者と同じ取り組みをすれば、同じようなスコアが出せるものなのでしょうか。

採択
2023/03/24 16:25〜
Track B
レギュラートーク(20分)

サービスと共にチームも成長する〜New Relicを利用したサービスとチームの定量化〜

ohiro88 大塚 ひろき

我々のチームではサービスのメトリクス監視であったり、パフォーマンス可視化にNew Relicを活用しています。
また、開発プロセスの改善や活動量からエンジニアを評価出来る環境作りのために、開発チームのパフォーマンスをNew Relicで可視化、活用しています。
本トークでは、サービスのパフォーマンス可視化だけではなく、開発チームのパフォーマンス可視化も行えるNew Relicについて、弊社の活用事例を時にはコードレベルまで掘り下げながら紹介させていただきます。
サービスや開発組織のパフォーマンスの可視化にご興味のある方々に響くトークをさせていただきます!

採択
2023/03/24 15:50〜
Track B
レギュラートーク(20分)

CodeCrafters にチャレンジして PHP で Redis を作ってみる

gennei げんえい

みなさんは CodeCrafters というサイトを知っていますか?
このサイトは少し複雑なソフトウェアを作りながらプログラミングを学ぶことができるサイトです。
このサイトではRedisやDockerコマンド、SQLite などの基本的な機能を作るような練習問題があります

Redisを作る課題にチャレンジしました。そこで学んだことを話そうとおもいます。

■話すこと
・CodeCraftersってどんなサイトなのか
・CodeCrafters で Redis を作る手順について
・Redisのプロトコル(RESP)について

■ターゲット
・PHPの基本的な文法はわかるけど次に何をするか悩んでいる人
・PHP以外の言語でなにか作りたいけど作りたいものがない人

レギュラートーク(20分)

アーキテクチャメトリクス入門 ~アプリケーションの現状を正しく把握して効果的な改善をはじめよう~

isanasan_ いさな

ソフトウェア開発の現場に限らず、あらゆる改善活動において「正確な現状把握」は必要不可欠です。
パフォーマンスチューニングはその代表的な例でしょう。
では、リアーキテクチャリングやリファクタリングなどの改善においては、どのように「正確な現状把握」を行えばよいのでしょうか??
本トークでは、アーキテクチャの「正確な現状把握」に役立つアーキテクチャメトリクスという概念をご紹介し、後半ではPHPのアプリケーションで使えるツールをご紹介します。

本トークでお話しすること

  • アーキテクチャメトリクスの概要
  • PHPのアプリケーションで使える計測ツールの紹介
6
レギュラートーク(20分)

PHPで使えるメトリクス計測ツール全部試してみた

hanhan1978 富所 亮

"Lean と DevOpsの科学" で有名になった Four Keys など、最近はメトリクスという言葉をよく聞くようになりました。
ソフトウェアの改善においては、まずメトリクスを計測し、KPI を定め、改善を進めるのが王道です。
ところで、PHP のウェブアプリケーション開発で使えるメトリクス計測ツールは、どれくらいあって、何の指標が測れるのでしょうか?
一通り目についた計測ツールを試してみて、その結果をまとめてみます。

本トークで話すこと

  • 2023年3月現在の計測ツール一覧
  • ソフトウェア改善で使えそうな "おすすめの計測ツール"
13
採択
2023/03/24 10:40〜
Track A
レギュラートーク(20分)

PHPで学ぶ "Cacheの距離" の話

hanhan1978 富所 亮

ウェブアプリケーションが思ったほど速度が出ないときに、"Cache"を利用することは多いかと思います。 例えば、実行時間のかかる SQL クエリの結果を "Cache" したり、複雑な計算処理の結果を "Cache" したりです。
しかし、パフォーマンスが上がるはずなのに、思ったほど効果がでないということがあります。そんなときは、"Cache" の基本に立ち返って、理詰めで考えてみることをおすすめします。

本トークで話すこと

  • Cache とは何か、どのようなときに利用するのか
  • Cache によって、改善されるものは何なのか
  • PHP において利用可能な Cache の種類と効果
  • ウェブアプリケーションのベンチマーク結果
レギュラートーク(20分)

新サービスリリースで培われた開発ノウハウをご紹介!

AkitoTsukahara AkitoTsukahara

弊社は11月に新しいサービスをリリースいたしました!
約半年間という限られた期間の中で2つ目のサービスを開発することは、試行錯誤と学びの連続でした。皆さんも新サービス開発時にAPI設計や既存サービスとの棲み分けに頭を悩ませたことはありませんか?
この登壇では新サービスリリースまでに蓄積された開発ノウハウをご紹介できればと思います。

▼お伝えしたい開発ノウハウ

・新サービスAPIの設計、構築
・既存サービスとの棲み分け
 ・ログイン、メール基盤
・その他
 ・feature flag運用
 ・リリース前後の準備

6
採択
2023/03/24 16:25〜
Track A
レギュラートーク(20分)

パフォーマンスを改善せよ!大規模システム改修の仕事の進め方

taclose 前田啓佑

『パフォーマンスを改善せよ!』突如下された指令...あなたはこのミッションをクリアしなくてはなりません。
しかし、「方法論を知っていても実施困難」「改善効果が測りにくい」「予測を立てづらい」などの様々な課題を抱えているのが実情です。
では、効率的に確実にこのミッションを遂行するにはどうすればよいのか?

すぱらしいソフトウェアのお医者さん、ロブ・パイクは言いました。「推測するな、計測せよ。」 なんかかっこいい。

このトークでは、この格言の通りにパフォーマンス改善に挑んだ実話を基に「効率的な正しいアプローチ」「パフォーマンス改善方法」をご紹介させてもらいます。

■話さない内容
・詳細なツールの使い方
・解析結果の読み方

■主な内容

・パフォーマンス改善方法の紹介
・パフォーマンス改善業務の進め方
・パフォーマンス改善の失敗談

レギュラートーク(20分)

作って理解するメソッドインジェクションの仕組み

メソッドインジェクション、使っていますか?

Laravelではコントローラーのインスタンス化の際にコンストラクタに明示された依存クラスを注入してくれる「コンストラクタインジェクション」だけでなく、メソッド実行時に引数に明示された依存クラスをフレームワーク側が自動で解決してくれる「メソッドインジェクション」と呼ばれる便利な仕組みがありますが、この便利機能はどうやったら実現できるのでしょうか?

今回のトークでは簡易ルーティングライブラリを実装して、その大まかな仕組みを実演してみたいと思います!

4
採択
2023/03/24 10:40〜
Track B
レギュラートーク(20分)

作って理解するバックドア

ad5jp Roku

Webサイト制作を仕事として受けているか否かに関わらず、
企業から相談を受ける立場で仕事をしていると、定期的にやってくるのが「Webサイトがハッキングされた!」という駆込みです。

私は会社員時代も含め、かれこれ10回以上この手の相談を受けてきました。
そしてそのほとんどは、Webサイトのサーバにバックドアを設置された事案でした。

WordPress 等の普及によって、本来システム屋ではないWebサイト制作事業者が気軽に PHP を動かすようになったことがその大きな要因ですが、
それが PHP である以上、我々 PHPer にとっても他人事ではありません。

今回のセッションでは、実際に PHP でバックドアプログラムを書きながら、

・バックドアとは具体的にどのようなものか
・原因と対策
・我々 PHPer に何ができるのか

をお話しします。

レギュラートーク(20分)

テストコードぜんぶ書く

zosokh ヒエイカザト

昨年のPHPerKaigiで「エラー監視とテスト体制への改善作戦」というタイトルでチームへのテストコード推進と奮闘についてトークをしました。
https://fortee.jp/phperkaigi-2022/proposal/4a7e3ded-9134-4919-955c-ec7bf4491c0d

あれから一年。テスト体制がどのように変わってきたかの話と、テストコードを高カバレッジで維持したシステム開発・運用をして得た話をします。

  • 続テスト体制
  • カバレッジ95%台のテストコードを整備した話
  • 何をテストコードに書くかの話
  • テストコードを整備しやすいシステム設計
  • PHP以外のテストコードなど

【トーク対象】

  • webサービス運用エンジニアの方
  • テスト体制を築きたい方
  • テストコードを後回しにしている方、後ろめたさを感じている方
8
レギュラートーク(20分)

プログラマのための心理学の扉を開く〜仕事の「つらさ」を乗り越えるための探求〜

o0h_ きんじょうひでき

プログラマやIT系エンジニアの実務は、(漫画やハリウッド映画でのイメージとは違い)ステークホルダーや同僚・部下との関係が欠かせず、絶え間ない学習・成長が必要で──とても「人間的な」側面が大きいものです。
何だって、人間を学ばないと!

「アドラー心理学」って言葉に聞き覚えは?仕事にどう役立つのでしょう。「認知負荷」って聞きますよね。その定義は説明できますか?
「言っている事が伝わらない」「教えても伸びない」等々、人間関係やメンタルモデルの問題は普段の仕事と密接に関わります

リーダーシップやコーチングを学ぶ中で出会った「こういう領域があるんだ」について共有します

想定対象者

  • マネージャーになったばかりの人・なりそうな気配を感じている人
  • 学び方や教え方について、今までと少し違う視点を獲得したい人

得られるもの・レベル

  • 入門より手前の「そういうのもあるのか」を知る
5
採択
2023/03/24 13:30〜
Track B
レギュラートーク(20分)
オンライン登壇

詳説「参照」:PHP 処理系の実装から参照を理解する

nsfisis nsfisis

PHP における参照に似た機能は、他の言語にも存在しています。C のポインタ、C++ の参照、Java の参照型、C# の参照渡し……。しかしこれらは、それぞれ細かな点で PHP のそれとは異なっています。
PHP における参照を完全に理解すべく、1) PHP レベルでの挙動を観察し、2) PHP 処理系 (https://github.com/php/php-src) のソースコードを追いかけます。

対象: 重箱の隅をつつきたい PHPer、または PHP の language lawyer になりたい人。PHP 処理系は C で書かれていますが、C の知識は (あまり) 要求しないようにするつもりです
目標: PHP の参照を、実装レベルで完全に理解すること、また、php-src を少しだけ探索できるようになること
話さないこと: 参照のメリット・デメリットや使うべき場面

レギュラートーク(20分)

アプリケーションエンジニアのためのObservability入門

o0h_ きんじょうひでき

Web系の開発に携わっていると、「作って終わり」ではなく「ちゃんと動き続けていること」が重要になります。
そのための行為が「監視」であり、その質を保証する特性が「可観測性(Observability)」です。
私はこれまで「開発」「運用」「保守」といった区分けの無いような小規模組織で過ごした時間が長く、その経験から「アプリの人こそ、監視や可観測性を強く意識すべきだ」と確信しています。

皆さんのチームでは、「システムが動いているか気にする人/関心が薄い人」といった分断は発生していませんか?
もしくは、「監視の必要性は理解しているが、”良い監視”って?」と悩んでいる人もいるかも知れません。

このトークでは、「なぜ監視を」「なぜアプリの人が」に触れつつ「可観測性とは何か」について考えを深めていきます。

7
レギュラートーク(20分)

Goで作るComposer

o0h_ きんじょうひでき

みんな大好きComposer、もっと仲良くなりたいです。
仲良くなるにはどうすれば・・・やっぱりバラバラに解剖して、自分なりに構築してみることだと思います。
突き詰めれば、やっていることは「JSONを解釈して」「ネットワーク越しにファイルを落として」「ZIPを解凍して」「良い感じに展開すること」になります。
PHP自体の実行箇所(Pluginやscriptsの実行)を除けば、動かすことができるのでは・・?

Composerの一部の機能をGoで再発明してみると同時に、「Composerってそういう仕組なんですね」をシェアします!

10
レギュラートーク(20分)

リファクタがチョットデキルようになるために

HiroyaYamamoto1 やまもとひろや

レガシーなコードと向き合っているとリファクタは避けては通れないものです。
レガシーでなくてもコード書きながら「なんかイケてないんだよな〜」となってリファクタすることも多いかと思います。

  • そもそもリファクタってなんだっけ?
  • リファクタってどうやればいいの?
  • どうやったら上手くできるの?

このあたりのコツをお話できればと思います。

2
採択
2023/03/24 14:40〜
Track B
レギュラートーク(20分)
オンライン登壇

安全にプロセスを停止するためにシグナル制御を学ぼう!

HiroyaYamamoto1 やまもとひろや

PHPのプロセスは非常に脆く、簡単に処理が停止してしまいます。
処理途中で切断され意図しないデータが残ったりするケース、皆さん誰しも経験があるんじゃないでしょうか?
シグナル制御を行うことで処理を安全に終了することができます!

  • データをキレイにしてから終了する
  • どこまで終わったかを通知してから終了する
  • 処理が終わるのを待ってから終了する

本セッションでは、安全にプロセスを停止するためのシグナル制御について解説します。

レギュラートーク(20分)

PHPのビルトインウェブサーバーを本番環境で使ってはいけないN個の理由

takeokunn たけてぃ

皆さんはPHPのビルトインウェブサーバーを使ったことはありますか?
Laravelユーザの皆さんはphp artisan serveで馴染みがあると思います。

HerokuやECSへのDeploy時にphp artisan serveでWebサーバを起動する、といったサンプルが巷に大量に転がっています。
公式サイトさえこのような記述がされているというのが現状です。

ビルトインウェブサーバーを使った時にどういう弊害がおこるのか、実体験を踏まえて話していこうと思います。

14