【プログラミング全般】関数名や変数名等には単位を付けよう

プログラミング全般 プログラミング全般

今回の内容

今回は、値の単位を関数名や変数名等に付けると良いよ、ということを書いていきます。

単位と言っているのは、時間であったり、距離であったり重さであったりをいっています。

関数名や変数名だけではなく、定数であったり、プロパティに関してもいえます。

この記事を見ると、単位のつけかたや、単位を付けることのメリットを学ぶことができます。

単位を付けることのメリット

メリットを挙げていきます。

  • 単位間違いに関する不具合を減らすことができる
  • 単位が明瞭なので、ソースコードを書くスピードが上がる

大きなところはやはり、不具合を減らすことができるところです。

実際現場でも何回か単位を付けないことで発生している不具合がありました。

また、そのような不具合は一見してあってそうなので、原因に気付きにくいという性質もあります。

具体例

例えば、時間を表す変数がある場合は、timeという名前ではなく、time_secなど時間のどの単位の値が入るのかを付けたほうがいいです。timeだけだと、時間が入るのか、分が入るのか、秒が入るのか、はたまたミリ秒が入るのかわからないです。

単位を付けると、間違っていてもソースコードを見て、違和感に気付けます。

単位を付けた場合と、つけていない場合の例を示すので見てみてください。

このように、単位を付けることで、迷いがなくなるので、コードを書く速度であったり、不具合を減らすことができます。

付けるべき単位

付けるべき単位の例を示します。

時間関係 時間:h

分:min

秒:sec

ミリ秒:msec

サイズ GB:gb

MB:mb

KB:kb

Byte:byte

Bit:bit

ByteとBitはbとするとわからなくなりそうなので、明示的にわかるようにするといいと思います。
重さ キログラム:kg

グラム:g

ミリグラム:mg

距離 メートル:m

センチ:cm

ミリメートル:mm

 

また、単位ではないですが、その他必要に応じて、付属情報を追加したほうがいい場合があります。

文字コード
  • uft-8なのか、sjisなのかなどの情報
値の状態
  • 文字列がエスケープ前なのか、エスケープ後なのか
  • 文字列を結合する関数の場合、結合した文字列であるのか
  • 圧縮前の値なのか、圧縮後の値なのか
  • 暗号化前の値なのか、暗号化後の値なのか

ポイント

単位を付ける話をしましたが、重要なのは思いやりだと考えてます。

経験が必要かもしれませんが、ここは付けていないと読みにくいなとか、ここは絶対どう読んでもこの単位だろとわかるようなところは付けないなど、シチュエーションに応じて対応できると良いと思います。

単位以外の情報も同様で、この関数は値を変換する関数だから、変換前と変換後の値が重要。なので、変換前と変換後の値が入っている変数はどちらかがわかるように情報を付加してやると、読みやすいし、返却する値も間違えない(変換前の値を間違って戻り値として返さない)なとか判断ができます。

自分がコードを説明する気持ちになって考える、また、人が読んだときにどう思うかを考えて、コーディングできるとよりわかりやすいコードを書くことができると思います。

本内容は、書籍リーダブルコードの内容をヒントに記載してます。とても読みやすくてよい本なので、是非ご参考ください。書籍は以下の記事で紹介してます。

【プログラミング全般】新人プログラマに読んで欲しい書籍のまとめ
新人のプログラマに向けて是非読んでほしい書籍をまとめています。 また、新人のみならず、基礎スキルのないプログラマにも有効です。 プログラミングの現場では教育が行き届いてないことが多く、どうしても目先の作業のことだけに集中してしまい、基礎がお...

まとめ

最後に、まとめを記載します。

  • 単位や付属情報を付けると、不具合を減らすことができる
  • 単位や付属情報を付けると、読みやすさの向上につながる
  • コードを読む人のことを考えて、必要に応じて単位や付属情報をつける

コメント