{}const=>[]async()letfn</>var

コードを混乱させ、サポートできなくなる5つのミス

サポートされているコードは美しさではなく、時間と神経を節約することです。この記事では、魔法の数字から文書の欠如まで、プロジェクトをチームにとって悪夢にする5つの一般的なミスを分析します。

К

Kodik

著者

1分で読める

なぜこれが実際のプロジェクトで重要なのか ⏱️

サポート これは、落ちたり緊張したりすることなく、変化の速度を表します。コードを読みやすく、テストしやすいほど、リリースが早くなり、バグが少なくなります。これらの5つのエラーは最も一般的です。まずはそれらから始めましょう。

🔥 10万人以上の学生が参加中

理論を読むのに疲れた?
コーディングの時間だ!

Kodik — 実践でプログラミングを学ぶアプリ。AIメンター、インタラクティブなレッスン、実際のプロジェクト。

🤖 AI 24時間
🎓 修了証
💰 無料
🚀 始める
今日参加

❌マジックナンバーとマジックストリング

「3」、「0.15」、「S」は意味不明で、何を意味するのかわかりません。

# 変更前
if user_status == 3:
    discount = 0.15

# 変更後
VIP_USER = 3
LOYALTY_DISCOUNT = 0.15

if user_status == VIP_USER:
    discount = LOYALTY_DISCOUNT

💡 定数、列挙型(Enum)、および構成を使用します。意味が明らかになります。

❌ キロメータ機能

150行の関数は、入力の解析、検証、データベースへの書き込み、レポートの作成など、すべてを一度に実行します。

# ステップに分ける
def parse_request(req): ...
def validate(data): ...
def save(data, db): ...
def build_report(data): ...

def handle(req):
    data = parse_request(req)
    validate(data)
    save(data, db="main")
    return build_report(data)

小さな関数はテスト、再利用、読み取りが簡単です。

❌ コードの重複

コピペは論理の不一致につながります。ある場所では修正され、別の場所では忘れられています。

# 変更前(2つの類似した税金計算ブロック)
def calc_tax_order(total): return total * 0.07
def calc_tax_invoice(total): return total * 0.07

# 変更後
def calc_tax(amount, rate=0.07):
    return amount * rate

🔁 繰り返しを関数、クラス、またはモジュールに移動します。テンプレートでは、マクロ/パーシャルを使用します。

❌ よくない名前

名前 fxprocessData は、コンテキストなしでは理解できません。

# 変更前
def f(x): return x*7/100

# 変更後
def calculate_tax(price: float, tax_rate: float = 0.07) -> float:
    return price * tax_rate

主題領域に名前を付けましょう。エンティティが何を考え/行動するか。

❌ コメントとドキュメントはありません

コードは「どのように」を説明しますが、しばしば「なぜ」という答えが必要です。コメントなしの複雑な決定と仮定は罠です。

def allocate_slots(users):
    """
    Distributes slots to users.
    The algorithm is greedy: first VIP, then PRO, then FREE.
    This is critical for SLA partners.
    """
    ...

📚 重要な箇所には、README、docstring、短いコメントを付けてください。

📊 概要:エラーとその対処方法

エラー

危険な点

修正

マジックナンバー/マジックライン

意味の喪失、誤った編集のリスク

定数、列挙型、構成

長い関数

テストが難しく、読みにくい

短いステップへの分解

複製

ロジックの不一致、変更時のバグ

関数/モジュールへの移動

悪い名前

読み取り/オンボーディング速度の低下

ドメインロジックによる名前

文書がありません

期限の遅れ、「知識の担い手」への依存

Docstrings、README、簡単なコメント

PR前のミニチェックリスト✅

  • 意味のない数字や文字列の「魔法」はありますか?

  • 関数は約30〜40行で、1つのことを行いますか?

  • コピペを削除しましたか?繰り返しは一般モジュールに。

  • 名前は読みやすいですか?(メソッド、変数、ファイル)

  • 初心者が入門できるdocstrings/READMEはありますか?

  • テストは主要なロジックをカバーしていますか?

優れた実践者と練習する場所 💡

B コディケ 私たちはプログラミングの学習を楽しくわかりやすくします。ステップバイステップでスキルを磨くのに役立つ課題を伴う興味深いコースを用意しています。

また、アクティブな テレグラムチャンネル、ここでは素晴らしいアイデアについて話し合い、経験を共有し、課題を一緒に分析します。学習は有益であるだけでなく、楽しいものになります。

プロジェクトで最もよく見られる5つのミスはどれですか?

🎯先延ばしをやめよう

記事は気に入った?
実践の時間だ!

Kodikでは読むだけでなく、すぐにコードを書く。理論 + 実践 = 本当のスキル。

即座に実践
🧠AIがコードを説明
🏆修了証

登録不要 • カード不要