プログラムのネーミングに迷ったら GitHub でコード検索すると参考になる説

TL;DR

  • プログラムのネーミングで迷ったら GitHub でキーワードを検索して、ヒットした件数が参考になるのでは?
  • 複数キーワードを検索して結果の一覧を表示する CLI 作りました

ネーミング迷いますよね?

みなさん、コードを書いていて変数やメソッド名のネーミングって迷いますね。

こんな時に自分たちはチームを横断して「こういう名前考えたんだけど、これってどうかな?」という確認を Slack 上で行っています。先日、この Slack チャンネルを見ていて考えました。

GitHub で検索すれば世の中のコードでどのぐらい使われているかざっくり分かるので参考になるのでは?説」

GitHub で検索できるという条件付きではありますが、コードの規模からするとある程度期待できそうです。

GitHub で検索

例えば「除外条件」を表す変数名として exclude_conditionexclusion_condition を比較します。

まず、おもむろに
https://github.com/
を開き、検索ボックスにキーワードを入力します。

search_keyword.png

出てきた検索結果はこちらの274件。

search_keyword2.png

対して exclusion_condition66件という事で、exclude_condition に軍配が上がる結果となりました。

github_search.png

このぐらいの差であれば意見の分かれるところかもしれません。

また、「GitHub 全体ではなく、実装先のリポジトリでどれぐらい使われているか知りたい!」という場合はそのリポジトリのページに移動して検索。

search_keyword3.png

もしくは検索キーワードに repo:リポジトリ名 を追加します。

search_keyword4.png

前提として、チームやプロダクトによって、こういう概念を表すにはコレ!という命名をすでにしていば混乱しないためにそちらを優先する方がよいと思います。

新たな名前を取り入れる場合には「GitHub でこのぐらいヒットした」というのは一つの指標になるのではないでしょうか。

ブラウザでアクセスが面倒

ブラウザから複数キーワードを検索するのに、別タブを開いたり、結果一覧を確認するのが面倒なので CLI を作りました。

次のように実行します。

$ ghkw exclusion_condition exclude_condition excluded_condition
| RANK |       KEYWORD       | TOTAL |
|------|---------------------|-------|
|    1 | exclude_condition   |   272 |
|    2 | exclusion_condition |    64 |
|    3 | excluded_condition  |     2 |

なるほど。

% ghkw ninja samurai bushi sensei senpai kohai
| RANK | KEYWORD |   TOTAL   |
|------|---------|-----------|
|    1 | ninja   | 3,374,938 |
|    2 | samurai |   730,748 |
|    3 | sensei  |   213,917 |
|    4 | senpai  |    26,786 |
|    5 | bushi   |    25,493 |
|    6 | kohai   |     2,195 |

結果は Markdown 形式なので、pbcopy 経由でエディタ等に貼り付ける事が出来ます。

ちなみにインストールは homebrew ユーザだと次の2ステップでOK。

$ brew tap kyoshidajp/ghkw
$ brew install ghkw

Go 環境を設定していれば go get でもOK。

$ go get -u github.com/kyoshidajp/ghkw

もしくはリリースページから最新をダウンロードして、パスが通った場所に配置します。

GitHub API を使っていて、プライベートリポジトリも検索するため、初回起動時にログインが必要です。もしくは環境変数 GITHUB_TOKEN にリポジトリのアクセス権をもったトークンを指定するとそちらを優先します。

参考

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.