閉じる

読みやすいエレガントなコードにするコツ5選

コードのエレガンスは、読んだ人が迷わず理解できる読みやすさにあります。

難しい設計よりも、日々の小さな工夫が効果を生みます。

本記事では、初心者でも今日から実践できる5つのコツと、スタイルの整え方、進め方をやさしく解説します。

エンジニアの求人
読み込み中…

エレガントなコードとは?プログラミング初心者向け

読みやすさが最優先

エレガントなコードとは、読んだ瞬間に意図が伝わるコードのことです。

コードは一度書いて何度も読み返されます。

書いた本人だけでなく、未来の自分や他の人が読んでも迷わないように、名前、構造、コメントを整えます。

「誰が読んでも同じ理解にたどり着く」ことを目標にすると、自然と品質が上がります。

以下は名前の付け方だけで読みやすさが変わる例です。

Python
# NG: 意味が伝わらない
a = 0
for x in arr:
    a += x

# OK: 何を足して合計しているかが分かる
total_price = 0
for price in prices:
    total_price += price

同じ処理でも「名前」が伝える情報量で理解の速さが変わります

短くても具体的な単語を選ぶことが基本です。

余計な複雑さを減らす

複雑さはバグと迷いの温床です。

入れ子(ネスト)の深い条件、回りくどい書き方、使われない変数は避けましょう。

先に「お断り」する(ガード節)と読みやすくなります。

Python
# NG: 条件が深くて追いにくい
def apply_discount(user, price):
    if user is not None:
        if user.is_member:
            if price > 1000:
                return price * 0.9
    return price

# OK: 先に戻って浅くする
def apply_discount(user, price):
    if user is None:
        return price
    if not user.is_member:
        return price
    if price <= 1000:
        return price
    return price * 0.9

「先に返す」と「同じ段に並べる」を徹底すると、目線の移動が少なくなり理解が速くなります

読みやすいエレガントなコードにするコツ5選

命名は具体的で短く

「名は体を表す」ので、用途が一目で分かる単語を選びます

データには名詞、関数には動詞を使い、Pythonならlower_snake_caseに統一します。

長すぎる名前は避けつつ、短すぎて意味が分からないのも避けます。

命名のNG/OK例(短く具体的に):

用途NGOK
合計金額a, sum1total_price
ログイン状態flag, fis_logged_in
期限(日付)d, dtdeadline_date
ユーザー一覧datausers
税込計算関数calcadd_tax

「誰が見ても同じ意味に読めるか」を最後に1回確認すると命名の質が安定します

関数は短く1つの役割にする

1つの関数には1つの目的だけを持たせると読みやすくなります。

目安として5〜15行程度(状況により前後)を意識し、まとまりごとに小さく分けましょう。

Python
# NG: いろいろ混ざって長い
def process_order(order):
    # 合計
    total = 0
    for item in order.items:
        total += item.price * item.qty
    # 税
    total *= 1.1
    # 出力
    print(f"Total: {total} JPY")
    return total

# OK: 役割ごとに分ける
def calc_total(order):
    total = 0
    for item in order.items:
        total += item.price * item.qty
    return total

def with_tax(amount):
    return amount * 1.1

def print_total(total):
    print(f"Total: {total} JPY")

def process_order(order):
    subtotal = calc_total(order)
    total = with_tax(subtotal)
    print_total(total)
    return total

短い関数はテストもしやすく、バグが出た時に原因箇所を特定しやすくなります

コメントは「なぜ」を書く

コードは「何を」「どうやるか」を示し、コメントは「なぜそうするか」を補います

目に見えない理由(仕様、制約、過去の不具合)を短く残しましょう。

動作の説明だけのコメントは冗長になりがちです。

Python
def normalize_username(name):
    # なぜ: 外部サービスAが大文字を許可しないため(2025-01仕様)
    # 参考: 仕様URLを記録しておくと後で助かる
    return name.strip().lower()

「このコメントが無いと将来の自分が悩むか」で書くかを判断すると過不足が減ります。

条件分岐は浅くする

ネストを浅くするだけで、追う行数と脳の負担が一気に減ります

早めに返す、デフォルトを先に決める、同じ条件をまとめるのがコツです。

Python
# NG: ネストが深い
def can_access(user):
    if user:
        if user.is_active:
            if not user.is_banned:
                return True
    return False

# OK: 早めに返す(ガード節)
def can_access(user):
    if not user:
        return False
    if not user.is_active:
        return False
    if user.is_banned:
        return False
    return True

「elseを減らす」「条件を肯定形にする」だけでも可読性が上がります

同じ処理は共通化して重複をなくす

同じコードをコピペすると、どれか1つだけ直し忘れる危険が増えます

共通の関数にまとめて1か所で管理しましょう。

Python
# NG: 2か所に同じフォーマット処理
print(f"¥{int(price):,}")
# ...別の場所でも...
print(f"¥{int(price):,}")

# OK: 共通化
def format_jpy(amount):
    return f"¥{int(amount):,}"

print(format_jpy(price))
print(format_jpy(discounted_price))

「同じ3行が2回出たら関数化を検討」が分かりやすい目安です

コーディングスタイル(一貫性)の基本

インデントとスペースを統一

インデント(字下げ)がバラバラだと読む人は一瞬で迷います

Pythonならスペース4つが一般的です。

演算子やカンマの後ろのスペースも統一しましょう。

Python
# NG: インデントとスペースが不統一
def add(a,b):
  if(a>0):
     return a+b
  else:
     return(a +  b)

# OK: 揃える
def add(a, b):
    if a > 0:
        return a + b
    return a + b

「見た目の揃い」は読みやすさに直結し、バグの早期発見にも役立ちます

自動整形ツールで整える

人の目と手だけで整えるのは大変なので、エディタに自動整形を任せます

保存時に実行されるよう設定すると負担が減ります。

「保存で自動整形」を最初に設定しておくと、常にきれいな状態を保てます。

代表的なツール(例):

言語ツールヒント
PythonBlack厳密なルールで自動整形。設定が少なく初心者向け
JavaScript/TypeScriptPrettierVS Codeと相性が良く、保存時実行が簡単
Gogofmt標準ツール。チーム全員が同じ結果に
CSS/JSON/MarkdownPrettierコード以外の整形にも有効

ツールで「形」をそろえ、人の力は「内容」を良くすることに使いましょう

ファイル名や命名規則を決める

同じプロジェクトでは同じルールが読みやすさを支えます。

ファイル名や変数名の書き方を最初に決めて、全体を揃えます。

例(プロジェクトの種類ごとに統一):

対象推奨例ポイント
Pythonファイル名order_service.py小文字+アンダースコア(snake_case)
JavaScriptファイル名order-service.js小文字+ハイフン(kebab-case)
定数名MAX_RETRY大文字+アンダースコア
クラス名OrderService単語の先頭を大文字(PascalCase)
画像/静的ファイルuser-icon.png小文字+ハイフンで読みやすく

ルールは短くシンプルにし、迷った時に見返せる場所に書いておきます

初心者が実践しやすい進め方

小さく実装→動作確認→少しずつ見直す

一度に完璧を目指さず、小さく作ってすぐ動かし、少しずつ良くします

この繰り返しが結果的に最短です。

  • 小さく作る(まずは必要最小限の機能だけ)
  • 動かす(動作確認と簡単なテスト)
  • 見直す(命名、分割、コメント、重複の削減)

「まずは動く小さな状態」を作ると、改善点がはっきり見えてきます。

読みやすいサンプルコードを真似る

良い例を真似るのが上達の近道です。

公式チュートリアルや書籍のサンプル、信頼できる入門記事のコードを、まずは真似して書いてみましょう。

少し慣れたら、自分の言葉(命名)や自分の関数分割に置き換えていきます。

写経→少し変更→自分の形の順がやりやすいです。

ルールをチェックリスト化する

毎回ゼロから悩まないために、短いチェックリストを用意します

タスクリストではなく、確認ポイントとして机の横に置いておくと便利です。

例(机の横に1枚置く):

項目確認すること
命名短く具体的かis_active, total_price
関数の役割1つに絞れているか分割できる場所はないか
コメント「なぜ」が書けているか仕様や理由、参考リンク
条件分岐浅くできているか早めにreturnできるか
重複同じ処理が2回以上ないか共通関数に切り出す

「毎回同じ失敗を繰り返さない仕組み」を作ると、着実に上達します

まとめ

エレガントなコードの土台は読みやすさです。

命名を具体的にし、関数を短く保ち、コメントで「なぜ」を伝え、条件分岐を浅くし、重複を減らす。

この5点を徹底するだけで、コードはぐっと伝わりやすくなります。

さらに、一貫したスタイルと自動整形で見た目を揃え、小さく作って見直すサイクルを回せば、初心者でも無理なく品質を高められます。

難しいテクニックより、毎日の小さな整え方の積み重ねが、読みやすいエレガントなコードへの近道です。

エンジニアの求人
読み込み中…
プログラミング - 基礎理論と概念

この記事を書いた人
エーテリア編集部
エーテリア編集部

このサイトでは、プログラミングをこれから学びたい初心者の方に向けて記事を書いています。 基本的な用語や環境構築の手順から、実際に手を動かして学べるサンプルコードまで、わかりやすく整理することを心がけています。

クラウドSSLサイトシールは安心の証です。

URLをコピーしました!