@potato4d が、 @hyena_shoyo_kyo と @pittanko_pta に、 2020年7月に行ったTypeScriptへのマイグレーションのその後とコスト感について話を聞きました。
ゲスト紹介
- shoyo.kyo
- @hyena_shoyo_kyo
- フロントエンド開発センター UIT 1室 UIT Dev 3 Team
- LINEポイントクラブとLINE LIVEのフロントエンドをメインに担当
- amon.keishima
- @pittanko_pta
- LINE Growth Technology UIT Team
- LINEポイントクラブのフロントエンドをメインに担当
LINEポイントクラブ
- 2013年にリリースをした、LINE運営のポイントサイト
- 2020年5月にサービス名を新たに、LINEポイントクラブと言う名称でリニューアル
- 2020年7月に大型リファクタがリリース
- LINEの主力サービスの一つとして定義されている
- 様々なプロジェクトのプロモーションを担っており、ハブとなる役割を持つサービス。
- 他のサービスよりも会社の大きな方針の影響を受けやすい傾向
TypeScript 移行について
- ステップを 5 つにわけて実施
- step1: TypeScriptの導入基盤整備(環境構築)(ep.55 の時点ではここまで)
- step2: Util関数のTypeScript化とリファクタリング
- step3: Vuex つまりStoreのTypeScript化とフルリファクタリング
- step4: APIのType定義
- step5: VueファイルのリファクタリングとTypeScript化
- 想定目標
- 2年 (1日平均3時間稼働想定)
- 進捗
- 70%ほど完了(step5を残すのみ)
- 実績を元に目標修正
- 1年半 (1日平均2〜3時間稼働) 完了見込み
かかったコストについて
実際に TypeScript を本格的に書いたことがない kyo さんが行った結果
key | value |
---|---|
開発メンバー | TypeScriptになれたメンバー1名とともに業務を進行 |
TypeScript移行にかけた時間 | 一日あたり2~3時間 |
習得したと認知できるまでの期間 ※1 | 半年 |
リリースへの影響 | 機能追加と合わせて毎回リリースすることで専用のリリースはなし |
- ※1 誤るとアプリケーションにクリティカルに影響する API の型定義あたりまでスムーズにできるようになるまで
TypeScript 移行のコスト対効果は?
- 前提として、コストパフォーマンスを優先してはいない
- それ以前の、開発メンバーのメンタルケア要因が最優先
- 生産性が高まることにより、結果としてペイするのがベスト
- 一方で、正当性のためにしっかりとメトリクスはとっている
- 2年半でペイする予定で開発を進めていたが、もう少し早く回収できそう
- 一年半の移行が早く終わりそうであるため
- 移行の途中の段階で手動での Pull Request のテストなどが減り効率上がっているため
- 2年半でペイする予定で開発を進めていたが、もう少し早く回収できそう
TypeScript移行には賛成?反対?
- LINE 内でも様々な意見があり、日々議論されている TypeScript 移行について
- 以前もTypeScriptの導入にあたって考慮すべきメリットとコストという記事が話題になった
- kyo さんは実は TypeScript 移行には中立派
- その理由は、ep.78 にて公開予定
Refs
- LINE 新卒採用 2022
- キャリア採用はこちらから
- BGM&SE
- 魔王魂/騒音のない世界/OtoLogic