56
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

良いコードは良い名前から生まれる - Good Concepts in Programming -

Last updated at Posted at 2022-11-01

概要

プログラミングの良い概念を理解するとプログラマーレベルが上がると考えています。
良い概念は特定のプログラミング言語に縛られないので、様々なプログラミング言語で役に立ちます。
前回はやらない理由を書いてやらない(早期リターン)を紹介しました。
今回紹介する良い概念は「良いコードは良い名前から生まれる」です。

良いコードは良い名前から生まれるとは

プログラミングでは変数名、関数名、クラス名などに名前を付けなければいけません。
人間がコードを理解するときにコードの可読性はとても重要です。
意味のある名前を付けるとコードの可読性は抜群に上がります。

サンプルコード

名前の付け方でコードの見え方に違いがあるのでしょうか?
意味のない名前を付けたコードと意味のある名前を付けたコードを比較してみましょう。

1.変数名に良い名前を付ける

商品の税込金額を計算するサンプルコードです。

bad_variable_name.js
// a: 消費税率, b: 金額, c: 消費税, d: 税込金額
const a = 0.1
let b = 1000;
let c = b * a;
let d = b + c;

コメントが付いていないと、何をしているコードかすぐに理解ができないです。
では変数名に意味のある名前を付けてみましょう。

good_variable_name.js
const TaxRate = 0.1;
let price = 1000;
let tax = price * TaxRate;
let total = price + tax;

処理の内容は全く同じですが読みやすくなりました。
変数名に意味のある名前を付けることで、何をしているコードかすぐに理解できます。

2.関数名に良い名前を付ける

関数を定義して実行するサンプルコードです。

bad_function_name.js
function funcA() {
    // チェック処理
}

function funcB() {
    // 計算処理
}

function funcC() {
    // ログ出力処理
}

// チェック処理、計算処理、ログ出力処理の順番で実行
funcA();
funcB();
funcC();

コメントが付いてないと、何を実行しているのかわかりませんね。
では関数名に意味のある名前を付けてみましょう。

good_function_name.js
function check() {
    // チェック処理
}

function calculate() {
    // 計算処理
}

function outputLog() {
    // ログ出力処理
}

check();
calclate();
outputLog();

関数名からどんな処理をするのか予測できます(もちろん関数名に合った処理を記載する必要があります)。

3.条件式に良い名前を付ける

条件式に名前を付けるというのはあまり聞き慣れないかもしれませんが効果的です。

bad_condition_name.js
const TargetTotalPrice = 1000000;
const TargetVisitCount = 20;

// ゴールド会員の判定をします(一定金額以上の利用かつ一定回数の来店でゴールド会員)
if (totalPrice >= TargetTotalPrice && visitCount >= TargetVisitCount)
{
    // ゴールド会員の処理をします
}

問題のないコードですが、if文の中が少し読みにくいと感じます。
では条件式に意味のある名前を付けてみましょう。

good_condition_name.js
const TargetTotalPrice = 1000000;
const TargetVisitCount = 20;
const isGoldMember = totalPrice >= TargetTotalPrice && visitCount >= TargetVisitCount;

if (isGoldMember) {
    // ゴールド会員の処理をします
}

変数に条件式を代入しただけですが、名前が付けることで見やすくなった気がしませんか?
また変数になったことで同じ条件の場合に変数を再利用できます。

4.クラス名に良い名前を付ける

クラス名のサンプルコード(Python)です。
クラスはデータ構造(変数)と振る舞い(関数)をカプセル化するので名前は重要です。

bad_class_name.py
class Class1:
    def say(self):
        return "hello!"

class Class2(Class1):
    def say(self):
        return "こんにちは!"

コメントが書いてないので、クラス名から何をしたいクラスか読み取れないと思います。
ではクラス名に意味のある名前を付けてみましょう。

good_class_name.py
class Greeting:
    def say(self):
        return "hello!"

class JapaneseGreeting(Greeting):
    def say(self):
        return "こんにちは!"

挨拶(Greeting)に関するクラスだとクラス名から読み取れます。

まとめ

今回は良いコードは良い名前から生まれるを紹介しました。
コードが理解しにくいと感じたらコードの中の名前が良くないかもしれません。
良いコードは良い名前から生まれるを理解してプログラマーレベルが上がったと感じていただければ幸いです。

最後まで読んでいただきありがとうございます。

56
28
1

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
56
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?