すべての開発者が直面している:汚いコード - 急いで書かれているように見えるコードの種類、魔法の数字、重複したブロック、不可解な変数名が散らばっているように見える。それは機能します...かろうじて。しかし、それを維持しますか?それは悪夢です。
他の人のコード(または自分のコード)をリファクタリングしている間に息の下でつぶやいたことがあるなら、この記事はあなたのためです。コードを清潔にし、読みやすく、将来のプルーフに保つための簡単なルールをいくつか紹介します。
ダーティコードとは?
とは何ですか
ダーティコードは次のコードです:
これは開発者の場合によく起こります:
なぜ汚いコードが問題なのか?
ダーティコードを回避するための簡単なルール
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。乾燥(繰り返さないでください)
コピーや貼り付けを行っている場合は、間違っています。重複したコードにより、バグは悪夢を修正します。関数またはクラスへの要約反復ロジック。
❌悪い例:
print("Welcome, John") print("Welcome, Mary")
✅の良い例:
def greet_user(name): print(f"Welcome, {name}") greet_user("John") greet_user("Mary")
5。機能を短く保ちます
機能が20〜30行より長い場合、やりすぎです。それをより小さく、再利用可能な機能に分解します。
長い関数により、特定の動作を理解してテストするのが難しくなります。
6。コメントを控えめに使用する
それ自体を説明するコードを書きます。必要な場合にのみコメントを使用して、複雑なロジックを明確にします。明白なものを述べているコメントを避けてください。
❌悪い例:
// Increment the counter by 1 counter = counter 1;
✅の良い例:
コードが明確な場合、コメントは必要ありません:
counter = 1;
コードが行っていることではなく、特定の決定が下された理由を明確にするなどのコメントを使用します。
7。コードをフォーマットして整理します
開発者の考え方:人間のコードを書く
コードはマシン用に書かれているだけではありません。それは人間のためにも書かれています - あなたの私たちのチームメイト、将来のメンテナー、またはあなた自身さえ6か月後にさえ。クリーンコードを書くとき:
最終的な考え
汚れたコードを避けることは困難ではありません。それはただ規律を取ります。これらの簡単なルールに従ってください:
今、あなたが無視してきた厄介なコードをリファクタリングしてください! ?
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3