
技術広報しゅーぞーです。今回は当社から3名のエンジニアがプロポーザル採択され登壇しました。その模様をお届けします。
登壇①:なっかー「PHPでお金を扱う時、終わりのない謎の1円調査の旅にでなくて済む方法」

fluct @konsent_nakka は「PHPでお金を扱う時、終わりのない謎の1円調査の旅にでなくて済む方法」というテーマで登壇しました。
登壇では、PHPでの数値計算、特にお金を扱う際の問題点について実践的な知見を共有しました。処理場で意図しない数字に変換されてしまう問題の解決策として、BCMathという拡張機能の活用を提案しました。BCMathはPHPに標準で備わっている任意精度演算ライブラリで、小数を正確に扱うことができます。
また、型安全性を高めるために値オブジェクト(ValueObject)の活用も提案。金額や税率といった概念をそれぞれ専用のクラスで表現することで、コードの意図が伝わりやすくなり、間違った使い方を防げると説明しました。
登壇②:ぐり「新卒から4年間、20年もののWebサービスと向き合って学んだソフトウェア考古学」

新卒5年目のぐりは、「新卒から4年間、20年もののWebサービスと向き合って学んだソフトウェア考古学」というテーマで登壇しました。
古いコードベースを読み解く作業を「ソフトウェア考古学」称し、果敢に挑戦した体験を共有。
特に「鳥の目」でシステム全体を俯瞰する視点と、「虫の目」で細部を観察する視点の使い分けが重要だと強調しました。
実際の事例として、Webメディアの広告運用管理画面改修やPerlからPHPへのバッチ処理移行について説明。こうした経験から得た、理解しやすいコードを書くコツやドキュメントの重要性についても語りました。
登壇③:ryu「移行できそうでやりきれなかった 10年超えのシステムを葬るための戦略」
fluct @ryu9555 は「移行できそうでやりきれなかった 10年超えのシステムを葬るための戦略」と題して登壇しました。
「葬り」とは、CARTAで用いられる「老朽化したシステムや不要になった機能の提供を完全に停止し、システム自体を廃止すること」を指す社内用語です。今回の発表における「葬り」の対象は、10年以上前にPHPのフレームワーク「CodeIgniter 1.x」で構築された旧管理画面システムでした。この旧システムは、その古さから技術的負債となっていただけでなく、後に開発された新しい社内向け・社外向け管理画面と合わせて3つが並存する複雑な状況を生み出し、結果として運用上の混乱や広告配信ミスといった深刻なリスクの原因にもなっていました。
この旧管理画面を完全に廃止する「葬り」プロジェクトは、チームの強い決意のもと、専任2名体制・約半年で33機能の移行・廃止を推進しました。成功の鍵は、期限設定とWBSによる「計画」的なスコープ管理、関係者との合意形成やチーム連携を重視した「対話」、そしてOpenTelemetry/Jaegerでレガシーコードの挙動を可視化し安全な移行を可能にした「デバッグ環境」の整備という3つの戦略です。これにより、困難なレガシーシステムの廃止を達成し、開発効率の向上、運用リスク低減、モダン化といった成果を得ました。
発表後のエンジニアブログ
なっかーは登壇のサポートをしていただいた @t_wada さんから教わった資料作成のコツをブログ化。
聴衆の明日を変える 明確な問題意識や解法、はたまたモチベーションを与え、聴講者の意識を変え、実際の行動に移すことを促す t-wada: エモいことを言うと、「聞いてくださっている皆さんの明日を変えること」です。
また、ぐりは初登壇の感想を自身のブログで綴ってくれています。
結果としてほんとうにやってよかったな、と思っています。登壇内容に対してポジティブなFBを貰えたことなども当然嬉しいのですが、準備に際してたくさん考えたり色んなひとからFBを貰えたのがよかったです。
CARTAの環境はすごい。やばい。 プロポーザルが採択された後の発表準備においても、技術コーチである@t_wadaさんに毎週資料の構成の相談や発表練習をさせてもらっていました。... 社内の発表練習もさせて貰い、@soudai1025さんや参加してくれた方々にFBを貰うことが出来ました。
まとめ
PHPerKaigi 2025では、3名のエンジニアの登壇を通じて、お金の扱い方から古いコードの読み解き方、システム移行戦略まで、幅広い実践的な知見を共有することができました。
これからもCARTAは、日々の業務で得た知見を技術コミュニティに還元し、エンジニア文化の発展に貢献していきます。また別のPHPコミュニティでもお会いできることを楽しみにしています!