VSCodeに移行すべき5つの理由

# :book: この記事 is 何?

最近、生産性について考え直す機会があり、自分の開発環境周りの棚卸しや見直しをしている時にVSCode（Visual Studio Code）に興味を持ちました。(今更)

実際に使ってみたらとてもいい感じだったので、そのままVSCodeに移行してしまいました。この記事は**VSCode移行の際に感じたことのまとめ**になります。

VSCode入門(インストール方法や、基本的な使い方)的な話はありませんので、そちらは公式ドキュメントご参考ください。
https://code.visualstudio.com/

**エディタ難民やエディタの移行を検討している人の参考になれば幸いです。**
(念のため書いておきますが、VSCodeやMicrosoftの回し者ではありません。)

## :question: エディタの乗り換えは本当に必要か

まず初めに、「エディタの乗り換えは本当に必要か？」というところからスタートします。

答えは、「**人による**」です。

### :no_good: 移行をおすすめできない人
現在進行形で愛しているエディタが有る方、また愛しているエディタと長い時間を過ごしてきた方にとっては、移行はおすすめできません。(されたくもないと思います)

いろいろな意味で、**移行コストが高くなることが容易に想像できる**と思います。

ただ、それでも触ってみることで、新しい道が開けたり、愛しているエディタへの**愛が更に深まる可能性はある**と思います。

### :ok_woman: 移行をおすすめできる人
逆に、以下のどこかに引っかかるような人には、移行をおすすめできます。

- 今使っているエディタを、**いまいち使いこなせている感じがしない**
- 開発は初心者なので、**どんなエディタを使っていいかよくわからない**
- 周りが使っているエディタに流されて自分も同じエディタを使っているが、**あまりしっくり来てない**

移行へのモチベーションは、各自のコンテキストによりますが「完全移行するぞ！」と意気込むより、「合わなかったら戻ればいい」くらいのほうが気が楽ですし、自分も実際そうでした。

ただし、移行を検討するなら**移行目的をハッキリさせておいたほうが良い**と思います。「撤退」も「見切り」もやりやすくなると思うからです。

## :thinking: なぜVSCodeなのか？

次に、なぜVSCodeなのでしょうか？

理由はいくつかありますが、一番背中を押された感があったのは「**周囲の信頼筋から後押しがあった**」です。エディタのリファラル採用ですね。

口コミは大事ですが、それだけだと自分にしか当てはまらない為、後押し以外の理由を以下５つにまとめます。

# :one: built-inされている機能のバランスがいい

基本的な機能(エディタ、補完、デバッガ、ソースコード管理(Git))はbuilt-inされており、開発フローでやりそうなことは大体最初からできるようになっています。

カスタマイズも容易で、何かしらの設定変更をしたい場合に、やり方が決まっているので調査・選択コストが低く、一度やり方を覚えれば推論して設定することが容易です。つまり、**覚えることが少ない**ということです。

また、生産性向上に寄与する機能として、**IntelliSenseでのヒント表示や入力補完**やデバッガが大きくフィーチャーされることが多いですが、個人的には**統合ターミナル**が素晴らしいと感じています。

統合ターミナルとは、VSCodeのパネルのひとつとしてbuilt-inされているターミナルのことです。

**昨今のエンジニアの責務はどんどん拡大しており、コードだけ書いていればいいというわけには行かず、ターミナルを使った作業もかなり多い**と感じています。

基本的なコマンドラインの作業は統合ターミナル上で十分こと足ります。iTerm2.appやTerminal.appにしかない機能を使いたい場合もありますが、どうしても他のアプリじゃないとダメということは以外に少ないと思います。

VSCodeのプロジェクトと紐付いた統合ターミナルで作業することで、やるべきことが明確になりますし、VSCode ↔ Terminal 間のウィンドウ切り替えをしなくて済みます。

**アプリの切り替えをすることなくひとつのエディタで、コードを書くこととターミナルを行き来できるのはかなり快適**です。

# :two: ドキュメントがしっかりしている

公式ドキュメントがしっかりしています。

検索すればいろんな使い方の記事が出てくると思いますが、**公式サイトを一読すれば大体わかります**。

唯一、ハードルとして考えうるのは英語ですが、簡易な英語で書かれていますし動画も多いのでそんなに気にならないと思います。

どうしても日本語がいい場合は以下の記事が参考になります。
http://www.atmarkit.co.jp/ait/articles/1507/10/news028.html

基本的な操作についてはほぼ網羅していますし、**しっかり更新もされています**のでおすすめです。

**何か情報を得たいと思った時にリーチしやすいと感じました**。

# :three: セットアップにかける時間が少ない
**はじめから大抵の機能は使えるようになっている**おり、素晴らしいです。

設定のカスタマイズも、デフォルト、ユーザ、プロジェクトの3つで考えれば良いので**シンプル**です。

また、VSCode内のエディタグループも最大3つまでしか作れないような制限があり、ウィンドウをセットアップしすぎて逆に煩雑になることをデフォルトで回避できるようになっています。

拡張機能については、インストール方法が統一されていますし、オススメの拡張機能が勝手にレコメンドされますし、**ポチポチやっていれば大抵はいい感じに整います**。

インストールした拡張機能のドキュメントへのアクセスや、アンインストールも簡単です。

他のエディタで考慮するような、**ターミナル機能やプラグイン管理機構の選定から解放されます。**

# :four: 勉強リソースの投資先としてコスパがいい

VSCodeの開発元はMicrosoftですので、**巨人の肩に乗る**という表現はぴったりです。また、最近の流行りもあってユーザ数も増えているようで、**廃れるリスクはかなり低い**と感じます。Githubでのスターも現時点で34000を超えており、ユーザー数の多さがわかると思います。
:octocat: https://github.com/Microsoft/vscode

クロスプラットフォームなので、例えば開発環境がMacから、UnixやWindowsに変わっても、困ることは少なそうです。

セットアップが容易なこともあって、慣れるまでの時間が少なく、学習曲線的にも初期段階でかなり使いこなせるようになるまで上達すると思います。

つまり、**割いた勉強リソースが無駄になりにくく、また初期段階での習熟効果が高い**ということです。

# :five: 高いカスタマイズ性

特に、**「拡張機能」と「ショートカットのカスタマイズの容易さ」**が素晴らしいと思います。

VSCodeは、拡張機能をインストールする際のプラグイン機構がbuilt-inされています。依存性があれば一緒にインストールしてくれますし、新しいバージョンが出たら通知してくれます。

拡張機能にはマーケットプレイスがあるので、サイドバーで検索すれば欲しい機能は大抵ヒットしますし、インターネットを逐一探し回らないで済むような仕組みになっています。

もし希望の拡張機能がない場合、自分で作るのも簡単そうです。

また、キーバインディングの変更も拡張機能で提供されており、Atomやvimなど**主要なエディタのキーバインディングで操作することも容易**にできます。

テーマも同様に、機能拡張でインストールして簡単に切り替えることができます。

**ショートカットのカスタマイズは一覧性に優れ、変更も容易でデフォルト設定なのかユーザ設定なのか一目瞭然**です。ショートカット一覧はVSCodeを立ち上げていればすぐに確認できますし、必要ならチートシートがpdfでダウンロードできます。

# :writing_hand: まとめ

正直、**いまさらエディタ変えるのってしんどいな:weary:という気持ちが強かった**のですが、実際に移行してみたらすっかり**VSCodeナシでは考えられない:yum:状態になっていました**。

単純に考えれば最終的に合う合わないという話に収束されると思うので、VSCodeへの移行を無理に促すつもりは一切ありません。

ですが、実際に自分がVSCodeに移行してみて、**確実に生産性が上がっている**と感じたのは事実です。

コードを書くだけでなく、テスト実行に掛かるコスト、カスタマイズに掛かる調査・設定コストや、エディタとターミナルの往復コストだったり、**普段意識しないようなところがいい感じに改善された**と感じました。

自分が携わる開発では、golang, node.js, json/yaml周りの記述が多いです。
golangアプリの開発では、デバッグ周り、型の確認、ユニットテストの自動作成、テストコードカバレッジの可視化など、拡張機能による恩恵をハッキリと感じました。

おそらく、それって〇〇でもできるよって話は大いにあると思いますが、同じことができるかできないかという機能単体の視点ではなく、**上記の5つの理由からエコシステムとして全体的にバランスが良く、今後も成長を見込める可能性にあふれていると感じた**というのがVSCodeオシのまとめになります。

**普通に使うだけで生産性があがるなら、一度は触ってみる価値があるんじゃないか**と思います。

以上、VSCodeへの移行を検討している人の参考になれば幸いです。