【作業効率を上げたい】Windowsで開発作業をする時にあると便利なツールたち

シチュエーションにもよるけれど

うーん、かゆいところに手が届かない…
そんな思いをしながら作業はしたくないので、これまで使ってきて便利だなと思ったツールたちを紹介します。
- WinMerge
- A5M2
- VirtualBox
- RLogin
- Visual Studio Code
WinMerge
Excelファイルの差分比較で使うことが多い気がします。
JUnitというJavaで単体テストを行うためのフレームワークがあるのですが、テストデータの投入などデータベースを操作するためにDBUnitというフレームワークとあわせて使用することがあります。
DBUnitはデータベースに投入するテストデータをExcelファイルで表現することができます。例えばSQL(INSERT文、UPDATE文、DELETE文)のテストを行う際は、データベース操作前に投入するデータと操作後に期待するデータで2つのExcelファイルを用意することになります。
これら2つのファイルの差分(単体テストで期待するデータベースの状態)が正しいかどうかが、このWinMergeを使えばすぐに確認することができます。
もちろんテキストファイルの比較もできます。git diffの結果やコンフリクトが生じた場合の解決にWinMergeで差分を表示させることができたりと、gitでソース管理する人も助かるツールなのです。

A5M2
データベースのデータを参照するツールやSQLを実行するツールはいろいろあるかと思います。
A5M2は他に、テーブルのデータをExcelファイルやCSV/TSVなどの形式で出力してくれる機能や、逆にCSVやTSVファイルをデータベースに取り込む機能があります。
SQLを実行する前にトランザクションを張ることやロールバックも、GUIから簡単に操作できます。
珍しいと思う機能として、テーブル定義書やER図をこのツールが作成してくれます。ドキュメントを作成する際の参考になります。

VirtualBox
仮想環境を立ち上げる方法としてWindowsだとHyper-Vがあります。ですが、Hyper-VはPro版以上のWindowsで実行できる機能なのでHome版でのWindowsでは別の方法で仮想環境を立ち上げる必要があります。
仮想環境を立ち上げる方法としてVMware Workstation Playerなどのツールがありますが、現在の状態を保存するスナップショットの作成がVirtualBoxでは行えるといったメリットがあるためVirtualBoxを個人的に推しています。
仮想環境の立ち上げにあたってはCPUの仮想化支援機能が有効であること、かつBIOSで仮想化支援機能が有効であることが前提です。Windowsのタスクマネージャーの項目である仮想化が有効と表示されているかどうかを確認しましょう。
自分のパソコンのCPUが仮想化支援機能をサポートしているかどうかは、CPUメーカーのHPを確認してください。

RLogin
SSH接続を行うためには他にもTera TermやPuTTYなどのツールがあります。ですが、RLoginは接続先ごとにタブを分割できたりSFTPでファイル転送を行うことができたりと、このツールだけでリモートでのサーバ操作を快適に行うことができます。
ポートフォワーディングを利用した踏み台サーバ経由でのSSH接続も可能で、一度使い始めたらRLoginの使い勝手の良さに納得いただけるかと思います。

Visual Studio Code
2015年にMicrosoftから公開されたテキストエディタです。Windows版、Mac版、Linux版とあり個人的にはサクラエディタから乗り換えたテキストエディタになります。
背景色やテーマを好みに変えられたり、GitHubなど使用されている方にはお馴染みのMarkdownエディタとしても有用です。
他にも拡張機能をインストールすることで、PHP、Python、Java、C#などの開発環境として使用することができます。同じく、拡張機能を使用してGitとの連携も容易でコミットの履歴やブランチの状態の確認、コミットやプルなどの操作も簡単にできます。

IDEは今回除外しました
IDE(統合開発環境)は作りたいものによってはインストールが必須である(あると便利ではなく無ければいけない)と考えるため、今回は除外しました。
eclipse

Visual Studio

Android Studio

いつか使いこなしたいツールたち
今はまだ手を出せていないですが使いこなせたら便利なんだろうなと思うツールたちです。
Docker
仮想環境の構築については今までVirtualBoxに慣れきってしまっており、Dockerを勉強するモチベーションが正直あまりありません…。Dockerを使用した案件などで必要に迫られたら勉強するかもしれません。
Ansible
同じ環境を複数台のサーバとして構築するために有用な認識なのですが、そこまで複数台のサーバをある環境と揃えたいというニーズが今のところ自分の中には無く。勉強する優先順位はそこまで高くありません。
FakeSMTP
メール送信は一歩間違えると外部の送信先にメールが飛んでしまうので、ローカルで確認できるというのはすごくありがたいんだろうなと思っています。ただ、メール送信処理に触れる機会があまりないのでメールまわりの機能に関わることになったらこのツールを思い出そうと思います。
まとめ
長くなってしまいましたがツールの紹介でした。使ったことがあるツールがあったりしましたでしょうか?もし初めて知ったツールがあれば、お手元でぜひ試してみてもらえると嬉しいです。
この記事が誰かの参考になれば幸いです。それでは。