Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
30年価値を出し続けているPHPプロダクト ── レガシーと向き合い成⻑する戦略
Search
viviON
July 20, 2026
320
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
30年価値を出し続けているPHPプロダクト ── レガシーと向き合い成⻑する戦略
viviON
July 20, 2026
More Decks by viviON
See All by viviON
明日から真似できる、AIでデザインシステムを活用する方法
vivion
0
360
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
930
viviON Meets Datadog
vivion
0
51
ハーネスは階層で進化する
vivion
0
100
AI駆動開発で 「速くなった」のに、 なぜ評価に悩むのか
vivion
0
160
Figma MCPを活用するためのデザインハンドブック
vivion
8
20k
我々は「庭師」。市場におけるviviONサービスのあり方
vivion
0
1.1k
アプリ体験を統一するデザインポリシーの策定と、チーム連携の実践【Spectrum Tokyo Meetup #20】
vivion
0
920
同人音声のための、 最高の視聴体験を求めて【サブカル×デザインMeetUP!】
vivion
0
1.4k
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.3k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
280
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
890
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
Code Review Best Practice
trishagee
74
20k
Skip the Path - Find Your Career Trail
mkilby
1
220
Transcript
PHP CONFERENCE 2026 / SPONSOR SESSION 30年価値を出し続けているPHPプロダクト ── レガシーと向き合い成⻑する戦略 |
藤⽥ 泰三(技術戦略室)
⾃⼰紹介 藤⽥ 泰三 株式会社viviON 技術戦略室 シニアマネージャー 2011年⼊社。DLsiteの決済、認証認可を中⼼にバックエンド開発に従事 基盤開発・SRE・データエンジニアの各チームを経て、現在は全社の技術戦略を担当 技術負債の棚卸と返済計画、AI駆動開発の全社導⼊を推進中 好きなエンタメ作品:銀河英雄伝説、スタートレック
1
01 viviONについて 本⽇の流れ 02 30年で積み上げた資産と負債 03 価値の維持と負債解消を両⽴する戦略 3
01 viviONについて
PURPOSE ユーザーとクリエイターが楽しみながら、 幸せに⽣きていける社会にする 5
viviONグループは、30年続くサービスを中⼼に2次元コン テンツの⾯⽩さを届ける会社です 1996 DLsiteの前⾝サービス開始 パソコン通信時代、”猫⽿”好きが交流する場を作ろうとして集まったのがはじまり 2001 に名称変更 同⼈コンテンツダウンロード販売事業を開始 現在 グループ
幅広いエンタメ事業を展開 6 © あおぎり高校 / viviON Inc.
toCサービスを中⼼に 1,800万ユーザーをPHPで⽀える 2025年度 639 億円 2024年度 ユーザー数 1,800 万 viviONグループ全体のユーザー数
2023年度 529億円 562億円 30期以上連続で前年⽐の売上を更新 DLsiteの他、様々なサービスをPHPが⽀えています 7
02 30年で積み上げた資産と負債
DLsite本体は Mojavi + Smarty 20年ほど前に⼤規模なリプレースを⾏ったあと、フレームワークを変えずにサービスを提供中 PHPのコード規模 10,696 ファイル 284万
⾏ 1リポジトリに フレームワーク本体 4 サブシステム が同居 89 ファイルを ⾃前保守 9
Mojaviとは、PHP創世期のMVCフレームワーク Struts(Java)に影響を受け2003年に誕⽣。後のSymfonyにも影響を与えた系譜の⼀つ Struts 影響 Mojavi 影響 Symfony Java / MVCの源流
2003年 / PHP MVC 後年の主要FWへ 10
Mojavi3でPHP5に対応も、開発が終息 PHP5.6まではerror_reportingをoffにすれば動作。パッケージ管理はPEAR 当時の作法が、いまも痕跡として残る 6 ファイルに error_reporting(0) が現存 211 ファイルに PEAR参照
が現存 11
フレームワークごと保守が必要 PHP7以降では動作しないため、フレームワーク⾃体を⾃分たちで修正して対応 390⼈⽇ PHP 5 PHP 7 PHP
8.2 PHP7→8 バージョンアップ⼯数 phpcompatibilityで機械検出を併⽤ 12
取り扱うコンテンツは MAGからASMRまで 古い形式を⽀えるコードは、今もコードベースに残り続ける 1990年代 現在 MAG形式 / フロッピー 18
種 15 ⾔語 167 ファイル 歴代DRM⽅式 対応ロケール ASMR対応の⾔及 ASMR / ハイレゾ⾳声 13
ファイルサイズは30年で1,000倍も、商品価格は変わらず 単価は同じまま、1,000倍の転送量を⽀える配信基盤の必要性に迫られる 当時 数百 KB 現在 数 GB 1,000
倍 の転送量 価格を変えずに届け続けることが、ユーザーとクリエイターへの価値 14
試⾏錯誤がコードベースに蓄積 提供終了した機能や決済定数62個などが、コードベースに層のように折り重なる 6 2 1 コード 11・33・35 は⽋番(「35は⽋番」とコメントに明記) 2 「消して良いと思う」というコメント付きの定数が現存
3 同じ決済⼿段が⼆重定義(例:EDY 3 と EDY_MICROSERVICE 43) 決済定数 コードに残る考古学 15
書いた⼈がすでにいないコードも多数存在 @author コメントのメールドメイン集計。現社名のドメインはわずか1件(ドメインのみ・個⼈名なし) 初期開発会社 コピペにより増殖 849 @eisys.co.jp 旧ドメイン 511 260超
開発ベンダー各社 @eiys.co.jp タイプミスまで化⽯化 3 @vivion.jp 現ドメイン 1 //2008/08/26 一時的に復帰させる。いずれ必ず削除する。 16
独⾃のデプロイパイプラインに暗黙のルール 運⽤ノウハウがコメントとしてだけ残り、⽂書化されていないルールが存在する コード ビルド 「読み替えてはいけないパターンの存在が後から判明 したので、そいつらを除外する」 配信
ルールはコメントの中にだけある 「先頭以外なら読み替え実⾏するように変更(藤⽥さ ん依頼)」 .始まりは更新ツールでリリースされません 17
Mojavi+Smartyが消せないのは、資産だから 枯れた1万超のPHPファイル・284万⾏が売上を上げ、全⾯刷新のリスクがリターンに⾒合わない 全⾯刷新 リスク⼤ / 数年の停滞 VS 動き続ける資産 30期連続増収の実績 枯れたコード
= 検証済みの資産 18
レガシーの難しさは、負債であり資産でもあること 消したいものと守るべきものが、同じコードの中に同居する 負債の顔 資産の顔 TODO など 2,192 件 連続増収 @deprecated
257 箇所 ⽀えるユーザー 最⼤クラス 7,739 ⾏ 30 期 1,800 万⼈ 19
02 価値の維持と負債解消を 両⽴する戦略 20
3年後の事業影響という物差しで判断する 「3年後の事業影響」という共通の物差しで、返済の優先順位を組織で合意する 課題の棚卸し ポーカーで相対評価 技術投資計画へ反映 1 マネージャー・リーダー約10名で、33枚の課題カードをプランニングポーカーで評価 2
評価軸は⼯数ではなく、3年後の影響度(フィボナッチ 1〜21) 3 最⾼スコアは決済・キャンペーンロジックの複雑化 21
守りのアップデートは⼟台から EOLから逃げ切り続けることが⼟台。PHP本体・ミドルウェアへの追随に交渉の余地はない アプリコード 段階的に改善 フレームワーク ⾃前保守で対応 PHP本体 追随必須 下の層ほど、
後回しの コストが膨らむ 22
コードベースはコンパクトに保つ 消せるものは消し、切り出せるものは切り出す 決済系をマイクロサービスへ 切り出し @deprecated で段階的廃⽌を 進⾏中
提供終了機能の削除を継続 gRPC連携 54 ファイル 257 箇所 層を薄く保ち続ける 23
運⽤改善への投資で、分割の選択肢を買う ⾃動化・SaaS活⽤などの運⽤改善が、将来の分割・刷新の選択肢を広げる 運⽤改善 ⾃動化・SaaS活⽤ システムあたりの 運⽤コスト削減 同じコストで複数運⽤できる 分割・切り出しの
選択肢が増える 運⽤改善は前提投資 24
レガシーとモダンの同居で知⾒が貯まる ディレクトリがそのまま技術の地層。新旧が同じ本番で動くから、⽐較しながら学べる 新コードベース 6.1万⾏ / Vue / gRPC Mojaviモジュール 40万⾏
独⾃ライブラリ 65万⾏ 旧DBモデル(⾃動⽣成) 86万⾏ 境界線を引いて、 新しい層を上に積む strict_types宣⾔は全体の 7% ただし新規ファイルでは 100% 25
使えるものはすべて使う モダンな環境で得た知⾒をレガシーへ。DLsiteではLaravelからORMとDIを移植 DLsite本体の composer.json に現存 illuminate/database Laravel 部品だけ移植 エコシステム
Eloquent(ORM) php-di DIコンテナ 26
エコシステムを活⽤する攻めのアップデート エコシステム活⽤の最⼤のブロッカーは、PHPバージョン 同じ composer.json に、年代の異なる依存が同居する elasticsearch 1系 2014年代のクライアントが残存 guzzle 6系・monolog
1系 旧世代のまま illuminate 6系 中間世代 2019 aws-sdk・sentry 最新に追随 最新 2014 旧 27
原則の厳守より、事業の継続 設計原則は知識としては持つべきだが、動く資産を作り替えてまで厳密にやりすぎない 教養として持つ DRY 私たちの結論 KISS YAGNI デザインパターン PoEAA DDD
30期連続増収の資産を⽌めてまで、 厳密に従わせない 28
ただし、ドメイン知識の流出だけは致死の病 ドメインモデル貧⾎症は、どの階層で起こっても連鎖的に広がる 同じ病が、階層を変えて再発する 最も致死的 メソッド クラス
モジュール サービス間 29
AI駆動開発は、レガシー借⾦の徳政令になりうる 枯れて安定した⼟台があるからこそ、AIによる仕様化・分割・改修を安全に速められる レガシー資産 枯れて安定 30年分の仕様が 埋まる AI 仕様化・分割補助
改修の ⾼速化 借⾦の帳消しへ 安全に返済を加速 30
まとめ ★ 価値のあるシステムとは 技術者にしか出来ないこと 古くてもユーザーに愛され、 稼げるシステムが強い 価値のあるシステムを 5年、10年後も維持すること 「新しい技術に挑戦するだけ」 になるよりも魅⼒的
システムを⽀えるのは 「技術⼒」と「組織⼒」 31
価値を引き継ぎ次の層をモダンに積む。 ここでしかできない開発、 ⼀緒にやりましょう! viviON エンジニア採⽤ 32
⾮公式アフターイベントやります! connpass 33