株式会社ドワンゴ / エンジニア
レガシーシステムを Kotlin でリプレイス
老朽化して機能停止しかけていた既存の業務システムを Kotlin でリプレイスしました。 対象のシステムは、長い歴史のある PHP 製モノリスの中の一部でした。 依存する外部 Web API のクライアントライブラリのバージョン更新ができておらず、API バージョンの廃止に伴って機能しなくなることが見込まれました。 そこで以下のような事情から、当該部分をモノリスから切り出して実装し直すことに決まりました。 ・API クライアントのバージョンを上げるには PHP のメジャーバージョンを上げる必要があり、かなりの工数がかかる ・対象のコードは約 3,000 行ほどで、モノリスの他の部分と関係が薄い 言語選定は、API の公式クライアントライブラリが提供されている Java, .NET, PHP, Python, Ruby に限定されたため、主に以下の理由により Kotlin を選定しました。 ・比較的強力な型システムを持ち、尚且つ Java より書きやすい ・既存の Java コードとの相互運用が簡単で、チーム内で部分的に Kotlin の導入が始まっていた 実装の際はクリーンアーキテクチャに近い設計にして純粋関数の部分を増やし、ユニットテストをしやすい形にしました。これによってテストコードがリプレイス前よりも充実し、改修やライブラリのバージョン更新などが短時間で自信を持ってできるようになりました。