新卒から4年間、20年もののWebサービスと向き合って学んだソフトウェア考古学 by 小栗 大輝

PHPerKaigi 2025
レギュラートーク(20分)

新卒から4年間、20年もののWebサービスと向き合って学んだソフトウェア考古学

_guri3 小栗 大輝 _guri3
2

古いコードベースを読み解く作業はしばしば「ソフトウェア考古学」と呼ばれ、多くの人にとって大変で辛い作業と思われがちです。
しかし、サービスの歴史を辿ることで当時の設計思想や変化の過程を知ることができ、それ自体が良い設計を体験し、学べる貴重な機会でもあります。
私の実体験としても20年もの歴史のあるWebサービスの考古学からは学べることがたくさんありました。

本トークでは、新卒5年目エンジニアである私が、20年以上稼働し続けるWebサービスの改善に向き合う中で試行錯誤したことをお話しします。

お話すること

  • 古いコードベースを読み解き改善を行った事例とその課題
    • Webメディアの広告運用のための管理画面改修
    • 歴史の塊のバッチ処理をPerlからPHPに移行する
  • 全体を知るための「鳥の目」と細部を観察するための「虫の目」の考え方
    • 鳥の目で意図や構造を理解する作図ツールなどを使ったコードの読み方
    • 虫の目で詳細を把握するためのデバッグ方法
    • 「どこまで深掘りするか?」の判断基準
  • ソフトウェア考古学の経験から学んだこと
    • 理解しやすいコードを書くコツ
      • 自分が書いたコード、その後どうなった?上手く行ったこと、行かなかったこと
    • ソフトウェアの健全な変化を助けるドキュメントとは?

話さないこと

  • トークの中で出てくるツール自体の詳細な使い方
  • リファクタリングやデータ移行といったソフトウェア改善に伴う手順の詳細

聴いてほしい人

  • コードベースが古い環境で悩んでいる人
  • 歴史のあるコードを改善したいと思っている人
  • プロダクションコードに初めて触れ、規模の大きさや複雑さに圧倒された経験のある新卒の人たち