LoginSignup
0
0

More than 3 years have passed since last update.

リーダブルコードを読んでの備忘録

Last updated at Posted at 2019-02-24

プログラミング経験としてはほぼ未経験レベルだが、仕事がらコードレビューを行わなければならなくなった。
どういうところを気にしてレビューした方がいいのかわからなかったため、ググって参考になる本はないか探したところ「リーダブルコード」という本を見つけた。
そこで、学んだことを備忘録として書きます。

名前に情報を詰め込む

・名前を見て情報が読み取れるようにする。

・時間やバイト数を計測するものであれば、変数名に単位を入れる。

sample
 #現在時刻をミリ秒で計測する
 ❌var start    = (new Date()).getTime();
 ⭕️var start_ms = (new Date()).getTime(); //ミリ秒とわかるように_msを入れる

・「コンストラクタ」(newを使われる関数)は大文字ではじめ、通常の関数は、小文字ではじめる。

sample
var x = new DatePicker(); //コンストラクタ
var y = new pageHeight(); //通常の関数

誤解されない名前

・限界値を含める時はmin、maxを使用する。

sample
MIN_ITEMS_IN_CART = 10
MAX_ITEMS_IN_CART = 10

・範囲を指定する時はfirst、lastを使用する。

・包含・排他的範囲にはbegin、endを使用する。

・ブール値だとわかるようにis、has、can、shouldを使い、
 否定形(例えば、disable_ssl)などは避ける。

美しさ

・コードの「列」を整列すれば、概要を把握しやすくなる

sample
detail   = request.Post.get('details');
location = request.Post.get('location');
url      = request.Post.get('location');

・意味のある順番を選び、常にその順番を守る。

・空行を使って大きなブロックを論理的な「段落」に分ける。

コメントすべきことを知る

コメントすべきでは「ない」こと

・コードからすぐに抽出できること

・ひどいコードを補うコメントを書くのではなく、コードを修正する。

コメントすべきこと

・なぜコードが他のやり方ではなくこうなっているのか。

・定数をこの値にした背景。

・コードの欠陥にはコメントをつける。
例えば下図のような感じ

記法 典型的な意味
TODO: あとで手をつける
FIXMI: 既知の不具合があるコード
HACK: あまり綺麗じゃないけど解決策
XXX: 危険!大きな問題あり

・コードを読んだ人が「えっ?」って思うところを予想してコメントをつける。

・ファイルやクラスには「全体像」のコメントを書く。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0