技術スキルアップ

プログラミングでは、コードを効率的に動かすことに重点が置かれることが多いです。
しかし、それと同じくらい重要なのが、「読みやすく、理解しやすいコードを書くこと」です。

この「人に優しいコード」は、チーム全体だけでなく、未来の自分にも大きなメリットをもたらします。


なぜ人に優しいコードが重要なのか?

数ヶ月後に自分のコードを見直して、何をしているのか全く分からないことを想像してみてください。
同僚があなたのコードを理解できずに悩む姿を想像してみてください。12

読みやすいコードは、こうしたフラストレーションを減らし、作業効率を向上させる手助けとなります。


読みやすいコードを書くための基本ルール

「未来の開発者に優しいコードを書くための基本ルール」をまとめました。

  1. 適切な名前を付ける
    • 名前に情報を詰め込む
      変数や関数名は、具体的な意味を持つようにしましょう。
      例)value1temp のような汎用的な名前は避け、squareRootcalculateTotalPrice のように、変数や関数が何をしているのかを説明する名前を使います。
    • 具体的にする
      例えば、ServerCanStart() という関数名を CanListenOnPort() に変更することで、より具体的で分かりやすい名前になります。
    • 接頭辞や接尾辞を使う
      単位や用途が明確であれば、名前に情報を追加しましょう。
      例)delay よりも delay_secs とすることで、秒単位であることがすぐにわかります。
  2. 意味のあるコメントを書く
    コメントはコードが何をしているのかだけでなく、なぜそのコードが必要なのかを説明しましょう。
    読み手にとっての意図を明確にすることで、コードの理解が容易になります。
  3. コードを意味のある単位に分割する
    • コードを適切な単位で分割し、冗長な関数や複雑な構造を避けましょう。
    • ループや条件文をできるだけ簡潔にし、大きな式は小さく分割します。
  4. コードの整形に気を付ける
    一貫したフォーマットを守ることが大切です。
    適切なインデントやスペース、深すぎないネストを心掛けることで、コードが見やすくなります。

読みやすいコードと読みづらいコードの比較

以下は、読みやすいコードとそうでないコードの一例です。
2つ目の例の方が、変化する値が左側にあるため自然な流れで読みやすく、理解しやすいです。

読みづらい例:

if (10 >= length)

読みやすい例:

if (length <= 10)

制御フローをシンプルに保つ

制御構造(条件文やループ)は可能な限りシンプルに保ちましょう。
2つ目の例はネストが浅く、流れがスムーズで追いやすいです。

冗長な例:

if (user_result == SUCCESS) {
    if (permission_result != SUCCESS) {
        reply.WriteErrors(permission_result);
        reply.Done();
        return;
    }
    reply.WriteErrors("");
} else {
    reply.WriteErrors(user_result);
}
reply.Done();

読みやすい例:

if (user_result != SUCCESS) {
    reply.WriteErrors(user_result);
    reply.Done();
    return;
}
if (permission_result != SUCCESS) {
    reply.WriteErrors(permission_result);
    reply.Done();
    return;
}
reply.WriteErrors("");
reply.Done();

巨大な式を分割する

大きな式は、一行で書くのではなく、要約変数として抽出すると、理解しやすくなります。

都度判定する例:

var update_highlight = function (message_num) {
    if ($("#vote_value" + message_num).html() === "Up") {
        $("#thumbs_up" + message_num).addClass("highlighted");
        $("#thumbs_down" + message_num).removeClass("highlighted");
    } else if ($("#vote_value" + message_num).html() === "Down") {
        $("#thumbs_up" + message_num).removeClass("highlighted");
        $("#thumbs_down" + message_num).addClass("highlighted");
    } else {
        $("#thumbs_up" + message_num).removeClass("highighted");
        $("#thumbs_down" + message_num).removeClass("highlighted");
    }
};

数式を抽出した例:

var update_highlight = function (message_num) {
    var thumbs_up = $("#thumbs_up" + message_num);
    var thumbs_down = $("#thumbs_down" + message_num);
    var vote_value = $("#vote_value" + message_num).html();
    var hi = "highlighted";

    if (vote_value === "Up") {
        thumbs_up.addClass(hi);
        thumbs_down.removeClass(hi);
    } else if (vote_value === "Down") {
        thumbs_up.removeClass(hi);
        thumbs_down.addClass(hi);
    } else {
        thumbs_up.removeClass(hi);
        thumbs_down.removeClass(hi);
    }
};

結論:未来の自分のためにコードを書く

人に優しいコードを書く目的は、数ヶ月後にそのコードを見直しても、理解に時間をかけずにすぐに再利用できることです。
これらのベストプラクティスを取り入れることで、あなた自身やチームメンバーが効率よく作業を進められるようになります。

エンジニアは絶対読みましょう。

英語でも大丈夫!って方なら、無料で読めます:The Art of Readable Code

  1. 全半角が混ざっていたり、ネストが深かったりすると、プログラマを殺せると言われた時期がありました。プログラマを殺す方法
    ↩︎
  2. 読みにくさを競うコンテストもあります。IOCCC 日本語ネタバレ ↩︎

RECRUIT

採用情報

採用情報はこちら

CONTACT

お問い合わせ

Web問い合わせはこちら