趣味開発のための小さなPHPStan拡張を作った

このメッセージを見る度に「supagethiの世界では構造化コードなどいらぬのだ!」って脳内で再生される

「作った」というか「作らせた」、って感じですが。
Claude Codeさんにアイディアとゴールを渡して、さささ〜っと書いてもらってザッと手直しだけしてって感じ。

Packagistにも登録済みなので、お役立てくださいませ。

packagist.org

これは何

PHPStanを活用して、 コード品質の担保 を推し進めるための拡張です。

良い感じに、ユーザー定義関数や制御構文(if/elseif/for/foreach/while/switch、ついでにmatch式も)や、簡略化された条件分岐(エルビス演算子、NULL合体(代入)演算子、宇宙船演算子)などを禁止するものです。

一例として、PHPを書いていて最も使いそうなループであるforeach。こんな感じです。

<?php
// コレは駄目
foreach ($items as $item) {
    process($item);
}

// こう書いてください
$i = 0;
$count = count($items);
loop_start:
$done = $i >= $count;
if ($done)
    goto loop_end;
goto do_process;

do_process:
process($items[$i]);
$i++;
goto loop_start;

loop_end:

あとクラスも駄目です。

例外はない

更新があるのかは不明ですが、この記事を書いている時点で最新版がv0.0.1です。
phpstan-extension-installer等で導入してください。
・・・今、ずっと 〜if you want〜 と唱えながらこれを書いている感覚なのですが、まぁ言わずもがなってやつですね。

背景

3月にあるPHPerKaigiでの発表の準備をしています。

fortee.jp

パンフ記事の執筆が完了したので、本格的に準備し始めるぞ〜ってことで。
謎に勘違いしていたのですが、「パンフ終わったら1ヵ月で資料作らないと・・」という気分でいた所、なんと1月中旬〜3月中旬って、2ヵ月あるんですよね!!
そうなると、もう少し機能を追加したり作り込んだりできそうだなーという気分になり。

限られた時間で効率的に面白い発表材料を集めるにはコーディングエージェントを使いたい、そのためには生成されたコードに対して明確にOK/NGを出す機械が必要、じゃあ静的解析で構文チェックをできればいいな・・・

というのが開発の動機です。

やってみて

PHPStan自体が素晴らしいので、拡張の中身は簡単なコードで済むことが多い。
かつ、実装やテストで参考にできるOSSも十分に存在するので、あるべき指針の咀嚼も自律的に進めさせやすい。

このあたりの条件が整っていたこともあり、本当に「アイディアを具現化するのに掛かるコストが猛烈に下がっているなぁ」とも感じました。

コードそのものに価値を置きたい場面では「機械に代替させるのが勿体ないな」と思います。一方で、美味しいところ・面白さを感じるところだけを選り好んで摂取しつつ他は任せた!を可能にする手段があるのは、楽しさが加速しますね〜

スライドを作る時にそーだいさん風のやつを真似している #そーだいアドカレ

この記事は「そーだいなる Advent Calendar 2025」の 「13日目」 の記事です。 adventar.org

アカセさんの記事を読んでいて、「チケットまで取った映画を観に行かずにクリスマスイブに飲み明かした」ってエピソードで大変笑わせてもらった思い出が蘇り、自分もお礼(なのか?)に書いてみようというものです。

スライドのつくりを途中から変えた

スライドを作る時にそーだいさん風のやつを真似しております。

伝わるでしょうか、こういうやつです。

実際の例として、先日のPHPカンファレンス福岡での自分の発表資料を挙げてみます。
制作中の資料と、フォークして作られた最終版、それぞれのバージョンがあったので比べてみます。

★before

言いたい事を固める、っていうのは成功している

最初はこんな感じでした。
これで発表しよう〜となっても全然行けるとは思いつつ、もっと磨き込んでいって・・

★after

スライドを分割しつつ、1〜2行程度に留める
動きの中で、連鎖しつつもう1センテンス

このような形に。

やってみてどうだった?

話す内容や言及するフレーズを、ちゃんとスライド上に投影するか。あるいは、ポイントだけを載っけておいて一瞥で捉えられる程度に留めつつ、口頭で補足する割合を増やすか。
人によるところですが、自分の場合は後者の方が喋りやすいし、自然に流れを作れるな〜って。*1

他方で、「最悪、スライドの内容をそのまま読み上げればOK」な程度には情報を載せているのもポイント。本番は緊張もするし時間配分の問題なども諸々ありますからね。「何を話すつもりなんだっけ??」って頭の中が真っ白になった時のセーフティを作ります。

んで。
最初はそうした「話しやすさ」重視でやってきましたが、もう1つ重要なメリットを、何度か場数を踏む内に感じました。言語化の練度です。

スライドの制作中、もっと言えば内容を考えている途中には、「言おうと思ったこと」がフラットに頭の中にあるんですよね。情報は揃っている、が、立体感が無いみたいな。
そこから登壇内容の細部まで全体が揃ってきたり、素振りを繰り返す内に、オートクライン的な効果もあって、「ここが大事だ、ここで刺しに行きたいぞ!」が見えてきます。フラットだったものが立体感を帯びてくるような感じ。
そうやって煮詰められてくると、やっぱりスライド1枚1枚のまとまりが良くなるな〜と。ここまで来て初めて、「スライドの内容を1文まで絞り込む」ができる。

なので、これは「単に話す時に便利」に留まらず、「しっかり思考を蒸留できているかな?」を測るバロメータにもなったし、そこを目指しながらスライドを制作するぞ〜となったのでした。

2024年の3月から

きっかけになった体験がありまして。

PHPerKaigi 2024のあとに、ピクシブさん(とtadsan)のお力で開かれたafter hack的なイベントで、ゆるゆるとタイムシフト動画を上演していた時です。
その内の1つに、そーだいさんの発表もあった訳ですね。

このスライドの感じだと、

  • 喋る量をその場で調整しやすそう。会場の雰囲気とか持ち時間とかと相談しながら
  • 1番言いたいことはスライド上で凝集できている、なので資料としても利便性が良くなる

なんてことを思ったりしたわけです。
「ついここ数日で資料作りと発表を終えた開放感、自分なりの反省が頭の中にあるぞ」ってタイミングで降ってきたこの気付きには、妙に魅力を感じました。

その翌月にあったPHPカンファレンス小田原から、実践に移す事になります。*2

実際に比較してみると。
3月のPHPerKaigi・・はコード解説系が中心なので、その前のPHPカンファレンス関西を持ってきてみました。雰囲気が変わっているのが分かります。

★2月のスライド

箇条書き+フォントによる強調を使っている様子

★4月のスライド

スライド上のコンテンツはギュッとまとめつつ
展開を作る時には吹き出しを使ったり

どんな感覚でやっているのか

スライドの文字数は確かに減らしているので、「情報量が減っている」ことになるのか?というと、「意外とそんなことはない / そうならないように削ぎ落としている」ような感じがします。

例えるなら、「最近っぽいビジネス書で、太字のところだけを抜き出した」のがスライド上に現れるもの。それで本筋の8割以上は伝わるはず。ビジネス書って、強調部分だけを拾っても、要点を理解できるようになっているものが多いですからね。

それと合わせて、「本筋」「幹」「骨格」に対する「補足」「枝葉」「肉」に当たる話では、スライドレイアウトを変えるようにしたり。
前者が、ここで取り上げた「1,2センテンスをセンタリングして70pt以上でドーン」ってやつですね。後者は、図やコードが入ることが多かったり、箇条書きだったり。

あとは矢印や吹き出しを良く使いますね!
土台となっている内容と、そこに乗せたり連鎖させる流れを、構造化して捉えやすくなるのかなぁと思います。

さっき「立体感」と表現したパラメータに、これらの全てが与しているなぁと感じます。

スライド制作、発表の「体験」の変化でもあった

つくりの変更は、自分にとって良い刺激になっています。

雑に散らかす→発表や公開に向けて整える!という流れは、今も昔も変わっていないのですが。
何となく「完成した姿」のイメージが変わったことで、「ここ文字数多いな、もっと凝縮できそうだな」なんて嗅覚が働くようになりました。

「話す時に便利そう」でやってみたフォームが、準備や思考の過程にもフィードバックされているのですから、面白いなと感じます。

そして発表する時には、「お題をスライド上にドーンと映す」「そこに即興的に反応して、自分の引き出しからコンテンツを放り出す」っていう感じ。

1スライドに載せる量を絞りまくる、というと高橋メソッドもありますが。あちらは喋るスピードとスライドをめくるテンポが連動する感じですよね。
それに対して、例えば「1スライドに20文字だけ書いて、それで45秒喋る」というような、スライドを膨らませるような形になります。
そう考えると、スライドに載せることが「話す内容」ではなく「話し手である自分を刺激するもの」であり、スライドは「話し手(自分)とその中にある知識・経験に対する触媒」とも言えるでしょうか。

もともと発表者ノートにスクリプトを書いていない!っていう人であれば、発表時に口から出るのは、一定の割合でその場・その時点で生み出された言語表現という事になります*3
であれば、「自分が拾いやすい」ようにスライドを最適化していくのは、有利な状況を作ってくれるはずなのです。視覚から仕入れて処理される文字数は少ない方が負荷が低いし、本当に抑えるべきポイントの判断をミスりにくくなるのは、とても楽です。

そーだいさんといえば「いい話」なので

以前に#yokohamanortham で「いい話」について聞いたのですけども。

listen.style

僕の場合はいい言語化ができたなっていうのをいい話としているんですけども、
言語化をできるようになったなって思うようになったのはいつかって話ですよね。
僕、構造とか言語を認知するの得意側なんですよね。
それのアウトプットが、インプットは得意って話なんですけど、
アウトプットがついてくるようになったのを多分、
外で発表するのをめちゃくちゃ数こなすようになってからって話だと思うから、
多分27、8ぐらいからはてブがつくようになってきたなとか、
登壇良かったよって言われるようになってきたっていう感じで、
そういう風に自分の言語化ってこうすると人に伝わるんだとか、価値が提供できるんだって思うようになってきてからですかね

今回、自分でもこの記事を書いていて、ああしたスライドのつくりっていうのは「構造化して考える」ことの現れなんだな〜〜と感じました。
そういう上手い人の真似で「形から入る」をやってみることで、レベル上げに繋がるのかも知れません。

自分の場合は、「まず散らかして→整えて→磨く」という肯定を経た上で、最終的に「真ん中に良い感じな言葉をドーン」の姿になるのですが。
最初から言いたいことがハッキリしているし、それに耐え得る経験値や技量があれば、初手から「それぞれのスライドで押さえておくべきポイント」に基づいた構成ができるのかな〜なんて気もします。

ということで

#そーだいアドカレでした!
色々な「◯◯さんスタイルのスライド/登壇」をトレースしてやってみるの面白そうだよな〜なんてことも思ったり。

あんまりsoudai1025さん自身や思い出について書いておらず、自分の体験ばかりになって恐縮ですが、「こんな形で影響を受けているモノもあるよ」という話でした。
あと、「どうしたらあんな風に伝わりやすく表現できるのか」を自分なりに体験・考察してみた話でもあるかも知れません。

*1:同じスライドで滞在するのがあまり得意じゃない、一定のテンポでめくりたいな〜というのもありますが、これは完全に好みの問題ですね

*2:ちゃんとご本人も「真似させていただきやした!!!」って伝えました。深夜にラーメンを食べながら。もう暫く、あの時間は来ないかも知れないですが・・

*3:ちゃんと準備して頭の中に流れが入っているのは前提でありつつですが

2025年をふりかえろ〜 > 参加したカンファレンスとか出したプロポーザルとか

↓の続き。
daisuki.nichiyoubi.land

今年の「プロポーザルを出したなぁ」を並べてみましょう

今オープンしているCfPもないので(?)、全部並べられる
のんびりとブログを書いている間に北海道が募集開始していたぞ、後で何か出そう〜

出したプロポーザル

開催が今年(CfP期間が去年のものを含む)〜来年(CfPが今年中に締め切られたもの)って線引で。

2月

PHP Sessionless Conference

2025/02/08(CfP 〜2024/12/16)

ピセカめっちゃ楽しかったな〜、「全員が参加者!!」って感じもするし、ワークショップって楽しいよねぇ〜
空気感も素敵で良かった。またやりたいね。主催者の「言うなら自分でやていいですよ?」って顔が浮かぶけどw

ケイタMAXさんの発表でもおなじみ(?)のkazさんとも初めてじっくり話せたのがピセカの懇親会だな、今年めちゃよかったことの1つだ

出したもの 採否
「こんなテストコードは嫌ぁ〜ダ!ヤダー!」を祓う会 ワークショップ@100分 採択
初めてのRector Custom Rule作り体験 ワークショップ@40分

ディスカッション系のグループワークを自分がイメージする時に、「こういう話が好きな人と、飲み会で話題にすると盛り上がるんだけど、飲み会でやるには具体的すぎる、素面で色んな人とやりたいよな!!」ってものを出しがちかも知れない。

PHPカンファレンス名古屋2025

2025/02/22(CfP 〜2024/11/04)

名古屋、これで3年連続かな?で行っている地に!
雪だったなぁ。ひつまぶしも食べました。
ベストトーク賞の2位タイっていうのも、そういう所を意識していた訳でもなかったけど嬉しいものですね。思い出。

出したもの 採否
「考えるのを後回し」で磨く設計力 @15分
「複雑なコード」を図にして考える @30分
Edit PHP files programmatically feat. AST @15分
「Promiseって何だ!分からん!!」覗いて作って遊んでみよう @30分
『テスト書いた方が開発が早いじゃん』を解き明かす @15分 採択

ここで採択したもらった話は、前に人と話していたのがきっかけで「ちょっと考えまとめておこうかな〜」ってやつだったので、発表後に本人とも喋れて良かった。

で、その時に喋っていたことへのリアクションを、名古屋から帰って数日後のphpstudyで補足的に発表もしたり。その時の資料、自分が2025年に公開した中で閲覧数が1番多いって結果に。

もう少しテストを書きたいんじゃ〜 #phpstudy - Speaker Deck

3月

PHPerKaigi 2025

2025/03/21-23(記事CfP 〜2024/12/9, トークCfP 〜2024/12/30)

いつも楽しい最高のPHPerKaigi。
1月のパンフ記事、2月の2本、3月の本編、4月の小田原・・・っていうラッシュのど真ん中って感じで、このあたりからブログ書き切れていないんだよな

今年も #phperkaigi がやってきた!行ってきた!楽しかった〜〜〜記 - 大好き!にちようびは公開しているのだけど、自分の登壇・セッションの感想をかけていないなっていう。

コードゴルフ楽しかったな〜、プログラミングやっていると未だに「食わず嫌い」が発見されて面白い!

「次回は絶対に有給取ってday0からフル参加する!!」って心に決めていたのですが、春分の日→土日なんだよな有り難いw

出したもの 採否
設計に必要なモノは何だっけ / 設計に”Why"を宿す @20分
PHPでPromiseの世界を「完全に理解」する @20分
クイズ・PHPUnit 〜11にあって、1にないものど〜れだ〜 LT
「雑に作る」に学んで始める、自己満がらくた作り -それはとても楽しい- 40分
PIEとPackagist パンフ記事@4ページ
PHPによる"非"構造化プログラミング入門 -本当に熱いスパゲティコードを求めて- @20分 採択
ライフサイクルから理解するPHPUnit パンフ記事@8ページ

いま見返してみると、あんまり出せていないな。(色々な枠があって、色々な楽しみ方ができるのお得)

この「雑に作る〜」のやつも、すごい自分の中でホットなトピックで、ぜひ言語化したいぞ!!って思って書いた記憶があるぞ

この回は、今年全体の中でも1番くらいに印象深い。
自分で発表準備を進めていて、本当に自分に衝撃を与えたんだよなあ。
別に「出力できる内容が、登壇駆動で初めて出てくる」とかって訳ではないんだけど。「ちゃんと調べる」っていうのが本当に色々なものを持ち込んでくれる・・・

ドナルド・ノーマンの話とかを読んでいたりしたのが、ココでこんなに繋がることある???ってビックリしたり。
また新しく「プログラミングに興味を持った!」って言えるような機会だったなーって、9ヵ月後の今になって思っています。

4月

PHPカンファレンス小田原2025

2025/4/12(CfP 〜 2024/12/5)

小田原、楽しかったな〜!
参加ブログを書けていない・・・!けど楽しかったのは本当で、それがゆえにまとめきれない〜〜〜ってなっていた背景がありますね。

企画も言わずもがななんだけど、前日の宮小路散策ナイトでの会話と言うか出会いというか、が非常に良かったので今年最高級の思い出的な場面の1つです。
単純にお酒飲むのが好きだから美味しい魚をつまみながら気楽に喋るの最高〜〜っていうのがありきなんだけど、そこで「一方的に存在を知っていました、ハジメマシテ!!」な人とお話ができて、その時に聞けた話ってのがこれまた衝撃的に面白くて・・・ですね。

次回の小田原に期待することがあるとすれば、「また天気が良いと嬉しいです!!」です。*1
ランチ時にちょっと散歩しながらご飯屋さんに行くの、最高に良いので。

出したもの 採否
「影響が少ない」を自分の目でみてみる @20分 採択
PhpQuickCheckで覗いてみるProperty Based Testingの世界 @20分
「具体的」の反対は「ぼんやり」じゃない、あるいは漠然・曖昧の抱きしめ方 @20分
リファクタに 成功したら 褒めてくれ @20分
PHP: Haiku-text Preprocessorってなに? LT
設計がもたらすもの、もたらさないもの〜夢・現実・理想〜 @20分
オブジェクト指向は「つながり」で考える〜より良いコードを目指せるようになろう!〜 @20分
比べてご覧よ、フレームワーク〜DIコンテナ編〜 @20分
「PhpStormのGit GUIがこんなに便利なんだぞ」ということを見せつけたい @20分

PHPerKaigiのパンフレット記事としてリファクタリングの話を書いた後に、「この話をもう少し掘り下げたりパッケージの仕方を変えて、ちょっと話してみたいな〜」って思っていたものが、採択された結果に

「依存の”距離”みたいなのあるよねー」ってな話を交えているのだけど、距離の話はソフトウェア設計の結合バランス 持続可能な成長を支えるモジュール化の原則 (impress top gearシリーズ)でも同様の語彙が出てきたな。それをみて、ふふふってなった思い出

5月

PHPカンファレンス新潟2025

2025/05/31(CfP 〜2/2)

新潟もな〜〜〜楽しかったなーー! 前夜祭の後の懇親会のお店が素敵すぎたし、本編終わった後も朝まで酒を飲んでいたり、変える前に寿司もラーメンも食べたぞ

品川/新横浜以外の駅から新幹線に乗ったもの初めてだったかも!

出したもの 採否
「設計をすること」を見直す @20分
日常と抽象とプログラミング @20分
壊れても良いガラクタを作って遊ぶ、再発明が楽しい @20分
入門!PHPとASTとOPCode 〜いつものPHPの少し深淵を覗いてみよう〜 ワークショップ@90分 採択

めっちゃ楽しかった&準備に力を入れました!!の回だな。
この時に使うアプリ作ったんですよね。 資料も含めて使い捨てにするの勿体ないな〜〜〜って気がするw

ものすごいタイミング良く「JetbarainsのJunieがPHPでも使えるようになったぞ!!」っていうのと、さらに「さくらのAppRun(β)が使えるぞ!」と。

視覚的で手元で動かせる何かあればいいんだけど、それはめっちゃ大変そうだからハードル高いな・・・って思っていたのだけど。まじでvibesだけで欲しかったもの・描いていたものができる!!!となり。

  • 木構造をブラウザ上で見られて、それがPHPのコードのトークンと対応して反応して、っていうUI
  • tree-sitterを使って具象構文木をだしましょう

ってなやつ、このあたりを「自由に触ってね、何かが分かるよ〜」って出来たのはとてもデカい!!

あと、opcodeとかastをちゃんと調べる&出力可能にするためにphp-srcをハックして・・っていうのも、かなりAIに頼ってやらせてもらったり。

開催タイミングが1ヵ月早かったら、まるで違うものになってたよなぁ〜って。
例によって自分自身の勉強にもメッッッッッチャなったし、実施し他満足度みたいなのはとても◎
去年のphpconのワークショップで「もっとこうすれば良かった〜」って思った部分のリベンジって意味でも◎

【一切】PHPとASTとOPCodeに本当に入門できるのか理解する会【非公式】 - connpassで手伝ってくれた人たちにも大感謝!

6月

PHP Conference Japan 2025

2025/05/07(CfP 〜2025/06/28) 今回のphpcon、「後輩が後輩を連れて来る(面倒を見ている)」的な場面を見たのが印象に残っているかも。(その前、PHPerKaigi辺りでも連れてきていたはずなんだけど)。蒲田で餃子を食べたよ!

あと、after hack的なものが開催されたの最高だったなぁ ああいう雰囲気好きなんですよね。みんな疲れてるんですけど、集団で余韻に浸っている感じと言うか。

出したもの 採否
PHPの日時の表現に詳しくなろう LT
設計手法に詳しくなる前に考えたい、「なぜ設計ってするんだっけ」 @25分
「○○駆動」がなぜ役に立つのか? / プログラマとしての闘い方を見つめる @25分
「プログラマーに国語力が必要だよね」について、現代文(科目)の参考書を解いた上で分析する @25分
50分でComposerを作る <ライブコーディング> @50分
Composerが「依存解決」のためにどんな工夫をしているか @25分 採択

「日付表現」のやつも、「AST→パーサー→BNFとか調べているうちに、良くわからなかったPHPのDatetime文字列が、こんなに明確にわかるようになるじゃん!!」って思って出したLTなので、自分の中では今年っぽい1本だな

過去にComposrの内部実装を読む系の発表を何度かさせてもらっているんですけど、ココら辺は完全に「ちゃんと読みきれ なくて諦めていた」っていう部分。なので、 自分にとってはとても印象深い。
これまたコーディングエージェントやAI様々案件ですね。動画の自動翻訳的なサービスとか使って、SAT Solverなるものについて学んだぞー!の成果です。

関連してphpstudyでも喋った! Composerの依存解決 #phpstudy - Speaker Deck

7月

TechRAMEN 2025 Conference

前回参加した時の得も言えぬ良さ、あれをまた摂取したくて・・・で旭川へ。
今回は素直に「1番良かった発表はキーノートでした!」になるな、素晴らしかった。

小田原〜japnまで「ブログ書けてない、順番通りに出したいし・・・」でスタックしていたのが、どうしても「いやTechRAMENだけは今のうちに出しておきたい!!」で、ここから参加ブログ書けるようになりましたね。
(單純に、「次の準備が暫くないぞ」になった影響もとてもデカいけどw)

それと、前夜祭で複数のコミュニティによる”祭り”状態で勉強会が発生していたけど、自分はJava Doのものに参加し。色々と良い体験だったなー。
まず普通に講師のお話が上手で「こうやるんだ!!!」的な感じもあったし、内容も「ただの違う言語」以上に感じるものや共通しているものが見つかったり、で。

出したもの 採否
AI時代の技術の楽しみ(方)・学び(方) by きんじょうひでき | トーク | TechRAMEN 2025 Conference #techramen25conf - fortee.jp ワークショップ@40分 採択

そうか、1本だけだったんだ。
「どこかで発表しないで純粋に聴講と廊下を楽しむ参加者もいいよな〜〜」って思っているフシはあり、だとしたらTechRAMEN/旭川はピッタリじゃないかな〜〜!っていう思惑がありそう。
とはいえ、成功に向けて奔走している人たちがいるんだよなって思うと、少しでも盛り上げに貢献できないか・・・となって「プロポーザル出すことで少しでも何かを!!」っていうのもあるんだよな。

この回は、物理的に小道具を色々と準備して臨みつつも、会場を見てから話の流れややり方も含めて現地でアレコレを入れ替えさせてもらったなぁ。

それにしても、自分も参加したかった。ファシリテーションやっていると、人と話せない。いや話せるようなコンテンツにすれば良いんだけど、その技量が自分になくて。。

9月

大吉祥寺.pm 2025

2025/09/05-06(CfP 〜6/22)

参加するつもり満々でちょっと諸事情があった大吉祥寺.pmの登場だ〜〜

でも前夜祭の後に非公式に飲みに行ったのがめちゃくちゃ良かったです。
それがあるから、心から参加できてよかったイベント。

出したもの 採否
日本語で読めるトム・デマルコ本、8選 LT

折角参加するならあの壇上で喋ってみたいな、と思って出したプロポーザル。
これは「8”選”っていうけど、そもそも8冊しかないでしょ」っていうのが自分なりのポイント?みたいな所なんだけど、伝わらんよなぁ。

結局「トム・デマルコ」って名前にしかフックがなかったので、これで何をメッセージとして持ち込みたいのかってのが不明、自分が書いた良くないプロポーザルの代表作や〜〜って気もする。パット見で期待できる内容がない、というか。(デマルコの書籍について紹介してくれるんですね、は分かるだろうけど。Wikipedia読み上げるだけと変わらんというか。)

そうやって言語化してみると、「ちゃんと磨いてどっかで話してみたいかもな??」って気もしてくるな。テーマんポテンシャルをちゃんと引き出してリベンジじゃーー!的な

11月

PHPカンファレンス福岡2025

2025/11/08(〜2025/08/08)

福岡・・・!めっちゃ最近じゃんって気持ちと、あっという間に「随分前の記憶」になっているような。
とにもかくにも、また行きたいな福岡。ひらお食えてないんですよ、く〜〜〜

出したもの 採否
Rectorのルール自作で学ぶVisitorパターン @15分
自作JSONパーサーで学ぶ構文解析器生成入門 @30分
30分で用意するComposer 〜LIVE CODING〜 @30分
組織もソフトウェアも難しく考えない、もっとシンプルな考え方で設計する @30分 採択

1番プロポーザルの内容について「伝わるのかな?」って自信がなく、実際に(ゴメンナサイゴメンナサイ・・・と思いながら)提出後に結構プロポーザル本文を書き換えたやつが採択された。
「どうせ、この文字数で伝えようとしてもフワフワとして余計に伝わりづらくなって終わる・・・だったら、興味を持てるか?需要ありそう〜ってなるか?の得点が低かったとしても、せめて採択者が好き/嫌いは判断できるくらいにはしよう!割り切ってぶち上げるぞ!!」
つって。
しかも「タイムテーブル的に、なんか妙に重い意味のありそうな枠じゃない??」って感じで、不思議で仕方なかったんですけども。

ただ、結果的に、本当に色々な人に直接声をかけてもらったりオンラインで言及してもらったりで。今まで複数回の登壇機会をもらってきた中で自分史上最高のリアクション数になったなー。
スライド作りながら「どうやって話をまとめるの〜これを聴きたい人って何を求めてるの〜〜」と迷っていた自分は、それでかなり救われましたね!

PHPカンファレンス香川2025

11/23-24(CfP 〜9/15)

香川良かった!!めーーっちゃうどん食えたし、うどんってまだもっと食べたいから不思議。
海鮮ももっと食べたかったなぁ、来年も行くぞ。そーめん食べられるかな??まだ早い??

出したもの 採否
手軽に使える「抽象」の道具 @30分
ASTって面白いね!あなたがコンパイラじゃなくても、役に立つよ 30分
手軽に積ん読を増やすには?/読みたい本と付き合うには? LT 採択
symfony/mcp-bundleで、既存アプリケーションもお手軽にMCPサーバー化 LT 採択

いやー、LT2本やると思ってなかったw そういうのもあるのか〜!って。

カンファレンスでの(もしくは、ちゃんと時間が測られる場での)LTを久々にやることとなり、「5分で喋るのも結構楽しいぞ」って感覚を思い出したり。

ここでやった話、準備したり当日の反応をもらって「少し視点を変えて掘り下げてみても面白いかもな〜」とか思ったんですよね。
それがPHPerKaigiや小田原のプロポーザルへと姿を変えて飛び立って行きました。しかもレギュラートーク

2026/3月

PHPerKaigi 2026

2026/03/20 22(記事CfP 〜2025/12/10 , トークCfP 〜2025/12/22)

ということで、LT多めの今回。
パンフ記事、2ページのも出そうかな〜〜とか思ったりしたのですが、ちょっと12−1月に複数の記事を書けるかな・・?の自信が持てなかったので、1本だけ。

それ以外だと、20・40分枠をそれぞれ2本ずつなので、そんなに「すごい沢山出した〜」って感じも無いなぁ。
並列して開いているCfPがあると、何となく被らないように〜って意識が個人的に働いてしまう。気にする意味もないんだけど。

出したもの 採否
deptracモドキを作って、仲良くなるぞ! @40分
コンストラクタを通さずにオブジェクトを作る方法と、何故それが嬉しいのか LT
PHP Deprecated術 味比べ LT
PHP-TUIで初めてのTUIアプリ LT
PhpStorm Git便利術 LT
なるほど!Visitorパターン 〜Rectorをお供に〜 LT
PHPUnitの進化から、最近のPHPの進化をおさらい! LT
Official PHP SDK for MCPって何?どう動くの?読んでみました! 〜FWとして読み解くMCP SDK〜 @20分
プログラミング言語と文法の関係を覗いてみよう 〜自作DSLで追いかける、ソースコードが解釈されるまで〜 @40分
夢の無限スパゲッティ製造機 @20分 採択
遊んで仲良くなるAST: php-parserを使ってコードを生成してみよう パンフ記事@8ページ 採択

記事の方は、過去に他のカンファレンスでプロポーザルに使ったネタを、ちょっと形を変えたもの。
トークの方は、完全に去年の続きって感じのテーマ!

2026/4月

PHPカンファレンス小田原2026

2026/4/11(CfP 〜2025/12/23)

小田原はレギュラートークが20分枠のみだったので、そこに4本。
前回・前々回と「ちょっと役に立つ感じの話」を採択してもらっていて、自分の中でそういう場っていうイメージがあったり。
なので、個人的には同時期にCfPがあったPHPerKaigiと出す内容の毛色が違うかな〜〜って感じ。仕事していたりコード読んでたりの最中に思ったこととか考えたこと、がベースになっているものが多いなぁ

出したもの 採否
入門 return LT
PCOVから学ぶコードカバレッジ @20分 採択
コードリーディングから学ぶ乱読のための読書術 @20分
あなたのコードに必要な「違和感」 〜読み手に意図を届ける仕掛け〜 @20分
"1行分の意思決定"が、明日のコードの姿をどう変えるのか @20分
AIにコードを書かせていたら、自分の好みと向き合うことになった! LT
【最強の】継続的アップデート学習法【習慣づけ】 LT

蓋を開けてみたら、めっちゃコードっぽい話が採択された!
タイムテーブル見ても、他の話もそんな感じのする「ここでしか聞けなそうな話」とでもいうのか、普段そこまで覗きに行かないかもな〜ってものが多い気がする今回。

いやはや楽しみですなぁ

どんなものが多かったのかな

本数どんなもんだろ・・・って思ったけど、数自体は自分にとってはあまり意味があるものに感じないし、「今年のプロポーザル」ってどこで区切るの??も分からんから、別に良いか。
来年も、出せる時は出すだろうし、出すなら自分が本当に話したいことだろうし。

それよりも、内容から見た傾向を探る方が面白そうだなーって思ったので、そっちの話。

「AST」とか「BNF」とか、そういうので遊んでいた年だったな〜っていうのが分かる感じがする。
「読んでみた」系とか「作ってみる」系もあわせて、このあたりは「コーディングエージェントがかなり役に立ったので、自分でできること・踏み込める深さが増した」っていう効果は見て取れるかな。

あとは、「なんとなく感覚的には捉えられているものを、いい感じに言語化できないかな?」的な所は、やっぱりチャレンジとして好きなんだろうなぁ自分。抽象が〜とか影響が〜とかはそれ系。

せっかく一覧出したので、Claudeに食わせて「今年はどんな傾向だった?」って聞いてみた。

Claudeさんからのご神託

スパゲッティの魔術師、同僚にいたらマジで最悪そうだな。

来年はどうしていくか

わっかんね〜〜
その時々で、自分なりにフレッシュで「面白いな!/面白そうでしょ!」て思える話を出していくだけかな〜

*1:本編やその周辺イベントは、中の人達を信頼しているので最高のものを作ってくれるはず

魚にはいつも水が見えない。/魚はいつもまっさきに空気に気づく。; コンサルタントの道具箱から

この記事は、ワインバーグさんにまつわるAdvent Advent Calendar 2025の13日目です。
昨日はid:o0hさんの投稿だったことでしょう。

adventar.org

今日もまた、以前に読んだ本をパラパラとめくりながらハッとしたフレーズについて紹介していきます。
お相手は『コンサルタントの道具箱』になります。

原題は 『More Secrets of Consulting』で、"more"とある通り、『The Secrets of Consulting(コンサルタントの秘密)』の続編となります。

色々な道具たち

コンサルタントの道具箱』は、問題解決者が頭の中に入れておくと役に立つ「道具」を紹介する本です。1章ごとに1つの道具が出てきます。
そうした道具を使うことで、問題を解く、より正しいニュアンスを加えて言うなら、問題を正しく視るのを助けてくれるはずです。

「そうだ、こんな時は”願いの杖”を使ってみよう」「"探偵帽と虫めがね"が必要だな」なんて風に、(比喩的な)名前がついた道具を「取り出す」ことで事態を展開させていくのです。

魚眼レンズ

第11章は『魚眼レンズ』でした。

魚眼レンズは、状況判断能力、自分や協力者との関係に周囲から影響を与える要素を見る能力を表す。これは第三の「見る」道具である。鏡は自分を見る道具、望遠鏡は相手の視点を理解する道具、魚眼レンズは周囲のすべての人の総合的な視点を示す道具である。
(P155)

「自分」ではなく、「相手」だけでもなく、その間にある関係性や「お互いに何に巻き込まれているんだろう?」を点検するための道具になるのですね。

魚にはいつも水が見えない。

章の中にはいくつものエピソードや教訓、そして「法則」があります(ワインバーグ節が絶好調な本です!)。

タイトルにした「魚にはいつも水が見えない。」「魚はいつもまっさきに空気に気づく。」が、個人的にお気に入りの、そして今回取り上げたいフレーズです。

身の回りの事象をパターン化して、「いつも通り」もしくは「違和感」を見つけるのは、認知能力の素晴らしい機能の1つです。それによって、集中力の緩急を効率的に制御し、必要なところでストレスを上手く利用します。

つまり、「慣れ」が認知を歪めているのです。
ワインバーグはその点についての注意を促します。それが、「水の中で暮らしている魚にとって、いつも水なんて見えていない」という結果。
見るべき対象として、水がそこにあるべき時にも、「いつもの」で見えていないとしたら、それは「問題」になります。

それに続いて、今度は「魚はいつもまっさきに空気に気づく。」というフレーズが取り上げられています。
「空気のような存在」とは、人間や地上生物にとっては正に「普段から当たり前に自分の周囲を取り囲んでおり、意識するに足らない存在」を指しますが、水の中で暮らしている生物にとっては事情が違います。

いつもと違う出来事は、コンサルタントに助けを求めるきっかけになることが多い。
(中略)
さいわい、社外コンサルタントとして呼ばれるときには、私自身がいつもの水から出た魚である。魚眼レンズは、背景と前景を客観的に捉えるのに最適の道具である。客観的な視点があれば、興奮した人たちを落ち着かせ、慣れきった人たちを目覚めさせることができる

(P167)

日常的には「慣れ」に上手く付き合うことが重要ですが、問題が発生している状況、もしくは「顕在化していない問題に気づく」ために、「慣れ」を敢えてリセットするタイミングが必要なのでしょう。

サティアの三つの普遍的な質問

そうした、罠とも言える「慣れ」の引力に如何にして抵抗するか?という話も、いくつか紹介されています。
その中でも個人的に印象に残っているのは「サティアの三つの普遍的な質問」です。これについては、この章に限らずチラホラと言及があり、正に「普遍的」といえる問題解決(もしくは発見、定義)のためのヒントになるものと言えるでしょう。

  • 彼らはどうしてここに来たのだろう?(過去)
  • 彼らはここにいることをどう思っているのだろう(現在)
  • 彼らは何を実現したいのだろう(未来)

(P169)

過去、現在、未来について目を向けさせるのが基本ということですね。
その目的は、インセプションデッキの強力な質問の一部とも共有されている感じがします。

「過去」については、ボールディングの逆行原理についても言及されています。これは、day2・genneiさんの記事でも紹介されていました。私も好きな法則((原理だけど)です。

これによって得られるものは、「彼らにとって、いま何が水なのだろうか?」のヒントでしょう。

「現在」、これは3つの中で最も独特な言い回しなのではないでしょうか。
「ここで何をしているのか」ではないのですね。「いることを、どう思っているのか」です。つまり、客観的な事実・”コト"を観察視するよりも、「何が、コトの観察を歪めているのか。どんな認知が働いているのか」に意識を向けるものなのだ、と私は理解しました。

自信を持って過ごせているか、自分なりの目的があり強い内発的動機が働いているか、周りの人が好きで気持ちよく呼吸が出来ているか、それとも感情を殺して作業として割り切って過ごしているか・・・
それぞれの人から描写される「いま起きていること」は、当然のように異なってくるでしょう。
状況をリフレーミングするために「観察者」の内心を観察する、それを自身が行う観察へと反映させる、それによって鋭い問題解決に繋げていく流れにつなげる。
強力な道具になりそうですよね。

「未来」もまた、同様に「頭と心」、そして「心が頭に影響すること」を踏まえた分離的な視点だな、と考えています。
いくつか質問例が載っているのですが、その中でも「彼ら(クライアント)が、なぜ・どのくらい私(コンサルタント)を必要しているのか」を掘り下げるような内容が含まれています。これには、特にハッとさせられました。
対話を行って共同で問題解決に取り組む上で、相手の「本気度」やニーズ、それに「助けを求める役割を、私に重ねているのか」は重要ですよね。コミットメントがないところで、支援は難しいです。
なるほど、そういうところでも「何ができるか」は様変わりしてくる・・・特に、外部からの協力者としてコンサルティングをするのは「水ではなくて空気」的な存在になる訳ですから。良い刺激を流し込んで、それが良い形で受容されるか?そうでないとしたら、どういう風にやり方を変えるか?すなわち、自分自身が、そして相手を巻き込みながら、取り上げる問題が変わってくるに等しいです。問題定義を誤れば、真の解決は永遠に手に入らないですからね

まとめ: コンサルタントの道具箱は良いぞ

コンサルタントの秘密』と併せて読みたいですね。あちらの方が、もうすこし具体的・実践的な話が多かったような気もします。
対してこちらは、もう少し抽象度が高く問いかけてくるような感じがありますね。そういう意味でも、ウォーミングアップ的に、『秘密』でこの世界観に入門しておくのが良さそうかなと思います。
まぁ、あまり気にしすぎずに、どちらからでも読めると思いますが!

ワインバーグさんにまつわるAdvent Advent Calendar 2025 - Adventar、day15となる明日は、何かの記事です。

制約と選好を区別する; 要求仕様の探検学から

この記事は、ワインバーグさんにまつわるAdvent Advent Calendar 2025の13日目です。
昨日はid:o0hさんの投稿だったことでしょう。

adventar.org

今日は、以前に読んだ『要求仕様の探検学』をパラパラとめくりながら、心に残った話を1つ書いてみます。

ワインバーグといえば「本当の◯◯」

一般システム思考入門も「観察すること」の重要性を厚めに説いていましたが、結局のところ「真に客観的なものはなく、この世で生きている限りは相対的な思考と付き合っていくことになる」と理解することになります。
すなわち、他者間で「なにをみて、どう受け取り、どう判断し評価するか」が100%純粋に伝わるなんて不可能だぜ!と。

だからこそ、ライト、ついてますか 問題発見の人間学であったように「誰の問題なのか?」が重要になってくるし、また他の著作でも幾度となく繰り返されたように「同じ文章でも、"Mary Had a Little Lamb"のどの単語を強調して読むかによって、意味するところが変わる」ことになる訳です。

そんな風に、色々な場面で「本当の問題」「本当の要求」「本当の意図」と徹底的に向き合う、もしくは「どこまで言っても”本当の”ことなんて現れない、それを理解してどこまで今の思い込みを疑う」ように積極的に促している人物だな、と自分は思う訳です。

選好

『要求仕様の探検学』の17章には『選好』という章があります。

選好とは属性についての, 望ましいが, 選択可能(オプショナル)な条件である。あらゆる制約を満たす最終的な設計解はどれも許容可能な解だ。しかし, ある解は他の解よりも好ましいということがある。選好によって, 設計者は, 選択可能な解を比較し, よりよいほうを選択することができる。
(P207)

すなわち、要求の中にあって「どのように、どの程度、それを実現すべきか」の調整ができるものである、とでも言えるでしょうか。

例えばモバイルアプリを作っていて、「オープニング画面で目玉のキャラクターがアプリ上で表示可能であること」はもはや選択の余地のないもの、つまり「制約」になってきます。
一方で、「オープニング画面においてアニメーションが複数パターンあること」は、「何パターンあって、それぞれどのくらいの長さとなるか」と可変要件なのかも知れません。その場合、これは「選好」の域になります。

制約と選好を区別する

17章の3節は、『制約と選好を区別する』という見出しがついています。
これが、非常に大事だし油断すると溺れてしまうよな〜〜〜〜!!ってな気持ちになりました。

「額面通りに受け取る」と、往々にして、最初の時点で要求に含まれる大凡の要素は「制約」に見えてきがちです。要求とは本質的にそういうものでしょう。「こうあってほしい」を言語化したものになるのですから。
しかし、その文書に含まれる1つ1つを点検していった際には、「どれもが同じ熱量でそこに並んでいるわけでもない」と気づきます。

可能性の拡大は、曖昧さを運び込み、ソフトウェア設計を複雑なものにしますが、選択肢の柔軟さは設計者を手助けします。たどるべき「筋」が明確であれば、守るべきライン・捨てて良いものを組み立てやすくなりますが、その際に切れるカードの多さは「何をどこまでいじっていいか」次第になるのです。

なので、要求を受け取った際に、「なにが制約で、何が選好か」に注意するだけでも、ソフトウェアエンジニアとして効果的な働き方ができるようになるのではないか?なんて思いました。

要素を分解する、情報を重み付けする、それを通じて会話相手とのブレを減らす。
こうした取り組みが、必要なはずです。

もしくは、「選好」とは「まだ制約にまで昇華されきっていない、曖昧さを残した部分」とも捉えられるかも知れません。

選好に気づかせる

もう1点、この章で好きなのが次の一文。

選好はクライアントからくる, 設計者からではない。

これは忘れやすい。その理由は, 特に, 設計者がオプションを提示しない限り, クライアントは自分の選好に気づかないからだ。
(P209)

単純に言うと「つまり、こういうことですか?」とか「こういう感じにできればOKですかね?」と聞き返すことで、何が大事で何を満たしたいかの解像度を上げるような取り組みなのだと思います。
これを省こうとすれば、要求主の「想像しきれておらず、まだ暗黙裡に補完していたもの・思い込んでいたもの」が、そのまま残り続けることになります。よって、要求文書にとって最も忌避すべき「曖昧さ」が紛れ込んだまま!と。

とはいえ、「これは制約ですか?要求ですか?」と突き返しても、本当に良い対話や意思決定が生まれにくそうです。なので、「オプションを提示」してあげることで、実は隠れていた「本質的に必要なもの」の輪郭をくっきりさせること。
これは、テストの三角測量にも似たものかな〜とも個人的には思いました。「どこにありますか?」ではなく「AとBという2つの地点仮決めしてみましょう、この中間で、どっち側にどのくらい近いですか?」と聞いたら、本当の座標に近づける!みたいなイメージ。

まとめ: 要求仕様の探検学は良いぞ

例によって、この本も咀嚼しながら読んでいくと大変おもしろい1冊です。

ぜひ、色々な人に「スーパーチョークとは何だったのか」、その驚愕の結末に感激してほしいものですね!

ワインバーグさんにまつわるAdvent Advent Calendar 2025 - Adventar、day14となる明日は、何かの記事です。

PHPカンファレンス福岡について語っ記

PHPカンファレンス福岡について語ってほしい! Advent Calendar 2025のday12の枠をいただいたので、記事を書きます。 adventar.org

自分が好きなイベントについて色々な人が語っているのを眺めるの楽しいなぁ

私と#phpconfuk

今では気軽にPHP系コミュニティのイベントに参加させてもらうようになりましたが、いわゆる「カンファレンス」と呼ばれるものに初めて参加したのが #phpconfuk.2017 。

自分の中では、「PHPカンファレンス福岡が生みの親、PHPerKaigiが育ての親」みたいな感じがあります。

初参加したphpconfuk、初めて外部で登壇した*1pheprkaigi、「地方のカンファレンスに行って旅行みたいな気持ちも味わえるの楽しいな」を初めて味わったphpconfuk,「コミュニティって素晴らしいな楽しいな」を初めて味わったphperkaigi・・・と、色々あります。

(時系列関係なく列挙)

「なんか仕事ばっかしていてムシャクシャして」参加した2017

それまで参加したコミュニティイベント、初めてはPHP Matsuri、その後にCakePHP クリスマス勉強会、そこから何年か空いて(転職もして)、CakePHP MeetUpだったと思うんだけどなぁ(参加時のログが見つからなかった*2 )

それで、いわゆる「ボッチ参加」したのが#phpconfuk.2017で。
マジで誰とも喋ってない気がするし、懇親会も「それは一体・・・何ですか、そういうのもあるんですか??」くらいの感じだから、多分参加してない気がします。
当時は「登壇する」なんて発想もないし、CfPとかプロポーザルなんて単語も知らなかったんじゃないかな〜。なので、もちろん一般参加で。

そうだよなぁ、その当時は多分このブログも開設してないんだな。nichiyoubi.landドメインも、持ってたっけ?くらい。いやそれはあったかもな。。どうなんでしょうね。*3

いずれにせよ、「だいぶ前だな」と感じるわけです。

福岡入りして、朝食は当時にわかに話題になっていた松屋の「ごろごろ煮込みチキンカレー」でした。誰かと飯を食うでもなく、「福岡らしいもの」をカンファレンス前に食すでもなく。

ほとんど唯一くらいの可能性で「知り合い居そうだ!」って思ってたCakePHP MeetUPで見知った人がいたのが、当日の登壇予定を「変更されました」というアナウンスされているのを見て、しょんぼりしたり。

当時、「PHP7に移行しました」とか「Hackもやっぱり結構良いぜ」みたいな時代で、そういう登壇が多かったような印象が残っています。

あと、この記事を書くに当たって「そういえば、瞬間的に大量のアクセスが来る系のサービスでいかにリクエストを捌くか〜・・・みたいな話あったなぁ、印象に残っているぞ。記憶違いではないよな??」なんて思って裏取ってみたら、めちゃくちゃ長谷川さんじゃんか。
えぇ、そうか言われてみたらそんな気もしてきたぞ、と目ん玉を見開いて驚嘆しながら書いています。マジか。
楽しそうに話すのと「頭が痛い問題だ!」って感じと技術的な面白さが相まって、すごい聴いていて楽しかったな〜カンファレンスってやつに来て得したな〜って思ったんだよな。

あと、「エラーと例外の話もあったなぁ」「俺はそこで”ポケモンキャッチ”って言葉を知ったんだぜ」とか。・・・これも、思い出したらhirakuさんだったのか〜!

他にも、タイムテーブルを見るとyakitoriさんの発表もあったり。いや〜、「ランサーズのPHP7/CakePHP3以降シリーズ」、当時から始まっていたんだなぁ。
その後、CakeFest Tokyoだったり2社合同勉強会だったりで交流したり、#phpcondo.2024で久々の再会もしたり(めちゃ嬉しかったなー!)、思い出深い(?)人の1人で。

あとは、以前の記事でも触れたけど、1番印象に残っているのはPHPerに覚えて欲しい日本語の重要性
コードとか実装的な意味での?技術っちい話ではなくて、「なるほどこういう事も大事にしないとだよなぁ。。」って刺激をもらった気がします。
とりわけ、それ以前の1社目ではWebバックエンド〜フロントエンドをほぼ単体で書いてた+サポート対応も途中から巻き取ってやっていたので、「わかりやすさ」とか「困らなさ」って結構な関心事だったんですよね。ヘルプシステムのCMS構築とか、Wiki的な「キーワード自動リンクシステム」とかを勝手にやる程度には、「ユーザー自身が自力で解決できる世界って良いよな」って頑張っていたりもしたし。
逆に、プログラマー目線で言うと「一生懸命書いたコード」が「誰も助けられていない」ってなると物凄く口惜しいし、そういう意味で「日本語の重要さ」って絶対にそうじゃん、大事じゃん・・・って思いながら聴いていた思い出です。

あと!
もう1つ外せないのが、ytakeさんのADRの話ですね!!
ほほぉ〜〜〜〜ってなりすぎて、その後に社内で作った凄く小さなシステムを1個、ADR仕立てにした思い出があります。
「いわゆるMVCみたいなやつ」と比べて「レスポンスのステータスとかも、クライアントに創出するメッセージだって考える方が自然じゃね??」って感覚とか、ぶっ刺さったなぁ

それに、これまた長谷川さんになるけど(ダブルヘッダーあるんだw)、カンファレンスのあちら側とこちら側って発表この時なの・・・?
前職時代、「カンファレンスってどういうものなの」を人に説明したり、あるいは「プロポーザルを出してみたい」という人の背中を押す際に、めちゃくちゃ引用していた発表資料です。
10回以上、誰かに紹介している気がする。

そんな感じで、「当時の刺激的だった話」も「今ふりかえってみて、現在に繋がりまくってるなって感じ」も、両方盛りだくさんに思います。

というか、タイムテーブルを改めて眺めてみて、物凄く「今や知っている人」の名前がとても多い。
これも一重に、cakephperさん・アカセさんを初めとして「積み上げてくれた主催、運営スタッフ、地元コミュニティ」の方々がいて、そこに集ったり集い続けたりした人が居て、そういう連綿と継がれてきた太い流れの存在を語っているように感じて、ただただ尊い・・・って気持ちになります。
ソフトウェアも勿論そうですけど、こういう「育んできた先人たちの貢献」で自分たちもこんなに楽しい思いが出来ている、本当に頭が上がらないです。

再・私とphpconfuk

そして、2019年からPHPerKaigi/PHP Conferenceに参加するようになり、「いよいよ遠征もしてみるか!!」となったタイミングの2020。
・・・それどころでは無かったですね。

大復活の2023,始まる前からものすごい熱気で、自分もアレヨアレヨとプロポーザルを20個出したり、わくわくしてました。
この時の発表、自分でも結構好きなんだよなぁ

speakerdeck.com

そんな #phpconfuk.2023、自分にとって「非常に印象深い」と思える要素、もっというと「初めて味わえたこと」が2つあり。少なくとも2つ。数えりゃ無限。とりあえず2つだけ・・

福岡での「初めて」その1

1つは、「自分が登壇する枠」を初めて意識したこと。

この時に登壇した会場が「Fusicホール」だったんですよね。
個人的には、「タイムテーブルのどこを任されたか」「どこのトラックで登壇することになったか」っていうのは、基本的に喋る側が気にするようなことか〜??って気持ちでおりまして。
何にせよ登壇して喋る人って、相応にコストかけて準備もするし、前日や当日はゴリゴリにMP削られるし、何だったら登壇終わっても暫くは足が震えたり心拍数が上がったりするじゃないですか。

だから、「1番左側のトラックだった」とか「裏にすごい人が予定組まれている」とか、「最初だ」「最後だ」とか、そういうの着目してもなーって思っちゃうんですよね。
まして、技術的な話、「聴きたそうな人が多そうだ」って見立てと「マジで面白い超ニッチ話」のどちらもTrueたりえるので、あくまで「自分が話したいことをプロポーザルとしてしたためて、仮に採択してもらったら存分に喋るだけ」って気がしています*4

・・ただ、福岡ファッションビルの「あのでっかいホールで!?」って、なるほど自分がそんな空間で喋ってるの想像付かんな???ってなり。
前回が「初めまして、カンファレンス」で知り合いもいないし緊張してすごしていたせいで、すごいデカい所だったよな〜って印象が本当に強くて。
ちょっとだけ、「覚悟」が求められた回になりましたw

いやー震えたなー。

福岡での「初めて」その2

もう1つの「初めて」が、市川さん - #あすみかんの上にあすみかん に当事者自身が書いてるのですが、「(うがった見方をしまくると)自分が巻き込んでしまった人が、自らの意思でコミュニティを楽しめるようになっているのを見届けられた」というのがあり、これがとても印象深いです。
・・・というか、「楽しめるようになったんだな、良かったな〜」とか思っている暇もなく「なんか自分より遥かに馴染んでね??」と思わされるような、そんな勢いがありましたがw

まぁその辺りの努力にせよ幸運にせよ本人の資質でしかないので、他人がとやかくいうのもおこがましいのですが、とはいえ「一緒に参加してくれるようになった新参者」が「120%楽しんでくれてる!!」って姿を目にするの、めちゃくちゃ良いものです。

個人的に、初参加の2017について、「良い話をたくさん聞けた!こんなに技術どっぷり、めちゃ楽しい〜〜〜!」はありつつ、どうしても「人混みだし緊張したなぁ!」も大きかったので。
そういうラインを突破しているのを見られると、ホッとするんですよね。少し肩の荷が降りた。

あまり体験できることでもないなって思うと、非常に貴重な経験をさせてもらったなと。

#phpconfuk2回目、3回目

自分の参加回数で数えた時に2回目・3回目となる2024&2025も、お気に入りな話をしているな〜。
(福岡に限らず、まぁ公募で発表しているものは大体お気に入りって話はあるんですが・・・)

「あの俺が!?データ構造とか口にしてるの!?!?」って話題騒然の2024、そして直近なため「個人的にもまだまだ深堀りたいな」って温度感ではあるものの本当に多くの人に直接/ブログ等で接反響をいただいた2025

2024ではAsk The Speakerでshin1x1さん(同じ時間帯だった)と話せてホクホクでしたし、2025は「よくみたらphpconfuk最後のレギュラーセッション枠でホールなのか」ってプレッシャー・・を味わう余裕もないくらい「ちょっとでも良い話を持ち帰ってもらいたいな〜〜!」で必死でしたが、本当に「機会をもらえて、喋れたて、良かったすぎる!!!」な30分+後日だったので。

毎回、「前回の最高点を更新してくる!」っていうより「新しいところで最高の思い出を作ってくれる!!」っていうのが、自分にとってのPHPカンファレンス福岡なのかもなぁ、と思います。

10年間お疲れ様でした!!

色々な地方/東京でのカンファレンスが勃興している中で、#phpconfukは「得も言えぬ良さ」っていう表現が自分的には1番しっくりきます。

令和に3回しか参加していない自分が何かを申せるわけではないですが、語弊を恐れずに言えば、何か「スペシャルなゲストが来る」とか「創意工夫の煮凝りみたいな特殊なコンテンツがある」とかっていう魅力の出し方よりは、「ごくごく真っ当に、集まれる場所・刺激的な話が聞ける場所」を築いているような印象でした。

では何故に、あれほどに”良い”のか・・?っていうのが、ちょっと個人的には長らく謎ですらあったのですが、このAdvent Calendarを始め色々な参加者ブログなどを見ていて、最終的には「中の人の人柄が良くて、それがイベントににじみ出ている」って事だなーー!って気持ちです。

実際、「#phpconfukがあったから」で産み落とされていったカンファレンスも多くあるわけですからね。カンファレンス自体、そしてそこに参加する人、参加したあとに人生が変わる人・・と、この一言がその後に日本経済にもたらした経済効果凄そうじゃないですか????って気すらしてきました。
「私も、あなたの数多くの作品の一つです」と感じる人も少なからず居るはずです。

PHPカンファレンス福岡歴はまだまだビギナー寄りな自分ですが、大好きなカンファレンスです。この記事を書いている内に、単純に博多また行きたくなったーーーーー

素敵な思い出と出会いをありがとうございました!!
またCfPが動き出す時期があったら言ってください、今度はプロポーザル制限無しでやりましょう!


PHPカンファレンス福岡について語ってほしい! Advent Calendar 2025、明日はDay13でニシ サダオミさんの登場です!

*1:所属企業が共済した公開イベントで話したことは1回あった

*2:当時、もしや活動場所がFacebookグループではないですか!?懐かしい

*3:初投稿が2017年初だったので、ブログ自体は全然あった。ただ、6月前後は全く更新してない

*4:実際、同じ時間帯でおぎさんが話していたやつもめっちゃ魅力的だしなー https://speakerdeck.com/togishima/monlognoshi-zhuang-nixue-buinterfacenotukaidokoro