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?

リーダブルなコードを書くための学習メモです。

クリーンコードとコメント

コメントではなく、なるべくコードで意味を伝える。Gitなどバージョン管理システムの発展によって、変更履歴などコメントを残す必要がなくなったため。また、コメントはプログラミングではないので、冗長に見えたり、日本語の曖昧さによって読み手に負荷を与えかねない。

クリーンコードが優先されないケース

  • パフォーマンス優先のケース
  • 速度重視の場合(開発速度のこと)

命名規則

  • 変数がどのようなデータを保持しているのかがわかりやすい、かつ、長過ぎないことに注意して命名する。
  • 識別子とケース(※識別子とは関数名や変数名、クラス名などを識別するためのもの)
    • ケバブケースはHTMLのname属性やid、URLのパス名などに使用されることが多い。name="user-email"id="user-name"など。
    • スネークケースは関数名やDBのテーブル、カラム名、定数名に用いられることが多い。time_calculationなど。
      • API_KEYなど大文字をスネークケースで繋ぐことをアッパースネークケース(コンスタントケース)と呼ぶ。
    • パスカルケース(アッパーキャメルケース)はクラスやインターフェース名に使用されることが多い。UsersMyClassなど。
    • キャメルケース(ローワーキャメルケース)は、変数名でよく用いる。userIdnovelNameなど。

変数の命名規則

審議値は必ずtrueまたはfalseになるので、それを正しく表現する。また、基本的には肯定的な命名をする。is~や、英語の過去分詞系を用いると良い(done、completedなど)。

定数の命名規則

参照として用いる値を格納する際には、アッパースネークケースを用いると良い。

関数の命名規則

処理内容がわかるように、なるべく(長くならない程度に)具体性を持たせる。

同じ意味合いの単語は統一する

類似単語例:

start, begin
stop, end
modify, update, change
create, new, factory
find, search
done, finish, complete
deliver, dispatch, send
select, choose
show, display

反対の意味を持つ値は対比のある名前をつける

対比の例:

first <-> last
next <-> previous
create <-> delete
source <-> destination
add <-> remove
show <-> hide
min <-> max
public <-> private
success <-> failure

コメント

最近だとコメントで処理の意図を伝えることは少ない。
Gitなどバージョン管理システムの発展もそうだが、そもそも、「わかりやすいコード」を心がけることに重きをおいた方がいい。
関数名に加えて、中の処理にも気を遣うことが大事。しかし、パフォーマンスに大きく関わる処理の場合、コードの読みやすさよりも、パフォーマンスを重視した方がいい。

  • 悪いコメント
  1. 付加情報のない無意味なコメント
  2. 冗長なコメント
  3. 形式的なコメント
    メンバ変数1つ1つに対するコメントは基本的には不要。
  4. 改修履歴コメント
    Git lensなど拡張機能で補える。
  5. バージョン管理のためのコメント
    バージョン管理のためのコメントはGitで行うようにする。
  • 良いコメント
    • 良いコメントというのは、コメントでしか表すことが困難なことを記していること
  1. TODOコメント
  2. 使用上の注意
  3. 使用上の警告
  4. 公開するライブラリのためのAPIコメント
  5. コピーライトコメント
  6. パフォーマンスなどに関わるコメント
    for文の方が速いからforeachに書き直して欲しくないときなど。
  7. 書き方としてややこしくなるのが避けられない処理へのコメント
    正規表現の意図を表すコメントなど

マジックナンバー(数値)、マジックキャラクター(文字列)を避ける

Console.log(1200 * 1.1);

上記の1.1は税率なのですが、このように数値ベタ書きだと、消費税の計算だということに気づけないことがある。なので、以下のように修正する。

const TAX_RATE = 1.1;
console.log(1200 * TAX_RATE);
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?