skillup

技術ブログ

プログラミング全般

リーダブルコードまとめ

投稿日:

リーダブルコードほぼ読み切ったのでまとめを。チェックリスト化して、常にこれを見ながらコードは書いたほうがよさげ

前半のまとめや参考リンクでみたものとマージします。

変数の名称

  • 具体的でわかりやすい名称にする
  • 一般論としてスコープに比例して名前に情報を入れる必要あり
  • 長すぎる場合は短縮形を使ったり、不要な単語を削る
  • フォーマットを決めて形式で情報を伝える
  • 各種よく使われる命名パターンを覚える(最大最小 max or minなど)
  • 否定よりも肯定など、意味がとりやすい名称にする

コード自体の見た目

  • 改行位置を揃える
  • 縦の情報がずれていないようにする
  • 似たような変数は目で見てグルーピングがわかるようにする

コメント

  • 当たり前のことを書かない
  • コメントが冗長になりそうであれば命名などを考える
  • 実例を書く
  • 文章よりは式や箇条書きなど意味が簡潔でわかりやすいものにする
  • クラスやファイル自体は全体像のコメントを書く

制御フロー

  • if文は比較される値を右に。できれば<のほうが見やすい
  • 否定形よりも肯定系で
  • 除外できる結果は早く返す
  • ネストを浅くする(できれば2段でとめる)

コードの分割

  • 1行に処理が詰まりすぎている場合は変数を使い分割
  • 条件分岐は反転させられないかを考える
  • 条件分岐で処理がありすぎる場合は分割する
  • 別解を考える

変数の使い方

  • 不要な一時変数の削除
  • できるだけスコープを縮める(ローカル > インスタンス > グローバル が良い)
  • 使用箇所と近い場所での定義
  • 書き込むのは一度だけ(orなるべく数なくする)

コードの抽象化

  • 汎用的な機能はできるだけユーティリティークラスにまとめる
  • タスク自体の機能を抽出して、別のメソッドとしてまとめる→オブジェクト指向を心がける
  • 一単位当たりのタスクは常に小さくする

メソッド

  • 全体として短いコードを書くことを心がける。目安は20~30行以内
  • 引数は4つ以下にする。それ以上なら設計に問題あり。

ライブラリ

  • 汎用的な機能を使う場合はまずライブラリや言語に標準搭載されている機能を探す。そのほうがバグが少なく、スピードが速い。
  • プログラムを書く前にUnixコマンドやMySQLなどもっと問題を早く解決できるツールを検討する

スピードの改善

  • 処理効率を考える
  • できるだけデータベースや外部ファイルのアクセスを少なくする。(ここが一番時間がかかる)

その他

  • エラーメッセージを分かりやすく出力する
  • nullチェックを常に心がける

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

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

正規表現その2

10/28に書いた正規表現に関しての追記です。 Contents1 覚えておきたいメタ文字2 留意点 覚えておきたいメタ文字 よく出るメタ文字の復習です。 メタ文字 メタ文字の説明 [] いずれかの1 …

no image

読みやすいコードについて

コードリーディングにおいて聖典となっているリーダブルコードについて読んでいこうかと。 ただ読んでいくだけではつまらないので、自分なりの考え方も書いていきます。 Contents1 優れたコードの定義1 …

no image

Excelでのテストデータ作り

ExcelVBAでテストデータを作るときに役に立った関数などを紹介させていただきます。 user_id time 2143 2017/1/16 3:35 6724 2017/1/2 6:05 4528 …

no image

トランザクション、ロールバックに関する考察

今までトランザクションの単位は基本的に処理の開始から終了までを範囲にすることが多かったのですが(ループがある場合はループ全体ではなく、1ループをトランザクションとみなします)、複数の処理が絡む場合、不 …

no image

ログインしたままにするの挙動に関して(ステートフル認証の基本的な仕組みの復習もかねて)

基礎の基礎ですが、ログイン処理に関しての動きに関して。 Contents1 通常のログイン処理に関して2 ログインしたままにする 通常のログイン処理に関して 通常のログイン処理では、まず以下のような手 …