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 |