「リーダブルコード」要点まとめ

こんにちは、技術部の K です。今回は書籍『リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)】の要点をまとめました。


明確な単語を選ぶ

変数名や関数名には明確な単語を選ぶことで、他人が読んでも理解できるようにする。

 単語  代替案 
 send deliver dispatch  announce  distribute  route
 find search extract  locate  recover
 start launch create  begin  open
 make create set up  build  generate  compose  add  new

tmp や retval などの汎用的な名前を避ける

汎用的な名前は可読性を低下させる。

  • retval → 意味がないので避ける
  • tmp → 生存期間が短く、一時的な保管がもっとも大切な変数につける場合がある。

名前に情報を追加する

値の単位を追加する

  • delay → delay_secs
  • size → size_mb
  • limit → max_kbps
  • angle → degree_cw

その他の重要な属性を追加する

状況  変数名  改善後
password はプレインテキストなので、処理する前に暗号化するべきである  password  plaintext_password
ユーザが入力した comment は表示する前にエスケープする必要がある  comment  unescaped_comment
html の文字コードを UTF-8 に変えた  html  html_utf8
入力された data を URL エンコードした。  data  data_urlenc

コメント

  • コードからすぐに分かることはコメントしない。
  • コードから推測しづらい場合はコメントする。
  • 簡潔に短く、密度の高いコメントをする。
  • 関数の動作をコメントをする場合は、入出力の実例があるといい。
  • コメントを書けば読み手の理解が速くなるなら書いた方がいい。

コードの欠陥にはコメントをつける

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

読み手を意識する!


制御フロー

  1. if 文

  2. 条件式の並び順

左側    右側
「調査対象」の式。変化する    「比較対象」の式。あんまり変化しない

  • 条件は否定系よりも肯定系を使う。
  • 単純な条件を先に書く。
  • 三項演算子はコードが短い場合は使用してもいい。
  • return で関数を早く返すことはいい。

    • ガード節:処理の対象外とする条件を、関数やループの先頭に集めて return や continue/break で抜ける方法。ネストを減らし正常系の処理が分かりやすい。

    1. do while

  • do while は使用を避ける。処理が分かりづらいため。

  • continue など使うと分かりづらい。
  • 大体、while に置き換えられる。

巨大な式は分割する

  • 関数のコード量が多い場合は分割する。
  • 式を変数に格納することで読みやすくする(注意:意味がないならやらない)。
  • 不要な変数は削除する。
  • 変数のスコープはできるだけ小さくする。
  • 変数は使用する箇所で定義すると読みやすい。ブロックの一番上にまとめると全て使用するのかと混乱する。
  • 関数名と無関係な処理は分割する。

汎用コードを作る

  • 汎用的に使用できる処理はできるだけ作る。
  • util などのディレクトリ名で共有できるように管理する。
  • インターフェースを作成する。

コーディングのコツ

  1. まずは言葉で説明してみる
  2. キーワードやロジックを整理する
  3. ライブラリが使用できないか考える
  4. 最も簡単に問題を解決できるような要求を考える。
  5. 標準ライブラリを普段から触り役立ちそうな API を知る。

スーパーソフトウエアの採用情報

あなたが活躍できるフィールドと充実した育成環境があります

blank
blank