うちのチームにおける
TypeScriptの付き合い方
2019.8.26 NuxtMeetUp#9 オールスターズ
@daijiro_ma
自己紹介
- 前山 大次郎 (@daijiro_ma)
- 株式会社テックピット
経歴
- 2018年に新卒でガイアックスに入社
- 入社3ヶ月後にテックピットを創業
- 今年の3月にガイアックスからスピンアウト
- 現在、コンテンツ全般・プロダクト周りを担当
CtoC型のプログラミング学習教材のマーケットプレイス
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1055251/images/6094656/techpit-top-page.png)
プログラミング学習教材のマーケットプレイスとして
教材作成者と購入者をマッチング
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1055251/images/6102184/techpit_icon4.png)
👨💻
プログラミング
学習者
👨💻
現役
エンジニア
教材を販売
料金
教材を購入
料金
こんなエンジニアにおすすめ
-
自分も学習者のときに苦労した
- 技術書典とか出してみたい、でも執筆はじめてで執筆ノウハウを学びたい
エンジニアが新しいエンジニアを育てる
エコシステムを創る
エンジニア不足という
大きな社会課題を解決するべく
Techpitでは
NuxtとTypeScriptを使っています
TypeScriptは素晴らしい
Google Trend
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1055251/images/6453540/4572b8397befc8ea80d91fc6c4886ee1.png)
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
教材を作成してくれる方
募集してます!
ここから登録できます
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1055251/images/6474258/スクリーンショット_2019-08-26_11.41.41.png)
ご静聴ありがとうござました
うちのチームにおけるTypeScriptの付き合い方
By Daijiro Maeyama
うちのチームにおけるTypeScriptの付き合い方
2019.8.26 NuxtMeetUp#9 オールスターズ
- 6,382