まず間違いなく仕事で使うことになるであろう必須ソフトですから、早めに取り入れておきましょう。
テキストエディタ
鉄板ソフト1点目は、テキストエディタです。
プログラミング初心者の皆さん、プログラミングは統合開発環境(Microsoft Visual Studio等)でするものと考えていませんでしたか?
ソースコードを書いて、ビルドして、デバッグして、その全てができてしまうのが統合開発環境のメリットです。
その便利さに疑いところはありません。
特にビルド、デバッグに関しては必須と言っていいほどです。
ですが、ソースコードを書く、ソースコードの内容を確認するというシーンでは、テキストエディタも使っているというエンジニアが多数を占めます。
それは何故か。
当然ながら、メリットがたくさんあるからです。
導入メリット
一言で表せば、『効率的にプログラミングできる』です。
統合開発環境のテキストエディタ機能は、正直言って貧弱です。
そして重いし、落ちやすい。
その点、テキストエディタは、軽くて落ちにくい。
そして餅は餅屋、専門のエディタの方が高い機能性を誇るのです。
「テキストエディタだろ? Windows標準のメモ帳のようなもんだろ?」と思われる方もいるかもしれません。
全然違います。
正直なところ、メモ帳とは次元が違います。
プログラミングにはもちろんのこと、ソースレビュー、ログ解析、議事録などのちょっとした文書作成などでも大活躍です。
テキストエディタの便利機能
テキストエディタは、メモ帳にはないプログラミングを快適にする次のような機能を持っています。
grep機能
複数のファイルから特定のキーワードを検索し、該当行を一覧表示する機能です。
そして、そこをクリックするとそのファイルの該当行に飛ぶことができます。
プログラマーにとって最も重要な機能の一つです。
関数をどこでコールしてるかとか、同じ定数をどこで使っているか等、解析に、ちょっとした確認にしょっちゅう使います。
もしこれがなかったらと思うと、ぞっとします。
アウトライン解析機能
ソースコード内の関数を一覧表示してくれる機能です。
クリックすると、その関数に飛ぶことができます。
ありがたや~な機能です。
開発言語別のハイライト表示
ソースコード内の予約語(ifなど)やコメント行に色を付けて、見やすくしてくれる機能です。
プログラミング用途では、これがないと話になりません。
矩形選択
任意の行×列をブロック単位で選択できる機能です。
メモ帳ではできません。
部分的にコピーしたり、消したりするのに重宝します。
地味に便利で、結構使うこと多いです。
文字コード・改行コード判別表示
開いているファイルの文字コード(Shift-JIS、EUC、UTF-8等)、改行コード(CR+LF、CR、LF)の判別してくれる機能です。
一目で判別できるのは助かります。
マクロ
テキストファイルへの操作を予めスクリプトで作っておき、必要な時に使うことができる機能です。
例えば、関数のコメントヘッダのフォーマットを書くマクロを用意しておき、関数を作るときに使うといった感じで、何度も行う面倒な作業を効率化できます。
使えそうなマクロがは公開されていたりしますので、一から自分でマクロを作らなくてもダウンロードしてくればその恩恵にあずかれます。
キーボードマクロ機能
キーボードの操作を記録しておける機能です。
いちいちマクロを組まなくていいのが便利なところです。
ちょっとした操作を何度も繰り返し実行したいという場合に、その威力を発揮します。
おすすめは『秀丸エディタ』
たくさん候補を挙げても、どれを選べばよいかわからなくなってしまいますからね。
おすすめ理由は次の3つ!
・機能性が高い
初心者でも扱いやすいソフトです。
開く度に出るポップアップを適当に選択し続ければ、ずっと無料で使うことも(非推奨です)。
対応OS | Windows |
---|---|
種類 | シェアウェア |
価格 | 4,320円(税込)※以降のバージョンアップは無料 |
テキストエディタは、他にも「サクラエディタ」や、「Atom」、「Visual Studio Code」の人気も高いです。
ソフトウェアエンジニアと言っても多種多様で、使用OSも言語も様々ですから、愛用のテキストエディタは人によって違います。
以下、私見ですが。
- 経験上、大手メーカーやベテランエンジニアは「サクラエディタ」、「秀丸エディタ」の使用率が高いように思います。
- 比較的新興のソフトハウスなどでは、新しめの「Atom」、「Visual Studio Code」を導入している人が多いというイメージがあります。
結局のところ、それなりの規模の会社に属するなら、その組織で主流となっているソフトを使うのが一番幸せになれるでしょう。
固執しすぎず、必要に応じて最適なテキストエディタに代えていきましょう!
ファイル比較ツール
鉄板ソフト2点目は、ファイル比較ツールです。
ソフトウェア開発をしていると、ソースファイルを比較するという場面に度々出くわします。
例えば、
- ソースコードのどこを変更したのか、過去ソースファイルと比較チェックしたい。
- ソースコードを一部だけ変えた流用部分。違いがどこにあるかをチェックしたい。
- ログファイルの違いを確認したい。
等々。
そんなとき役立つのがファイル比較ツールです。
テキストファイル比較機能は、テキストエディタにも付いている場合がありますが、やはり特化したツールの方が機能性も高く、使い勝手も良いです。
おすすめは『WinMerge日本語版』
WinMergeは、次のような便利機能を多数持っています。
基本機能が充実
フォルダ指定も可能
ファイル指定でなく、フォルダ指定もできます。
ドラッグ&ドロップで簡単に比較対象を指定することもできます。
グラフィカル表示が見やすい、使い易い
違いのある部分を色付きで解りやすく表示してくれます。
[次の差異]や[前の差異]をクリックすると、違いのあるブロック単位で移動することができます。
[Diffコンテキスト]を変えると、違いある行だけを表示することもできます。
マージも可能
全ての違いを一括で反映することも、違いのあるブロック部分を相互にコピーしあうことも簡単操作で実行できます。
画像の比較もできる
画像ファイルの違いもチェックできます。
ExcelやWordの比較もできる
プラグインを有効化、設定するだけで、Excelやwordのファイルの違いも確認できてしまいます。
初心者でも扱いやすいです。
紹介した機能の他にも、「3方向マージ機能(3ファイル比較)」や「正規表現による除外フィルタ」など、様々な機能があります。
対応OS | Windows |
---|---|
種類 | オープンソース |
価格 | 無料 |
ファイル比較ツールは他にも種類はたくさんありますが、WinMergeはインターネット検索しても関連情報が多く、最も人気のツールだと思います。
周りのエンジニアに聞いても使用率は圧倒的です。
バージョン管理システム
鉄板ソフト3点目は、ソースファイルのバージョン管理システムです。
プログラミングは作り始めたら、すぐに完成するものではありません。
まずは、ここまで作った。
次はここまで作ろうといった具合に、RPGゲームのように少しずつ進みます。
その途中段階のソースファイルは、ゲームで言うならばセーブデータのような感じです。
ずっと1つのセーブデータを上書きで作っていったら、もし戻りたいとき、もし壊れてしまったとき、取り返しがつきませんよね?
ですから、ソースファイルは段階的に管理していくことになります。
特に完成し提供/公開したプログラムは、その後の保守のため厳密にソースプログラムを管理していかねばなりません。
これを助けてくれるのが、バージョン管理システムになります。
導入メリット
「ソースファイルの管理は、フォルダに分けて管理すればいいんでしょ?」というような簡単なものではありません。
仕事になると、複数人でたくさんあるソースファイルを日々更新していくことになるのです。
フォルダ管理で乗り切ろうとしたら、更新したコードがなくなっている!、フォルダ自体間違って消しちゃった!とか、問題続出で大変なことになってしまいます。
バージョン管理システムなしで管理していくなんて、正気の沙汰ではありません。
今や、複数人での開発だけでなく、個人の開発においても、バージョン管理システムを使うことはデファクトスタンダードです。
間違いをなくし(品質向上)、効率をUPし、保守性もUPする効果が得られます。
バージョン管理システムを導入していないIT企業は、ゼロと言って間違いありません。
おすすめは『Git』を使ったツール
オススメは、現在の主流になってきている、分散型のバージョン管理ツール『Git』を使ったホスティングサービスです。
GitHub、Gitlab、GitBucketなど、複数の会社でサービスが提供されています。
バージョン管理システムは開発現場では必須のツールですが、プログラミング初心者には、なかなか難しい代物です。
すぐに導入するかはさておき、どういうものかだけでも学んでおくと後できっと役立ちます。
Gitホスティングサービスで、最も有名です。
これから学ぶなら『GitHub』が一押しです。
対応OS | Windows、Linux、Mac |
---|---|
種類 | GitHubホスティングサービス |
価格 | 7USドル/月~ |
バージョン管理システムは他にも、「Subversion(SVN)」「Team Foundation Server(TFS)」などがあります。
最近の主流は間違いなく『Git』です。
周りのエンジニアに聞いても、段々と『Git』に移行してきているようです。
運用に支障がないバージョン管理システムを敢えて移行するというリスクは侵さないでしょうが、この流れはしばらく続いていくものと思われます。
最後に
紹介した3点、
- テキストエディタ
- ファイル比較ツール
- バージョン管理システム
は、使用頻度も高い、ソフトエンジニア必須のソフトです。
早めに学んで慣れ親しんでおきましょう!