避けるべきよくあるコーディングミス

避けるべきよくあるコーディングミス

人は誰でも間違いを犯す。

しかし、開発者が犯す間違いの多くは回避可能です。この記事で説明した一般的な間違いを避けることができれば、より優れた簡潔なコードを書くことができます。

[[313623]]

これは、あなただけでなく、あなたのコードをレビューする必要がある他の開発者にとっても有益です。したがって、よくある間違いを避けることは、あなただけでなく、チームにとっても有益です。

要約すると、Xiaoxin は避けるべき一連のよくある間違いをまとめました。

1. 変数の非説明的な命名

適切な変数名の重要性はいくら強調してもし過ぎることはありません。多くの場合、プロジェクトに取り組んでいる開発者はあなただけではなく、他の開発者もあなたが書いたコードを理解する必要があります。

適切な名前を選択するには時間がかかりますが、それによって多くの時間を節約できます。

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

変数の非説明的な名前に関する前のセクションに続いて、次の項目に進んでください。次の項目では、変数に値を割り当てないこと (マジックナンバーまたはマジック文字列とも呼ばれます) について説明します。

Wikipedia の定義:

マジックナンバーは、説明されていない意味を持ち、複数回出現する一意の値であり、名前付き定数に置き換えることができます。

次のコード スニペットを検討してください。

  1. ($i = 1; $i <= 52; $i++)の場合{
  2.  
  3. ...
  4.  
  5. }

この例の数字 52 は魔法の数字です。 52 という数字がなぜ存在するのか、またそれが何を表しているのかは誰も理解していません。なぜ 52 なのですか? なぜ 64 ではないのですか? これらは 1 年間の合計週数ですか?

より明確な方法は次のとおりです。

  1. $cardDeckSize = 52; ( $i = 1;$i <= $cardDeckSize; $i++) {
  2.  
  3. ...
  4.  
  5. }

これで、誰もがこれがトランプのデッキを循環させていることを理解できるでしょう。コードは他の開発者にコンテキストを提供します。さらに、値は変数に一度だけ保存され、重複されないため、数値を変更するのが簡単になります。

マジックナンバーはプログラム内のさまざまな場所で複数回使用されることが多いため、エラーが発生しやすくなります。

文字列にも同じアプローチを使用できます。

  1. if (userPasswordIsValid($ユーザー "6yP4cZ" .$パスワード)) {
  2.  
  3. ...
  4.  
  5. }

6yP4cZとは何ですか?非常にランダムなようです。

  1. $salt = "6yP4cZ" ;if(userPasswordIsValid($ユーザー、$salt.$パスワード)) {
  2.  
  3. ...
  4.  
  5. }

ああ、分かりました!

3. コード形式が乱雑

コードの形式を難読化することは、通常、プログラミング経験があまりない人が犯す間違いです。長年の経験を持つ開発者に、コードのフォーマットを間違えたテスターやデータ サイエンティストを知っているかどうか尋ねると、おそらくうなずくでしょう。これは経験不足によるものです。Python のようなプログラミング言語を使用しない限り、こうした間違いの多くは回避できます。

フォーマットの問題を修正する最も一般的な方法は、リンターを使用することです。最新の統合開発システム (IDE) もこの問題を解決する可能性があります。プラグインをインストールする必要がある場合もあれば、直接インストールできる場合もあります。

4. 1つの機能で多くのことを行う

単一責任パターンによれば、関数は 1 つのことだけを実行する責任を負う必要があります。データの取得、処理、表示という 3 つの機能を組み合わせた関数を数多く見てきました。適切なプログラミングでは、この機能を個別のプロセスに分割し、1 つの機能でデータを取得し、1 つの機能でデータを処理し、もう 1 つの機能でデータを表示します。

関数がより堅牢になるため、1 つのことに集中することが重要です。たとえば、API (アプリケーション プログラミング インターフェイス) からデータを取得するなどです。 API が変更された場合 (たとえば、新しいバージョンがリリースされた場合)、同じ関数に属している処理コードが壊れるリスクが高まり、データの表示も壊れる可能性があります。

5. ハードコーディング

ハードコーディングとは、データを外部ソースから取得したり、実行時に生成したりするのではなく、プログラムやその他の実行可能オブジェクトのソース コードに直接データを埋め込むソフトウェア開発手法です。

ハードコードされた値は変更できません。固定値です。ハードコーディングはアンチパターン、または少なくとも悪いコードの兆候と見なされます。

何らかの理由(場合によっては正当な理由)でハードコードされることが多いのは、パスワードとファイルの場所です。

ハードコードされたパスワードが使用されるシナリオの多くは、外部サービスまたは API による認証のためです。これらの資格情報はハードコードされることが多く、これは良い方法ではありません。

多くのものをハードコーディングしていることに気付いた場合は、書いたコードをよく確認する必要があります。ほとんどの場合、これは問題を解決する良い方法ではないからです。

6. コードをコメントアウトする

複数の関数をカバーするコード ブロックがコメント アウトされているのを見たことがあるでしょう。なぜそれがまだそこにあるのか誰も知りませんし、コードがもはや意味をなすのかどうかも誰も知りません。しかし、このコードを削除する人は誰もいません。これは開発者が実際に行うべきことです。誰もこのコードを削除しなかった理由は、他の誰かがそれを必要とするかもしれないと誰もが考えたからです。

コメントアウトされたコードを削除するだけです。コードが新しいリリースに含まれていなくても、誰かがそれを使用したい場合は、バージョン管理で引き続き利用できます。

しかし、これはあくまでも私の個人的な意見です。

<<:  AIを金融業界の傍観者と考えるのはやめよう

>>:  大規模な伝染病に直面した時、ロボットは何ができるでしょうか?

ブログ    

推薦する

交通における人工知能: スマートソリューションによる交通革命

人工知能 (AI) は世界中の産業に変化をもたらしており、交通も例外ではありません。テクノロジーが進...

ブラックホールの中には何があるのでしょうか?物理学者は量子コンピューティングと機械学習を使って

BGRによると、PRX Quantum誌に最近発表された研究では、ブラックホール内部をさらに詳しく調...

...

AIは魔法ではない:人工知能にできること、できないこと

この記事の著者は、AI テクノロジーが私たちの生活にもたらす利便性と、それが持つ限界について、4 つ...

...

人工知能業界マップと主要なブレークスルー

Sage の予測によると、人工知能の出現により、2030 年までに世界の GDP がさらに 14% ...

AI は教育にどのように役立つのでしょうか?

教育改革と人工知能の普及に伴い、キャンパスのインテリジェント構築もデジタルキャンパスからスマートキャ...

ディープラーニングの発展とそれが引き起こした気候変動問題

人間の脳は極めて効率的な知能の源ですが、現在の AI はこのレベルに到達できません。 [[33099...

機械学習: Python でベイズ分類器をゼロから実装する

ナイーブ ベイズ アルゴリズムはシンプルで効率的であり、分類問題を扱う際に最初に検討すべき方法の 1...

...

機械学習とHPCの火花は少し異なる

従来、高性能コンピューティング (HPC) は、数値解析を利用して物理方程式を解き、素粒子から銀河に...

...

...