ホームページ >バックエンド開発 >Python チュートリアル >汚いコード: それを避けるための簡単なルール

汚いコード: それを避けるための簡単なルール

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-20 04:35:13446ブラウズ

Dirty Code: Simple Rules to Avoid It

すべての開発者は、汚いコードに直面したことがあります。つまり、マジック ナンバー、重複したブロック、不可解な変数名が散りばめられ、急いで書かれたように見える種類のコードです。それは...かろうじて機能します。しかし、それを維持しますか?それは悪夢です。

他人のコード (または自分自身のコード) をリファクタリングしているときに、小声でつぶやいたことがあるなら、この記事はあなたのためです。コードをクリーンで読みやすく、将来性のあるものに保つための簡単なルールをいくつか紹介します。

ダーティ コードとは何ですか?
ダーティ コードとは、次のようなコードです:

  • 読みにくい、または理解するのが難しいです。
  • 構造と一貫性が欠如しています。
  • 他のものを壊さずに変更またはデバッグするのは困難です。

これは、開発者が次の場合によく発生します。

  1. 厳しい期限内で作業します。
  2. コードレビューをスキップします。
  3. ベストプラクティスや標準には従わないでください。

ダーティコードが問題になるのはなぜですか?

  • デバッグが難しい: 1 つのバグを修正すると、他の 5 つのバグが発生する可能性があります。
  • 維持費がかかる: コードの書き方が不十分だと、改善に時間がかかります。
  • チームの混乱: 新しい開発者は、何が起こっているのかを理解するだけで余分な時間を費やします。 汚いコードは今日の仕事を終わらせるかもしれませんが、チームと将来の自分にとっては時限爆弾です。

ダーティコードを避けるための簡単なルール

1.単一責任原則 (SRP) に従います
各関数、メソッド、またはクラスは 1 つのことだけを行う必要があります。責任が多すぎるメソッドを作成していることに気付いた場合は、メソッドをより小さな単位に分割してください。

❌ 悪い例:

def process_user_data(user):
    user['age'] = user['age'] + 1  
    db.save(user)  
    print(f"User {user['name']} updated")  

✅ 良い例:

def update_user_age(user):
    user['age'] += 1  

def save_user_to_db(user):
    db.save(user)  

def log_user_update(user):
    print(f"User {user['name']} updated")  

各関数には 1 つの明確なジョブがあり、コードのテストと変更が容易になりました。

2.マジックナンバーと文字列を避ける
ハードコーディングされた値 (「マジック ナンバー」) により、コードが判読できなくなり、保守が困難になります。代わりに定数を使用してください。

❌ 悪い例:

if (statusCode === 404) {  
    console.log("Not Found");  
}

✅ 良い例:

const NOT_FOUND = 404;

if (statusCode === NOT_FOUND) {  
    console.log("Not Found");  
}

定数 NOT_FOUND は一目瞭然なので、コードが読みやすくなります。

3.説明的な変数名と関数名を記述する
変数名は、それが何を表すかを反映する必要があります。略語や難解な名前は避けてください。

❌ 悪い例:

int a = 5;  
String s = "John";  

✅ 良い例:

int userAge = 5;  
String userName = "John";  

関数についても同様です。 doStuff() や process() のようなあいまいな名前は避けてください。具体的にしてください。

4. DRY (同じことを繰り返さないでください)
コードをコピーして貼り付けている場合、それは間違っています。コードが重複すると、バグ修正が悪夢のような作業になります。反復ロジックを関数またはクラスに抽象化します。

❌ 悪い例:

print("Welcome, John")  
print("Welcome, Mary")  

✅ 良い例:

def process_user_data(user):
    user['age'] = user['age'] + 1  
    db.save(user)  
    print(f"User {user['name']} updated")  

5.関数は短くしてください
関数が 20 ~ 30 行を超える場合は、やりすぎです。それをより小さな再利用可能な関数に分割します。

関数が長いと、特定の動作の理解とテストが難しくなります。

6.コメントは控えめに使用してください
それ自体を説明するコードを作成します。コメントは、複雑なロジックを明確にするために必要な場合にのみ使用してください。明らかなことを述べたコメントは避けてください。

❌ 悪い例:

def update_user_age(user):
    user['age'] += 1  

def save_user_to_db(user):
    db.save(user)  

def log_user_update(user):
    print(f"User {user['name']} updated")  

✅ 良い例:
コードが明確であれば、コメントは必要ありません:

if (statusCode === 404) {  
    console.log("Not Found");  
}

コードの動作ではなく、特定の決定が行われた理由を明確にするなどの目的でコメントを使用します。

7.コードの書式設定と整理

  • 一貫したコーディング スタイル ガイドに従ってください (例: Python の場合は PEP8、JavaScript の場合は ESLint)。
  • 適切なインデントを使用してください。
  • 関連するコードをグループ化します。 適切なフォーマットを使用すると、余分な労力を必要とせずにコードがクリーンで読みやすくなります。

開発者の考え方: 人間のためにコードを書く
コードはマシンのために書かれるだけではありません。これは人間向けにも書かれています。チームメイト、将来のメンテナー、さらには 6 か月後の自分自身です。クリーンなコードを書く場合:

  • 他の人の精神的負担を軽減します。
  • デバッグ、拡張、改善が容易になります。
  • あなたは品質を重視するプロの開発者のようですね。

最終的な考え
ダーティコードを回避するのは難しいことではありません。必要なのは規律だけです。次の簡単なルールに従ってください:

  1. 単一責任の原則を堅持します。
  2. マジックナンバーは避けてください。
  3. 明確でわかりやすい名前を使用します。
  4. 反復的なコードを乾燥させます。
  5. 関数は短くしてください。
  6. コメントは賢明に使用してください。
  7. コードを一貫してフォーマットします。

きれいなコードとは完璧を意味するものではありません。それはあなたの仕事を保守しやすく、理解しやすいものにすることです。将来のあなたとあなたのチームはあなたに感謝するでしょう。

さあ、無視してきた厄介なコードをリファクタリングしてみましょう! ?

以上が汚いコード: それを避けるための簡単なルールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。