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

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

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

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

[[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を金融業界の傍観者と考えるのはやめよう

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

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

Metaは、メタバース内の肖像画がぼやけないようにするための新しい仮想背景処理AIを開発しました

COVID-19パンデミックが始まって以来、私たちのほとんどは友人、同僚、家族とのリモートビデオ通話...

...

2020 年の CIO にとっての 5 つの戦略的優先事項

ヘルスケア、小売、テクノロジー業界の IT リーダーが 2020 年の戦略的優先事項を共有します。ヒ...

端から端まで道を切り開きます! OccWorld: 自動運転の未来に向けた 3D 占有世界モデルへの新しいアプローチ

序文と個人的な理解とても良い作品を見つけたので、皆さんと共有したいと思います!占有+世界モデルに関し...

...

配達員はSF映画のハイテク技術を駆使し、平地を歩いているかのように100キロの重量を運ぶ。

昨日、配達員の動画がインターネット上で話題になった。動画では、ハミングバードデリバリーの配達員がテイ...

2019 年の JavaScript 向け機械学習ライブラリ トップ 6

通常、機械学習 (ML) の方法とアルゴリズムは、Python または R の 2 つのプログラミン...

...

...

オープンソースの Gemma モデル: Google の言語の奇跡。命令チューニング、低ランク適応、Switch Transformer を使用して小さなモデルで遊ぶことができます。

言語は人間にとって最も重要なコミュニケーションツールであり、人工知能の分野における最も挑戦的な研究対...

Googleはプライバシーポリシーを更新し、インターネット上の公開情報をAIモデルのトレーニングに利用することを許可した。

検索エンジン大手のGoogleは7月4日、プライバシーポリシーを更新し、インターネット上の公開情報を...

...

マイクロソフトの自動運転戦略:自動車を製造するのではなく、企業に技術サポートとクラウドサービスを提供する

ゼネラル・モーターズ傘下の自動運転車開発会社クルーズは、マイクロソフト、ゼネラル・モーターズ、ホンダ...

YOLO-NAS: 最も効率的なターゲット検出アルゴリズムの1つ

YOLO-NAS 物体検出導入YOLO (You Only Look Once) は、ディープ ニュ...