なぜこれが実際のプロジェクトで重要なのか ⏱️
サポート これは、落ちたり緊張したりすることなく、変化の速度を表します。コードを読みやすく、テストしやすいほど、リリースが早くなり、バグが少なくなります。これらの5つのエラーは最も一般的です。まずはそれらから始めましょう。
❌マジックナンバーとマジックストリング
「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🔁 繰り返しを関数、クラス、またはモジュールに移動します。テンプレートでは、マクロ/パーシャルを使用します。
❌ よくない名前
名前 f、x、processData は、コンテキストなしでは理解できません。
# 変更前
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つのミスはどれですか?
