2021/02/19 に公開 895 views

このエピソードについて

@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 のテストなどが減り効率上がっているため

TypeScript移行には賛成?反対?

Refs