事業の初期フェーズにおける

TypeScriptの付き合い方

2019.8.26 NuxtMeetUp#9 オールスターズ

@daijiro_ma

自己紹介

  • 前山 大次郎 (@daijiro_ma)
  • 株式会社テックピット

経歴

  • 2018年に新卒でガイアックスに入社
  • 入社3ヶ月後にテックピットを創業
  • 今年の3月にガイアックスからスピンアウト
  • 現在、コンテンツ全般・プロダクト周りを担当

CtoC型のプログラミング学習教材のマーケットプレイス

プログラミング学習教材のマーケットプレイスとして
教材作成者と購入者をマッチング

👨‍💻

プログラミング

学習者

👨‍💻

現役

エンジニア

教材を販売

料金

教材を購入

料金

こんなエンジニアにおすすめ

  • 自分も学習者のときに苦労した

  • 技術書典とか出してみたい、でも執筆はじめてで執筆ノウハウを学びたい

エンジニアが新しいエンジニアを育てる

エコシステムを創る

エンジニア不足という

大きな社会課題を解決するべく

Techpitでは

NuxtとTypeScriptを使っています

TypeScriptは素晴らしい

Google Trend

TypeScript Support for Nuxt.js

But

TypeScript使うのやめました

今日はなすこと

  • なぜTSを導入したか
  • 実際どうだったのか
  • TSからJSの移行方法
  • 今後の展望

前提として

事業の初期フェーズ

スタートアップであるということ

また開発チームは

  • 業務委託

  • フリーランス

  • 学生インターン

なぜTSを導入したか

なぜTSを導入したか

  • コンポーネントのデータ型を管理したい
    という期待
  • TypeScriptの波がきている

実際どうだったか

実際どうだったか

  • MVPの段階では、仕様がよく変わり
    1ページだけ変更したいときがある
  • 全体的に適応する型を作りたいけど、スピードを優先すると部分的に適応する型を作ってしまう
  • ページごとに違う型ができ、TSの恩恵が
    受けれなくなった

実際どうだったか

  • MVPは最低限の機能しか作らないので、ブラッシュアップするのが前提にある。
    なので変更しやすい方がいい
  • ただ型があると影響範囲が広く、微修正にも工数がかかってしまう

さらに

さらに

  • 開発チームは業務委託と学生インターンで構成
    されていて非常に流動性が高い
  • 静的型付け言語に不慣れなメンバーも多く、
    とりあえず動くコードを書くためにany型が
    多く使われている状態

結果やめました

初期フェーズでは整合性よりも機能追加の
スピードや仮説検証しやすい方が事業として重要

開発チームの流動性が高く、静的型付け言語に
慣れているメンバーが常にいるとは限らない

移行方法

移行方法

  • 人力でコンバート
  • 一気に全て移行する必要はなく部分的に移行が可能

ただ

VuexだけはTSをやめなかった

なぜVuexだけはTSを使うのか

  • APIはシンプルなRESTfulでAPIから持ってくる
    データはそんなに変わらなかった

  • APIから持ってきたデータは色々な場所で使われるのでデータの整合性を検証できるのは大きい

投資する価値があると判断

今後の展望

今後の展望

  • 事業規模が大きくなって、サービスの品質の優先度が上がり始めたら全体的にTSを導入
    するメリットは大きくある
  • ユースケースが確定したページや機能は徐々に
    TSに置き換えていきたい

今後の展望

  • Nuxt + TypeScriptはまだまだ発展途上だが、
    TypsScriptへの対応は確実に前進している
  • NuxtプロジェクトでのTypeScriptの知見を少しずつ
    貯めていきたい

TSを導入するに当たって考慮すること

  • 事業フェーズ

  • 開発チームの状態

事業フェーズ

  • 事業の初期フェーズ(MVP・小さいサービスを作るとき)は最適化や共通化をしていくことより、早く
    作り壊しやすい方がいい
  • 短期的な生産性を求めているのであれば、NuxtとTypeScript とは相性があまり良くない

開発チームの状態

  • 開発チームの状態やスキルセットによってはTSが重荷になることがある
  • TSに不慣れな人が多い、またはチームメンバーの流動性が高ければTSを導入しない方がいい

無理せず最大限恩恵が

受けられる環境を目指しましょう

さいごに

Techpit

教材を作成してくれる方

募集してます!

ここから登録できます

ご静聴ありがとうござました

初期フェーズにおけるTypeScriptの付き合い方

By Daijiro Maeyama

初期フェーズにおけるTypeScriptの付き合い方

2019.8.26 NuxtMeetUp#9 オールスターズ

  • 3,608
Loading comments...

More from Daijiro Maeyama