YAPC::Asia Tokyo 2014

Aug. 28, 29, 30 at KEIO Univ. Hiyoshi Campus [There Is More Than One Way To Enjoy It!]

Talk Information

Perlで書かれたレガシーなアプリケーションをモダン化する道のり

This talk is currently in 'Rejected' state

Abstract

サービス開始から10年以上たちレガシーの塊と化した中規模(?)なアプリケーションから、古いものを捨てつつつ、置き換えつつ、地道にリファクタリングしつつで、なんとかモダンで開発しやすいものにしました。その過程で行ったこと、考えたこと、得たこと、使ったモジュール、ツールなどについてお話しします。

元になっているアプリケーションは、

  • 超ファットコントローラー
  • mod_perl1 と独自WAF
  • ユニットテストほぼなし
  • Data::ObjectDriver を継承し拡張に拡張を重ねたモデル層、多様なバリデーション
  • 独自スーパーバイザー、アプリケーション起動制御のための仕組み
  • 共用 VM と秘伝のタレ化した Makefile、ドキュメントなしで構築した開発環境

という約18万行のPerlで書かれたものです。

10年前には今のような便利で汎用的で標準化されたような仕組みもなく、多くの独自な仕組みの上に成り立っていました。これを、

  • ファットコントローラーからドメインロジックを分離
  • Starlet + Mojolicious
  • とにかくユニットテスト
  • 新しい Perl で動くコードへ
  • Data::ObjectDriver ベースは変わらず、拡張を薄く、バリデーションの統一化
  • Proclet/Supervisor、Parallel::Prefork で実行、プロセス管理
  • Vagrant + Puppet + Makefile による開発環境

という形までなんとか移行しました。

同じようなケースを抱えている方へ少しでも参考になる部分があれば...。


Talk Details

Venue TBD
Starts On TBD
Talk Category Applications
Language Japanese
Slide Subtitles Japanese
Talk Duration 40 minutes
Material (Difficulty) Level Regular
May we take your photo? allow
May we record your talk? allow