エンジニアの方であれば、よく変数や関数の命名で悩むことや指摘を受けることがあると思います。
私はコードを書くときやレビューをする時にこの部分を非常に気にするのですが、今回はなぜかということについて書いておこうと思います。
今回の対象
- 変数名
- 関数名
- クラス名
- コメント
- コミットメッセージ
悪い命名(変数、関数、クラス)
デメリット
- 名前を見ただけで値が予想できないのでコードを読むスピードが下がる
- 名前から処理の内容や返り値などが予想できないのでコードを読むスピードが下がる
- 読む人のストレスが溜まる
具体例
- dataなどの汎用的な単語を使う
- 変数に動詞を使ったり、英語として間違っている
適当なコミットメッセージ
デメリット
- レビューしている場合修正されたかどうかがわからない。。
- ソースコードを見ないと、作業内容がわからない
- バグなどが発見された時の調査などがしにくい
具体例
コードを修正
→どこのコードだよ!
レビューの指摘修正
→どのレビューのどの指摘?
ボタンで一発ポチッとする処理を実装
→はっ!?
良い命名をするために
- 適切な英単語を使う
- 適切な品詞を使う
- 多少長くても複数の単語で表現する(data → userProfileDataなど)
良いコミットメッセージやコメントを書くために
- 仕様を知らない人の立場に立った時に理解できるかどうか考える
- コミットメッセージの一覧が日報などにそのまま使えるようにする
まとめ
一人で開発するのであれば、それぞれ適当でも問題が無かったり、いざ困るのは自分だけのはず。
しかし、チームで開発するとなれば、レビューをしてもらったり自分以外の人がソースコードを変更することもあります。
そういう時に、今回書いたようなことが最低限できていないと、他の人の時間を無駄に消費することになります。
限られた時間の中で最大限の価値を生み出すためには、それぞれの人が一緒に働く人のことを思いやって、
「他の人が読んだら迷わないだろうか」「この処理の理由はわかるだろうか」などということを常に意識するだけで、チーム全体のパフォーマンスは大きく向上すると思います。