- ホーム
- 人に優しいコードの書き方
技術スキルアップ 人に優しいコードの書き方
2024/10/03
技術スキルアップ プログラミングでは、コードを効率的に動かすことに重点が置かれることが多いです。
しかし、それと同じくらい重要なのが、「読みやすく、理解しやすいコードを書くこと」です。
この「人に優しいコード」は、チーム全体だけでなく、未来の自分にも大きなメリットをもたらします。
なぜ人に優しいコードが重要なのか?
数ヶ月後に自分のコードを見直して、何をしているのか全く分からないことを想像してみてください。
同僚があなたのコードを理解できずに悩む姿を想像してみてください。12
読みやすいコードは、こうしたフラストレーションを減らし、作業効率を向上させる手助けとなります。
読みやすいコードを書くための基本ルール
「未来の開発者に優しいコードを書くための基本ルール」をまとめました。
- 適切な名前を付ける
- 名前に情報を詰め込む:
変数や関数名は、具体的な意味を持つようにしましょう。
例)value1
やtemp
のような汎用的な名前は避け、squareRoot
やcalculateTotalPrice
のように、変数や関数が何をしているのかを説明する名前を使います。 - 具体的にする:
例えば、ServerCanStart()
という関数名をCanListenOnPort()
に変更することで、より具体的で分かりやすい名前になります。 - 接頭辞や接尾辞を使う:
単位や用途が明確であれば、名前に情報を追加しましょう。
例)delay
よりもdelay_secs
とすることで、秒単位であることがすぐにわかります。
- 名前に情報を詰め込む:
- 意味のあるコメントを書く
コメントはコードが何をしているのかだけでなく、なぜそのコードが必要なのかを説明しましょう。
読み手にとっての意図を明確にすることで、コードの理解が容易になります。 - コードを意味のある単位に分割する
- コードを適切な単位で分割し、冗長な関数や複雑な構造を避けましょう。
- ループや条件文をできるだけ簡潔にし、大きな式は小さく分割します。
- コードの整形に気を付ける
一貫したフォーマットを守ることが大切です。
適切なインデントやスペース、深すぎないネストを心掛けることで、コードが見やすくなります。
読みやすいコードと読みづらいコードの比較
以下は、読みやすいコードとそうでないコードの一例です。
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。
- 全半角が混ざっていたり、ネストが深かったりすると、プログラマを殺せると言われた時期がありました。プログラマを殺す方法
↩︎ - 読みにくさを競うコンテストもあります。IOCCC 日本語ネタバレ ↩︎