0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

リーダブルコードを読んでみた

Posted at

概要

  • 一章から六章は適切な名前、優れたコメント、コードをきれいにフォーマットするやり方について
  • 七章から九章は複雑なループ、巨大な式、膨大な変数の単純化について
  • 十章から十三章はコードの再構成について
  • 十四章は効果的で読みやすいテストの書き方について
  • 十五章では本書の原則を使って問題を解決してみる

一章

  • コードは他の人が最短時間で理解できるように書かなければならない
  • コードを短くする < 理解にかかる時間の短縮

二章

  • イテレータが複数ある時は、i, j, kよりも、club_i, members_i, users_iまたはci, mi, uiのように明確な名前をつけた方がバグを見つけやすい
  • プロジェクト固有の省略形はNG, 新しくプロジェクトに参加した人も理解できなければならない 例:◯:evaluation→eval, document→doc, ×:BackEndManager→BEManager
  • 長い名前は、必要な情報が損なわれなければ短くできる 例:ConvertToString()→ToString(), DoServeLoop()→ServeLoop()

三章

  • 範囲を指定するときのダメな名前の例:start, stop. startは良いがstopはその値で終わりなのか、その値の前で終わるのか分からない. 包含的な範囲を表すのであればfirst, last, 包含/排他的範囲を指定するときはbegin, endが適切
  • ブール値にはis, has, can, shouldなどをつけて分かりやすくする. また肯定系にした方が分かりやすい
  • getsizeには軽量なイメージがあるので、処理が重い時は避ける
  • 名前を決める時には、反対意見を考えて、誤解されない名前かどうかを検討する

四章

  • 複数のコードブロックで同じようなことをしていたら、シルエットも同じようにする
  • 一塊のコードは段落で分ける

五章

  • コードからすぐに分かることをコメントに書いてはいけない. コードを理解するよりも、コメントを読んだ方が早く理解できるのではあれば書いても良い
  • コードの読みにくさを補うコメントを書くのであれば、その読みにくいコードを改善するべき
  • コードを書いてない人がハマりそうなところはコメントをつける

六章

  • コメントはコードの動作をそのまま書くのではなく、コードを書いたときに考えていたことを書く. ×:listを逆順にイテレートする ◯:値段の高い順に表示する こうすることで、もし値段の高い順で表示する処理になっていなかったら、バグだと気づける

七章

  • if (length >= 10)の方がif (10 >= length)よりも読みやすい理由:言葉の用法と合ってるから. 「もし君が18歳以上ならば」が「もし18年が君の年齢以下ならば」になると読みにくい. 調査対象を先に書く
  • コードを短くする < 理解にかかる時間の短縮. 三項演算子はコードを短くできるが、理解にかかる時間は長くなることがある. 三項演算子で簡潔になる場合を除き、基本的にはif/elseを使おう

八章

  • 論理式を等価な式に置き換えるならドモルガンの法則が使える
  • 説明変数を用いることで巨大な文を読みやすくするx

九章

  • コードが読みやすくならない変数は削除する
  • 変数のスコープを縮め、変数のことが「見えてしまう」コードを減らす
  • 変数は一度だけ書き込む

十章

  • 無関係の下位問題を積極的に見つけて抽出する. つまり、プロジェクト固有のコードから汎用コードを分離する

十一章

  • 関数は一度に一つのことを行う
    • そのための手順
    1. コードが行っているタスクを全て列挙する
    2. タスクをできるだけ異なる関数に分割する

十二章

  • コードを明確にするための手順
    1. コードの動作を簡単な言葉で同僚にも分かるように説明する
    2. その説明のなかで使っているキーワードやフレーズに注目する
    3. その説明に合わせてコードを書く
  • ラバーダッキング

十三章

  • 要求は微妙に干渉してしまう. 問題の半分を解決するのに1/4のコーディング時間で済むこともあるくらい
  • 標準ライブラリの全ての関数、モジュール、型の名前を15分かけて読んでみる

十四章

  • テスト関数の名前はテスト内容を表したものする. テスト関数の名前はコメントだと思えばいい
  • 入出力のテストはコード1行で記述できると良い
  • エラーメッセージはバグの発見や修正がしやすくなるように、手作りで作っても良い
  • コードを検証する「完ぺき」な入力値を一つ作るのではなく、小さなテストを複数作る方が簡単で、効果的で、読みやすい

十五章

  • 50行の読みにくいコードよりも100行の読みやすコードの方が優れている
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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?