Java
VisualStudioCode

Visual Studio Code で Java な仕事してみてわかったこと

とりあえず丸一日Eclipseを起こさず仕事出来たのでメモ。やったぜ超快適!

構成

  • Java Extension Pack
  • Tomcat for Java

あとは外見いじる系ぐらいしか入れていない(アイコンとか)。
幸いにも今の現場は Git を使っているのだが、これについてはどうせ SourceTree とコマンドラインでやっているのでまあいいか、とほったらかすことにした。

なお、フォントには Fira Code を使っている(コレも試験的に導入したもの)。別の方の導入記事があるのでそちらを参照して欲しい。
https://qiita.com/shuntksh/items/1995e87fe5c1ac88296f
(本当にありがとう! 使っていて地味に読みやすくて捗る……)

やっぱり困るところはちょこちょこある

いきなりだが、VSCodeはJava Nativeなものではない。やっぱり困るところは少しあるのだ。……いや、ほんとに少しだったし、適当になんとかなるものだったのだが。

UT 用ライブラリ群が解決できない!

仕事場では maven が使われている。
Gradle かなんかに乗り換えない? とか思うが、まあ使われているものはしょうがないのである。
VSCode においてもやはり maven は標準的なものだと考えられているようで、 Java Extension Pack には maven サポートプラグイン、 Maven for Java も含まれている。コンテキストから mvn package とか叩けたり、 Effective POM の表示とかしてくれるやつだ。
しかし、どういうわけか UT 用のコードがどれもこれも全て死んでいた。もれなくコンパイルエラーだ。「そんなの解決できねーよ!なんだよそれ!」と言ってきていたのだ。

原因はよくわからないのだが、どうやら test scope を指定したライブラリをうまく読んでくれないようだった。
仕方なくtest scope の指定を外して解決した。まあそりゃ compile scope で読めなかったらホントにどうしようもないわな。

なお、なんとか別の maven project で再現して Issue を上げてやろうと思ったのだが……ちっとも再現しなかった。きっとプロジェクト構成が悪かったんだろう。

UT が実行されない!

Java Extension Pack には Java Test Runner が含まれる。名前の通り UT を走らせるやつで、便利だ。
しかしどういうわけか、こいつはいろいろと走らせてくれないことがある。何故か勝手にどれもこれも全て "Skipped" になってしまうのだ。

これは割と深刻で、しかも困ったことに走ったり走らなかったりする。
とりあえずわかることは、どうやら日本語名なメソッドは高確率で死ぬらしいということだけだった。まあしゃーなしだ。

でも十分使える

上記のような些細 (というには少々厄介か?) な問題はあるが、実際のところ、現時点でも十分主力IDEとして使用に耐えうるという感触。
というのも、要するに多少問題があったところでクソ重い上に1日に何度も落ちた挙句環境ぶっ壊れて最悪起動すらしなくなる Eclipse よりよっぽどマシなのだ
(ただ、正直現場の手法や私自身の扱い方、開発マシンのスペックやプラグイン側の問題もあるので、本当に Eclipse だけが何もかも悪いのかというとちょっと違うとは思うだが許さん)

一つ注意しなければならないことがあるなら、VSCode は極めて強力なエディタであって、はじめから全部入りのIDEではないということ。
例えばメモリ消費一つとっても、間違いなく本体の消費量は Eclipse よりも遥かに少ないのだが、同時に走る Java プロセスが凄まじい量のメモリを持っていく (合わせても Eclipse よりは少ない気がするが) 。エディタが大量の "開発用機能" を持っているだけであって、何でもかんでも詰め込まれていないからこその安定性・軽量さであるということを忘れてはならない

……なぜこんなことを言うのかというと、どうしても初期設定は Eclipse のほうが楽だからだ。アレなら JDK のインストールやらなにやらを細かくやる必要はないし、なんなら設定済みのバイナリが配布されている領域だ。 VSCode はさすがにそうではない。

もしあなたが「楽をするための苦労なら、少しぐらいは構わない」と思えるなら、間違いなく VSCode は助けになるだろう
そうでないなら、 Eclipse を使っていたほうがおそらくお互い幸せだ。

ところで

この文章では、意図的に (NetBeans あたりはともかく)IntelliJ あたりの非常に強力な IDE の存在を無視している。
なぜかって? お金かかるからだよ!

……半分冗談なひとことはさておき、 IntelliJ のような IDE が使えるなら正直それで構わないとも思う。
ただ、少ししか触っていないが、あれもあれで結構重い。強力だし安定しているから別に構わないのはその通りだ。
しかし、ソフトウェア代はともかく、一人の派遣組としてはスペックを要求されると困るのだ。家でなら 32GB RAM を積んだ愛機を使えても、職場では i3 + 8GB のマシンを使わざるを得ない (正直、これだけ RAM があって不足に悩むとは数年前まで思ってもいなかった……) 。

何よりも、IntelliJ はショートカットが若干独特で、慣れなかった。VSCode の "いかにも MS 製品" なショートカットは、なんだかんだ Windows な身としては馴染み深くやりやすい。
安いマシンで、広く使われているものに対応でき、安定していて、入りやすい環境 という意味合いでは非常に強力だと思うので、これからもしばらく使ってうまい構成を探したい。