- インタビュイー
- LINE証券フロントエンドにおける型安全性への取り組み
(LINE DEVELOPER DAY 2020) - URL:https://
linedevday. linecorp. com/ 2020/ ja/ sessions/ 5101
2020年11月に開催された
徐々に浸透した型安全の重要性
- ――LINE証券でフロントエンド開発に利用しているTypeScriptには,
どういったメリットがあると考えていますか。 鈴木:TypeScriptの魅力として,
まず挙げられるのはJavaScriptとの互換性です。もともと型のないプログラミング言語であるJavaScriptに, 型を付けたようなプログラミング言語がTypeScriptなので, JavaScriptの経験さえあればTypeScriptでのプログラミングもそれほど難しくありません。実際, LINE証券のプロジェクトでTypeScriptを採用したときも, それ以前にTypeScriptを使ったことがないメンバーは結構いました。 TypeScriptを採用したメリットとしては,
型があることによる安全性が大きいと考えています。TypeScript以外の選択肢もありますが, フロントエンド開発でそれ以外の言語を使って型の安全性を得ようとすると, JavaScriptと大きく異なってしまいハードルが高くなってしまうという問題がありました。 - ――型の安全性に関する理解は,
すぐにチーム内に浸透したのでしょうか。 水牧:チーム全体の雰囲気として,
新しいものを抵抗なく受け入れるところがあり, TypeScriptを用いて型を定義することについても, 「とりあえずやってみよう」 という雰囲気で始まりました。 ただ,
型の重要性は最初から理解されていたわけではなく, それなりにコードを書いてから徐々に良さがわかってきたという感じです。しっかりと正確な型を書くように心がけコードを書き進めることで, 型の恩恵にあずかる場面が増え, それによりさらに正しい型を書こうという意識が芽生えてくるといったイメージです。 それとTypeScriptに強い人ということでチームにジョインした鈴木の布教もあり,
チーム内に型の重要性が徐々に浸透しました。 - ――チームに型の重要性を伝えるために,
具体的にどういったことを行ったのでしょうか。 鈴木:最初はとにかく型をちゃんと書いたほうが良いということを重点的に伝えました。TypeScriptを使っていても,
その恩恵を100%享受できているかはどうかは別問題です。そこで, たとえばコードレビューなどを通して, TypeScriptを使っているのに恩恵を受けられていないといった場面があれば, 自分の考えを伝えて, こういうふうにやるとTypeScriptの嬉しさがもっとも引き出せるんだということをチームのメンバーに共有してきました。 - ――コンパイルオプションで暗黙のany型をエラーにする
「noImplicitAny」 を有効にしたとのことですが, これを決めたときのチームの反応はどうだったのでしょうか。 鈴木:新しいことはとりあえずやってみようというチームなので,
私が 「noImplicitAnyがオフになっているよ, オンにしましょうよ」 と言ったときは 「とりあえずやってみよう」 という感じでした。 ただ,
それが即座に浸透したかどうかは別の話だとも思っています。実際に取り組み始めたとき, noImplicitAnyによって発生したコンパイルエラーに対処してくれる人を募集したのですが, そういったことに興味を持つかどうかはチームメンバーの中でも個人差があります。やれば確実に改善になるのですが, 直接的に新しい機能が増えるというような話ではないため, どこまで興味を持つかは人によって違うなと感じました。