Windows上でWeb系システム開発するのに必要なソフトなど

Windows OSはMS系の開発環境を使ってソフト開発するには良いOSですが、Web系で良く使われるJava, Python, Ruby, Scala, PHP, node.jsあたりで開発をするにはなかなか難儀なOSであります。

しかしながらWindowsが持っている他を寄せ付けない圧倒的な強みとしてエンプラ系の管理機能が非常に充実しているという点があるために、大企業やSIerなどでは開発も自動的にWindowsを強制させられることが多々あります。

これは開発側としては地獄そのものなのですが、組織の長というのは大体聞く耳を持たないので下っ端の要望を聞き入れてくれることはほとんどありません。

そういう地獄は日本国内に多々散見されると思いますが、少しでも地獄で快適ライフを送るためのノウハウを共有したく、本記事を書いた次第です。

Chocolatey

必須と言ってよいツールです。これはMacで言うHomebrew(brew)、Linuxでいうapt-get or yumのようなものを実現するためのパッケージ管理システムです。

$ choco install mvn
$ choco install ruby
$ choco install python
$ choco install scala
$ choco install sbt

のような感じで一発インストールです。

ConEmu

Windowsが進化していってもなぜかほとんど変わらないのがコマンドプロンプトで、ついこないだまでコピペを行うのもしんどいという、控えめに言っても大変クソなコンソールエミュレータでした。ConEmuはタブ式のもっとまともなコンソールエミュレータです。こちらも、chocolateyからインストールできます。

MobaXterm

WindowsのSSHクライアントと言えばTeraTermが有名ですが、これは最低限の機能しかなく、ファイル転送も満足にできません。MobaXtermはSSHログインしたら左側にエクスプローラ的なGUIファイラーが現れ、D&Dでファイル転送できます。

さらに、X11 FowardingとXServerを内蔵しているので、なんと、リモート上でGUIアプリを立ち上げるとローカル側にウィンドウが表示されます。リモートで立ち上げたIntegration TestからSelenium経由で立ち上がったブラウザも手元で確認できます。

言語に依存しないところは上記3点なのですが、以下は私のお勧めです。

IntelliJ IDEA

プログラマはIDEを使う派と使わない派に分けられ、さらに使わない派はvi(vim)派、emacs派、最近はatom派、VS Code派などに分けられると思います。私はviが好きですが、メインで使う程には好きじゃないので高機能てんこ盛りなIDEを好んで使っています。

IDEというとまずEclipseが有名ですが、Eclipseはプラグインが膨大にあり多機能すぎて使いこなすのに苦労する気がします。

また、プラグインをどんどん追加していくと問題が発生したり重くなったりするので、Eclipseの環境を複数分けて保持するなどのノウハウが必要になってきます。

昔から使い続けている人はこのあたりを分かっているので気にならないと思いますが、初めて使う人は戸惑うところも多いのではと思います。

IntelliJはそういった問題からほぼ解放されるのがまず良いと思います。

あとは「押しつけがましくない」通知機能が非常に便利です。

たとえばSQL文を書く(コード中にselect * from...と書き始める)と「DiarectとDataSouceを設定してもらえればもっと便利になるよ」と隅に表示され、リンクをクリックすると設定画面が表示、そこからデータベースの接続設定を記入するとコード上でSQLの補完が効くようになります。

さらに、普通にコードを打っていても「list.size() > 0と書くよりはlist.nonEmptyを使った方が良いよ」「ここの括弧は要らないよ」「これはvarじゃなくてvalで宣言できるよ」「ここのコードは多分ヌルポで死ぬよ」などと通知をさりげなく表示してくれます。

これらの使い勝手は何かすごいスキルフルな経験者がそばにいて優しく指摘してくれるかのようなもので、本当に頼りになります。コード解析ツールの類を組み合わせれば似たようなことはできると思いますが、それがどの言語でもすぐに、そしてコードを書きながらライブに使えるのはありがたいですね。

IntelliJは有償のUltimateがおすすめです。サブスクリプションで一年1.6万円くらいします(初年度)が、その価値はあると思います。

なんかwindowsとはあんまり関係ない説明になってしまいましたが…。

Visual Studio

.NET系の開発には必須ですね。NETやWindows系アプリとかやらないというのであれば不要です。ただ、Xamainが無償化になったのでモバイルアプリ開発(iOS/Android/Windows Phone)をやるなら入れておいても損はないような気がします。

まとめ

とりあえずIDEのほかに、パッケージ管理システムとsshクライアントとコンソールさえあれば何でもできるよね。という話でした。

Bash on Ubuntu on Windowsなる長ったらしい名前の何かもあるみたいですが、個人的にはこれを入れるんだったらバーチャルでUbuntuを使った方が幸せなような気がします。使ってる人の話を聞くと色々苦労されてるようなので…。