カンファレンスのエモい感想については、すでにブログに書いたので、そちらをどうぞ。
hanhan’s blog - PHPカンファレンス福岡2023に参加した鮭
このエントリーでは、当日頂いた質問&回答、Twitterで頂いた反響への感想などをまとめています。
登壇内容
始まった #phpconfuk #hall_fu pic.twitter.com/PrI6AgAzIp
— KojiKa (@_ko2ka_) June 24, 2023
当日は、Jeremy Sochanのジャージで気合を入れました。
プロポーザル
レガシー回避のPHP開発術:保守性の高いアプリケーションを作る方法 by 富所 亮 | PHPカンファレンス福岡2023
スライド
レガシー回避のPHP開発術/avoid_php_legacy - Speaker Deck
トークのきっかけ
個人的な思いではあるのですが、仕事でも外部の登壇などを聴いても、方法論が先行しすぎてることが多いという印象でした。ソフトウェアが作られている背景とか、どうやってそこにいたったのかというコンテキストを無視しては、まともな改善は出来ないじゃんという思いをどっかで発表したいなと思っていました。
結果として、じゃあどうすればいいのよ?っていう思いには答えられていないのかもしれませんが、それこそ、現場ごとに違う課題に対して絶対に効果のあるような施策は存在しないです。どのやり方も一長一短あります、わたしたちのやることは、その課題に対して一長一短ある解決策のどれを採用したら、どのくらいの効果があるのかを見定めて、漸進的に改善を行うことにあると思っています。
Ask the speaker で頂いた質問
質問
DDDやクリーンアーキテクチャに対して、ボトムアップ方式じゃないと上手くいかないという指摘があったが、では当初の開発時はどうするのか?ある程度の目安がないと開発出来ないのでは?
回答
目安としてのディレクトリ構造や、設計図面はあるべきだと思います。問題は、トップダウンだけ、ボトムアップだけという一方向になってしまうと、視野が狭くなるよねということです。作ったあとじゃないと分からないことが多々あると思うので、実装するまえの設計しすぎを抑えめにしつつ、実装後の設計変更や改善を忘れないようにすれば、バランスが良いと思う。
当日の反響
嬉しいことに、Twitterでたくさん反響いただきました。以下、抜粋。
大好きな図
Software Architecture Metricsで1番好きな図です!!!#phpconfuk #hall_fu
— 今日も誰かのにちようび(おいしい鮭親子丼) (@o0h_) June 24, 2023
はい、私も大好きな図です。心の中にいつもおいてます。
無計画な開発
この例えいい!!
— Y-Kanoh(かのう) (@YKanoh65) June 24, 2023
> 無計画な開発による思わぬ副作用(海岸線の写真)#phpconfuk #hall_fu
小手先の改善活動がいかに海岸線を破壊するかを学生時代に学んだので、教訓の一つとして紹介しました。
問題は職能内に閉じない
「問題は職能内に閉じない」「最善を尽くせ!」どれくらい踏み込むかはケースバイケースな気がするけどそういう行動が大事だとおもう(精神論じゃないぞ!) #phpconfuk #hall_fu
— 青ごへいもち (@blue_goheimochi) June 24, 2023
これも、いつも気をつけています。立場がどうだとか、専門がどうだとかじゃなくて、課題に向かっているかどうかのほうが大事。
うちの会社の好きな制度
設計レビュー、設計相談会いいなあ #phpconfuk #hall_fu
— おかしょい (@okashoi) June 24, 2023
これ、おすすめです。みんな真似してね。
ADRについて
あー、なるほど。
— Y-Kanoh(かのう) (@YKanoh65) June 24, 2023
アーキテクチャとなぜそのアーキテクチャにしているのかをWikiにまとめておくのか...#phpconfuk #hall_fu
Architecture Decision Record は、アーキテクチャー決定のコンテキストを保存できるという意味でも優れているのですが、改善が進んでいない箇所に対して、改善を開始するための建前として優れていると感じてます。議論のたたき台製造装置っていうイメージです。
まとめ
もしかしたら、録画が公開されるかもしれないので、そのときはそのリンクも追加しておこうと思います。
「課題から目をそらさない!!」
ソフトウェア開発は、すごく大変で難しいんですが、みなさんも私と一緒にがんばっていきましょうね!
2023-08-21 追記
録画公開されましたので、リンクを追加します。