Slide 1

Slide 1 text

歴史を重ねたシステムの開発に趣味で 関わり始めて 2023/12/18 ゆく年くる年PHP 納〜今年の振り返りと来年の抱負〜 [PHPer Tea Night] @muno_92 1

Slide 2

Slide 2 text

自己紹介 X ( 旧Twitter): @muno_92 PHP 歴: 約7 年 カンファレンススタッフ iOSDC Japan 2023 PHPerKaigi 2024 PHP カンファレンス小田 原 2024 2

Slide 3

Slide 3 text

( 宣伝 ) PHPerKaigi 2024 日程: 2024 年3 月7 日( 木) 〜9 日( 土) 会場: 中野セントラルパークカンファレンス & ニコニコ生放送 現在チケット販売中! https://phperkaigi.jp/2024/ 3

Slide 4

Slide 4 text

( 宣伝 ) PHP カンファレンス小田原 2024 日程: 2024 年4 月13 日( 土) 会場: おだわら市民交流センター「UMECO 」 12 月25 日( 月) 18:00 チケット販売開始(予定) https://phpcon-odawara.jp/ 4

Slide 5

Slide 5 text

今年から fortee の開発に関わり始めました 5

Slide 6

Slide 6 text

fortee とは https://fortee.jp/ カンファレンス支援システ ム PHPerKaigi / iOSDC Japan 主宰の長谷川さんが開発 初回コミットから約6 年 長谷川さんのこれまでの カンファレンス運営の知 見が詰まっている 6

Slide 7

Slide 7 text

きっかけ fortee にはカンファレンスに関するメールを送受信する機能がある 7 月下旬、fortee の受信メールインポート処理がバグる 直せるかもしれないと思ったので、長谷川さんにGitHub リポジトリ へのアクセス権を頂いた (該当バグは修正出来た) 7

Slide 8

Slide 8 text

今年やったこと 開発環境構築の地雷踏み 細々としたバグ修正 DB 構成を把握しやすいようにtbls を導入 受信メールインポート処理をローカルで確認しやすくする スクリーン(後述)の一括設定機能 Apple Wallet / Google Wallet 連携 8

Slide 9

Slide 9 text

DB 構成を把握しやすいように tbls を導入 https://github.com/k1LoW/tbls DB からMarkdown 形式のドキュメント・ER 図を自動生成してくれ るツール 「fortee なにも分からん」状態だったのでDB が絡む修正を入れる時 に初手で導入 マイグレーションファイルが更新されたらドキュメント自動更新の Pull Request を発行するワークフローをGitHub Actions で構築 setup-tbls が便利だった 9

Slide 10

Slide 10 text

10

Slide 11

Slide 11 text

受信メールインポート処理をローカルで確認し やすくする Docker でPOP3 サーバーを立てる https://github.com/inbucket/inbucket 後に長谷川さんによってIMAP もサポートしている greenmail/standalone に差し替えられた inbucket コンテナに簡単にメールをセット出来るようにする https://github.com/jetmore/swaks swaks --server localhost --port 2500 -t [email protected] -f [email protected] --data /path/to/test.eml 11

Slide 12

Slide 12 text

スクリーンの一括設定機能 フレーム画像 このスライドの背景 タイトル画像 次のページ fortee がテンプレにトーク情報を埋め込んで生成 PHPerKaigi / iOSDC Japan 専用機能 12

Slide 13

Slide 13 text

13

Slide 14

Slide 14 text

それまではスタッフが 1 つ 1 つ真心こめて設定 14

Slide 15

Slide 15 text

iOSDC Japan 2023 からは一括登録できるように 8/11 自動設定出来るのでは?と相談 8/14 Issue にまとめて方針すり合わせ 8/15 実装開始 8/21 マージ 9/1 〜のiOSDC Japan 2023 で概ね問題なく動作 15

Slide 16

Slide 16 text

Apple Wallet / Google Wallet 連携 16

Slide 17

Slide 17 text

17

Slide 18

Slide 18 text

https://speakerdeck.com/muno92/add-ticket-to-google-wallet-with- php 18

Slide 19

Slide 19 text

振り返ってみて、やって・意識して良かった事 システム構成を把握しやすくする(tbls の導入) できるだけテストコードを書く 開発効率を上げるツールを探す・導入する 無理しない 19

Slide 20

Slide 20 text

システム構成を把握 しやすくする tbls は各テーブル毎に Markdown ファイルを生成 し、それぞれをリンクして くれるのでテーブル構成の 把握に便利だった 右図:tbls のサンプル 20

Slide 21

Slide 21 text

できるだけテストコードを書く TDD ・リグレッションテストの文脈ではなく、仕様理解の面で役立 った 手作業で動作確認するのと比べ、「このテーブルにこういったレコ ードが登録されていないとこの機能は動かない」と明確に理解しな ければいけない テストを走らす中でテストデータ不足に気づけたり 21

Slide 22

Slide 22 text

開発効率を上げるツールを探す・導入する inbucket cakephp/repl が入っていなかったので追加 Laravel Tinker と同じく、PsySH ベース 「Cake にもLaravel Tinker 的なの無いかなー」と探した バグをテストコードで再現しづらい場合に必要最小限の再現コー ドを探るのに役立った 22

Slide 23

Slide 23 text

無理しない 仕事ではないので 時間・体力の許す範囲で開発する その時その時でモチベーションが湧く事をやる 23

Slide 24

Slide 24 text

fortee 開発の良い所 楽しい 普段カンファレンス運営で使うシステムなので、fortee が良くな ると自分たちが楽になる 趣味であれだけガッツリ作られたWeb サービスを触れる機会はな かなか無い fortee を使っていて分からない所などがあった時にソースを見れる 24

Slide 25

Slide 25 text

来年も fortee 開発やってくぞい 25

Slide 26

Slide 26 text

ご清聴ありがとうございました 26