2018/12 開発で大切なgrep

時々、見落とされがちなgrepの大切さについて紹介します。

grepとは

grep本来の意味は、Linuxのコマンドで複数のテキストファイル中から正規表現に一致する行を検索して出力してくれる機能です。

しかし、ここでは「複数のソースファイル」から一致する行・ファイルを検索してくれる機能として扱います。 この検索を「grepする」と言ったりします。

開発におけるgrep

開発するプロジェクトは、以下のように複数のフォルダ・複数のファイルによって構成されていることが多いと思います。

    ├─ models
    │   ├─ content.js
    │   └─ user.js
    │   
    ├─ public
    │   ├─ css
    │   │   ├─ common.css
    │   │   ├─ error.css
    │   │   └─ index.css
    │   │           
    │   └─ js
    │       ├─ common.js
    │       ├─ error.js
    │       └─ index.js
    ├─ routes
    │   ├─ contents.js
    │   ├─ error.js
    │   ├─ index.js
    │   ├─ login.js
    │   └─ logout.js
    │   
    └─ views
        ├─ contents.ejs
        ├─ error.ejs
        ├─ index.ejs
        ├─ login.ejs
        └─ logout.ejs

要望に応じて関数や変数を、修正・変更することはタスクはよくあります。 このとき、関数や変数が利用・参照されているか、影響範囲をまず確認する必要があります。

この確認をするためにプロジェクト内の全ソースに対してgrepを行うことが、確認方法として大切です。

確認をする観点は

このようにgrepを活用して影響範囲を正しく把握して改修することが、バグを産まない・品質を落とさない仕事には不可欠です。 逆に把握しなければ、要求されたケース以外で正常に動作しないでしょう。

サクラエディタ

サクラエディタでgrepする方法を紹介します。 「Ctrl + g」でこのようなgrep画面が表示されます。

これで検索するとgrepしてくれます。

VSCode

VSCodeでのgrepはシンプルです。 左ツールバーから検索ボタンをクリックすると検索エリアが現れます。

「Enter」でプロジェクト内の全ファイルから検索してくれます。

開発の基本的なTipsであるgrepについて紹介しました。 本当によく見落とされたり・確認を怠ることがありますが、手間を省いた分だけ結局バグとして自分に舞い戻ってきて、より時間がかかってしまうものです。 よりよく円滑に仕事を進めるためにも周辺確認は大事なのでgrepを活用するとよいでしょう。