エディター論争に終止符?もはや手放せない「VS Code」の魅力とは ~エンジニアが語る技術愛 #13~

エディター論争に終止符?もはや手放せない「VS Code」の魅力とは ~エンジニアが語る技術愛 #13~

MIXIには、探究心あふれるエンジニアがたくさん在籍しています。
その探究心は業務で扱う技術に留まらず、趣味で書いているプログラムだったり、個人的に研究している言語だったりと、自身の気になった技術への追求も留まることを知りません。今回は、会話AIロボット『Romi』の開発に携わるサーバーサイドエンジニアの加藤に「Visual Studio Code(以下VS Code)」の魅力を語ってもらいました。

加藤 修悟
Vantageスタジオ Romi事業部 開発グループ

2021年4月 新卒入社(2019年夏に同チームでインターン)。メインはサーバー、インフラ。Webフロントも担当。趣味はゲーム、料理、電子工作など。

直感的に良さそうと感じた

━━VS Codeを知ったきっかけを教えてください
VS Codeに出会ったのは大学生のときです。実はそれまでエディターに特別強いこだわりは持っていなくて、その時にあるものを適当に使っていました。たとえば教授がEmacsを使うように言えば、それに従う程度の感覚でした。
そんなときに、ある教授が他の教授とまったく違うエディタを使っているのを見ました。これは何だと思い、調べる中で出会ったのがVS Codeです。

━━最初のVS Code体験はいかがでしたか?
最初は機能が多いなと感じました。元々エディタに強いこだわりはなかったので、移行は苦労せずにできましたし、ぱっと見ですごく使いやすそうでしたね。直感的に便利そうだと思いました。今ではこんなすごいエディターが無料なのはおかしいと思ってしまうくらい使いこんでいます。

━━VS Codeといえば多彩な設定や機能拡張が有名ですが、こだわりはありますか?
キーバインドについては、ほぼデフォルトのまま使っています。機能拡張については、もちろんたくさん入れています。

━━イチオシの機能拡張はありますか?
これは悩みますね。よく利用しているものとしてはindent-rainbowがあります。これはコードのインデントに合わせて、背景を色づけしてくれる機能拡張です。私は業務ではPythonをメイン言語として書くのですが、Pythonはインデントがとても重要な言語です。インデントがずれると動かなかったり不具合につながります。そのため視覚的に、カラフルにインデントが分かるindent-rainbowは重宝しています。

あとはGit Lensという機能拡張です。これはGitリポジトリのすべてが見られるようになる機能拡張です。たとえば行を変更した人が誰なのか、瞬時にわかります。Git Lensを使えば、あるモジュールを誰が作ったのかすぐに分かるので、利用に際して分からないことがあれば本人にすぐ聞けます。最近ではGit Lensがイチオシですね。

━━自作VS Code機能拡張があるのですよね?
私が作ったのはPythonのinitファイル(__init__.py)をワンクリックで作成できるPython init Generatorです。initファイル自体は一度作ってしまえばおしまいなので、何度も使う機能ではありません。ただ、Python init Generatorを使うとinitファイルを自動で作ってくれるので便利です。この機能拡張はVS CodeのMarketplaceに公開していて、1万くらいのダウンロードになっています。

━━良いですね!同じところにストレスを感じていた人たちが多かったのかも知れませんね
そうですね。一定の需要はあったのだろうと思います。

社内でVS Codeを布教中

━━VS Codeを社内で布教中と聞きました
チームの中でVS Codeを使っている人はまだ、あまり多くありません。布教活動を続けているのですが、なかなか進んでいません。トライしてくれる人もいるのですが、VS Codeの中にあるターミナルでEmacsやVimを開いてしまったりします。

━━布教する良い方法はありそうですか?
一緒にペアプログラミングしつつ、実際に使っている画面や便利な機能を使ってみせるのが一番良いかなと思います。VS Codeには、オンラインでペアプログラミングができるLive Shareという拡張機能があります。これはGoogleドキュメントのように共同編集できる機能です。

ペアプログラミングでは画面共有を使うケースもありますが、文字が潰れてしまったりしてすごくやりづらさを感じます。VS Codeではそういった問題はなく、誰が今どこにカーソルを置いているかも見られますし、今からここに書くからと伝えながらペアプログラミングができて、とても便利です。

ペアプログラミングのドライバー側の方がVS Codeを使っているのであれば、ナビゲートする側の方もVS Codeを使ってほしいです。そうすれば楽に見やすく、綺麗にナビゲートできます。こういったVS Codeならではの便利な使い方を通して、VS Codeは怖くないと知ってほしいですね。

━━移行してもらえない要因は何がありそうですか?
恐らくですが、今のエディタに慣れすぎていて移行コストが高い状態なのだと思います。また、ターミナルからファイルを開いて、コマンドも実行する方法に慣れている方もいます。こうした方はVS CodeのターミナルからEmacsやVimを立ち上げるのかなと思います。

━━とはいえ、チーム内でVimからVS Codeに移行した方もいるようですね?
はい。私がチーム内での情報共有会などでVS Codeを使っているので、試そうと思ってくれたようです。ある日、タスクが全部終わったからエディター移行にチャレンジすると言ってくれました。これが私起点なのかは分からないですが、嬉しかったですね。

━━移行した方の反応はどうですか?
その方はVimにあまり拡張を入れずに使っていたそうなので、初期状態での機能の多さに驚いていたようです。私も離脱されないように、都度こういう便利機能がありますとTips的に教えていました。

━━どう良さを伝えていったのですか?
Romiのチームでは、分報という文化(Slackチャンネル)があります。何か困っていること、何をしているかをTwitterみたいに投稿しています。色々な方が投稿しているので、そこにVS Codeっぽい話を見かけたら、すかさずフォローしたり、機能やコマンドを紹介しています。

━━社内で情報交換などはしていますか?
昔はしていたのですが、今はあまり積極的ではないようです。標準機能で十分便利になっているので、個々に自分好みのエディターに育てているようです。機能拡張も膨大になっているので、自分が便利だと思っていたのに、実はさらに便利な拡張が存在していたなんてこともあります。

私の情報源としては、お勧めな機能拡張をまとめたブログ記事を参考に新しくインストールしたり、差し替えたりしています。そうして得られた知見を、チーム用のQiitaにまとめています。この記事をVS Codeをはじめようとしている方に共有しています。社内にはVS Code使いの方がたくさんいると思いますので、この記事を読んだらぜひ声をかけてきて欲しいですね。

━━VS Codeは手放せない存在ですね
たとえばAWSで適当にインスタンスを立ち上げた場合、EC2 Instance Connectからしか接続ができません。そうなるとSSH周りの設定が面倒で、VS Code以外のエディターで頑張って作業する必要があります。そのときは手が全然動かなくて苦労しますね。

その場合は設定ファイルを一旦ローカルに持ってきて、編集してからリモートにコピーするといった作業をします。もうVS Codeが手放せないですね。その意味では会社でVS Code禁止令が出てしまったら、自分の生産性は激減して職を失ってしまうかも知れません(笑)。

生産性に関連して思い出すのは、VS Codeのハイライトでコードの問題に気づいた経験です。私のテーマ設定では変数や文字列、関数がそれぞれハイライトされています。VS Code上にほとんど白い文字がない状態です。

そのためハイライトが普段と違ったり白い文字があると、感覚的に何か問題があると勘づきます。プログラミングコードを細かく追わなくても、VS Code上の色合いと自分の感覚のズレだけで問題に気付いたのには驚きました。これはまったく意識していなかったのですが、自分がVS Codeに最適化されていると感じた瞬間でしたね。

━━ちなみにテーマは何を使っていますか?
私はDark+という最初からあるテーマを使っています。

開発でのVS Codeの活かし方

━━チーム内でのエディター派閥はどうなっていますか?
私のチームについて言えば、かなりバラバラな印象です。VS Code派の人もそれなりにいますが、別なエディターを使っている方も多いです。
サーバーのコードをよく書くという方はVimを使っている方が多いですね。

━━サーバーサイドでもVS Codeはここが便利だよ、というポイントはありますか?
VS CodeはRemote Development機能が便利だと感じます。リモートに接続しながらファイル編集しても、ほぼローカルでのファイル編集と変わらない体感で開発が行えます。ラグを感じることはありません。

VS Codeからサーバーに接続してファイル編集したとしても、ローカルと同じくらいの速度で動作できるのですごいです。他のエディターの場合、遠くのリージョンにあるファイルを編集しようとすると、キーを入力してから表示されるまでにラグが生じます。しかし、VS Codeではまったく感じません。仕組みは分かりませんが、表示と実際のファイル編集を非同期にしているのかも知れません。

リモートファイルの編集時にもペアプログラミングができるので、ローカルやリモートを意識せずに使えるのが便利です。今のようにリモートワーク全盛の時に、特に活かせます。私のチームではAWS上に開発サーバーを用意しているので、そうした時にも活かせています。

━━VS Codeがもたらしているチーム開発でのメリットはありますか?
レビュー時における定義ジャンプはとても役立ちますね。人が書いたコードなので、自分の知らないメソッドを呼んでいることも多々あります。そうしたメソッドが何をしているのかを都度検索して確認するのは大変です。

しかし、VS Codeならばコマンドキー+クリックやショートカットキーで定義はもちろん、メソッドや変数を追いかけられます。この定義ジャンプはコードレビューだけでなく、自分でコードを書くときにもよく利用しています。

まずは1ヶ月使ってみて欲しい

━━最新情報のキャッチアップはどう行っていますか?
アップデートは都度行うようにしていて、その際にはCHANGELOGを読むようにしています。VS Codeのアップデート情報はとても親切で、新しく追加された機能についてはアニメーションGIFで解説してくれます。英語をしっかり読み込まなくても、視覚的に内容が理解できます。まず更新情報をスクロールしつつ、面白そうな機能についてアニメーションGIFで確認して、その周辺の英文を読むと言った感じでキャッチアップしています。

━━最近追加された中でお勧めな機能はありますか?
最近マージエディターのような機能が追加されました。これはGit操作周りでコンフリクトを起こした時に、どちらの差分を採用するか上手に選択できる機能です。この機能は賛否両論あるようですが、個人的には好きな機能です。

━━今後に期待したいことはありますか?
昔は多少なりとも不満があったのですが、VS Codeはどんどん改善が進んでいて、ほとんど不満がなくなっています。強いて言えば、他のエディターからスムーズに移行できる機能拡張や方法を紹介してくれるようなガイドがあると良いかなと思います。

━━VS Codeを使ってみたいけど躊躇している方に伝えたいメッセージはありますか?
VS Codeを使えば、生産性はまず間違いなく上がるはずです。もちろん瞬時ではなく、使い慣れるまでの期間は必要です。1ヶ月あれば十分恩恵を感じられると思うので、まず騙されたと思って1ヶ月使ってみて欲しいです。
1ヶ月使ってみても慣れなかったら、騙されたと思って前のエディターに戻っていただければ……(笑)。

PAGE TOP