採択
2023/03/23 18:50〜
Track B
レギュラートーク(40分)

ウォーターフォールに思えたプロジェクトにあったアジャイルの要素

kubotak_public 久保田賢二朗

弊社で5月から11月に行われたプロジェクトはエンジニアから見てウォーターフォールのようにスケジュールが組まれていた。
終わってみると特に炎上らしい炎上はなく、プロジェクトは成功した。
ここで疑問が湧いた。ウォーターフォールに思えたプロジェクトは何が要因でうまく遂行できたのか?
弊社では昨年末よりスクラムによるアジャイル開発に力を入れていたが今回は明確な期日が決められ、スケジュールが組まれたウォーターフォール・・・
力を入れていたアジャイル開発とはなにか、なぜアジャイル開発が良いと思っていたのか。そこでRobert C. Martin著「クリーンアジャイル基本に立ち戻れ(邦題)」を輪読し、うまく行ったウォーターフォールにあったアジャイル要素を見つけた。
このセッションでは弊社のウォーターフォールの事例からクリーンアジャイルで説明されているプラクティスの何が効いたのか紹介します。

採択
記事(4ページ)

保存版 PhpStorm + Xdebug の設定

hanhan1978 富所 亮

Xdebug は開発時に最も頼りになる相棒です。
一般的には、ウェブアプリケーションのステップ実行が有名ですが、コンソールコマンドや、PHPUnit のテストでもステップ実行させることが可能です。

しかし、慣れていない人には、Xdebug の設定は少しむずかしいです。本記事では、Xdebug の仕組みをかんたんに抑えつつ、PhpStorm + Docker という最近の開発環境における Xdebug の設定方法についてまとめます。

上手に Xdebug を設定して、スムーズなウェブアプリケーション開発が出来るようになりましょう。

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

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

taclose 前田啓佑

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

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

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

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

■主な内容

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

採択
記事(4ページ)

PHPをバージョンアップするための技術と戦略

tzm_freedom 田実 誠

PHPのアプリケーションを運用・保守していく中で、PHPのバージョンアップは重要な課題です。

本稿ではPHPをバージョンアップするために必要な技術や戦略を、コードの削除・静的解析から監視・リリースまで幅広く紹介します。
EOLではないモダンなPHPアプリケーションがより多く運用されるきっかけになれば幸いです。

15
採択
記事(2ページ)

Eloquentチートシート

hayashi_msyk HAYASHI Masayuki

Eloquentには多くの機能がありますが、そのうちよく使うものは実は一部だけです。

Eloquentチートシートは主要な機能をメソッド・プロパティ単位で、それらの引数や戻り値・型を簡潔に、またグループ分けすることで把握しやすい形で一覧できるチートシートです。

使用時に引っかかりがちな罠を回避するヒントも満載!

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

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

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

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

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

4
採択
記事(2ページ)

「ちょうぜつソフトウェア設計入門」とかいう本の宣伝をします

tanakahisateru 田中ひさてる

書いたら書いただけ動くのが PHP のいいところですが、書き散らかしたコードは長年維持管理するのがたいへんですよね。そんな悩みからちょっとアーキテクチャの設計に興味を持った PHPer のみなさんに、設計でどんなポイントをおさえるといいかを、マンガでわかるかたちで書きたいと思います。マンガのオチはもう決まっています。「つづきは『ちょうぜつソフトウェア設計入門』で → 今すぐ購入」になる予定です。

18
採択
記事(4ページ)

php8から導入されたJITコンパイラについて学ぼう!

takeokunn たけてぃ

php8からJITコンパイラが導入されました。
JITコンパイラを有効化すると平均で1.5〜2倍のパフォーマンスの改善があったと公式サイトに書いてあります。
https://www.php.net/releases/8.0/ja.php

JITコンパイラの仕組みについてや、実際にどのくらいのパフォーマンスが改善するのか等をまとめて書いていこうと思う。

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

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

ad5jp Roku

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

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

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

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

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

をお話しします。

採択
記事(8ページ)

PHPStanクイックガイド2023

tadsan tadsan

PHPStanはプログラムを実行することなくコードの怪しい箇所を特定できる静的解析ツールです。

本稿では2018年からPHPStanを業務で利用している筆者が実アプリケーションにPHPStanを導入する上でのベストプラクティス、心がまえ、アンチパターン、便利な型について紹介します。

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

テストコードぜんぶ書く

zosokh ヒエイカザト

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

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

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

【トーク対象】

  • webサービス運用エンジニアの方
  • テスト体制を築きたい方
  • テストコードを後回しにしている方、後ろめたさを感じている方
8
採択
2023/03/23 16:45〜
Track A
レギュラートーク(40分)

名著「パーフェクトPHP」のPart3に出てきたフレームワークを令和5年に書き直したらどんな感じですかね?

o0h_ きんじょうひでき

「キャリア10年超のphperなら大体読んでいそう」と思えるくらい、非常に頼れるパーフェクトPHPという書籍があります。

出版当時、2010年。
タイミング的に、世界は「Composer前夜」であり、PHP-FIGも生まれかけレベル。HackやPHP7といった激震を迎える前の話です。

そんな時代の偉大な成果物を、令和5年にPHP8.2で「今風」に書き直したら──どんな感じになるのでしょう?
「10年前のMVCを支えるコード」と「最近っぽいFWの要件」の比較を交えながら、大げさに新機能を使ったりしてみて、実際にFWを作ってみましょう。

内容

  • パーフェクトPHPに出てきたFWのおさらい
  • PHPのフルスタックFWの「今っぽさ」を考える
  • その差をどう実装に落とし込むか、やってみる
レギュラートーク(20分)

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

o0h_ きんじょうひでき

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

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

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

想定対象者

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

得られるもの・レベル

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

Laravelへの異常な愛情 または私は如何にして心配するのを止めてEloquentを愛するようになったか

KentarouTakeda 武田 憲太郎

Laravelは、PHPの中で最も利用者数が多い一方で賛否両論のあるフレームワークでもあります。中核機能であるEloquentもまた疑問を投げかけられることの多い対象です。

・Eloquentは果たして使うべきなのか?
・Laravelの何が便利なのか解らない。

私も最初そう感じつつ、数多くの開発を経てLaravelにおける驚くような生産性を手に入れることができました。使うべき機能、そうでない機能、実装のベストプラクティス、本番運用を含むコンテナ構築、これら「Laravel Way」を幅広くご紹介します。

苦労しながらLaravelを使っている方に是非ともお伝えしたい内容です。

採択
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 を少しだけ探索できるようになること
話さないこと: 参照のメリット・デメリットや使うべき場面

LT(5分)

1人Advent Calendarを支える技術(よりも大事なもの)

o0h_ きんじょうひでき

メリークリスマス!
クリスマスといえば、Advent Calendarですね。
世の中には、クリスマス当日まで待ちきれなすぎて1人でカレンダーを埋めていく人も居ます。
私も、2018年に1人adventに初めて挑戦し、2021年には3枚の1人adventに挑んでみました。

このLTでは、自身の経験を通じて感じた「助かったこと」「苦しかったこと」やノウハウを共有し、「今年の12月は私もやってみようかな!!」と 道を踏み外す 奮い立つ人を1人でも増やすことを目的にお話をします。

[ネタバレ]このトークにおいて、タイトルにある「1人Advent Calendarを支える技術(よりも大事なもの) 」は「根性」です。

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

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

o0h_ きんじょうひでき

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

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

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

7
LT(5分)

自動リファクタリングツール「Rector」の自作ルールを作るよ!

o0h_ きんじょうひでき

Rectorを使っているととても便利で、「フレームワークのバージョンを上げたら今までのメソッドがdeprecatedになって書き変えなきゃだぜ!!」といった場面をコマンド1発で乗り切ることが出来ます。

主要なFWやライブラリなどのマイグレーションには公式に対応していますが、自分たちのPJに適したルールは自分たちで作っていく必要があります。
「どういう風に、自動での書き換えを行わせるか・・」は知っておいて損はないはずです!
LTの中で伝えられる範囲で、Rectorを拡張するためのルールの作り方を紹介します。

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

Goで作るComposer

o0h_ きんじょうひでき

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

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

10
採択
2023/03/23 18:50〜
Track A
レギュラートーク(40分)

PHPUnit 10 概論

2023/02/03 に約3年ぶりのメジャーバージョンアップデートであるPHPUnit 10がリリースされます。
3年ぶりということもあって、PHPUnit 9からの変更はとても多いです。
例えばPHPのrequireが7.3->8.1へと大きく変わったり、大量のクラスやメソッド、オプションが削除されたりなど・・・

今回のトークではPHPUnit 10で何が変わったのか、changelogベースで解説していきます。
必要に応じて、実際に動かしたりしながらの解説もしていきます。