コードの匂い - 低レベルの追加
物事をどのように行うかは気にしないでください。自分の行動に気をつけよう
TL;DR: ループをなくす: 宣言型スタイルでよりクリーンなコードを作成する
問題点
- 冗長ロジック
- 繰り返しのパターン
- 可読性
- 保守性
ソリューション
- ループを削除
- ロジックを簡素化する
- 宣言的な高レベルのコードを作成する
コンテクスト
コレクションを合計するとき、要素を手動でループし、それぞれを変数に追加することがあります。
このアプローチは機能しますが、不必要なコード行が追加されるため、従うのが難しくなります。
言語の高レベル関数を使用すると、コードを短く、明確にし、エラーを発生させにくくすることができます。
コードがどのように実行しているかではなく、コードが何を実行しているかを正確に示します。
サンプルコード
間違っている
transaction_values = [10.0, -5.21, 101.32, 1.11, -0.38] balance = 0 for transaction_value in transaction_values: balance += transaction_value
右
transactions_values = [10.0, -5.21, 101.32, 1.11, -0.38] balance = sum(transactions_values)
検出
[X] 半自動
この匂いは、特に値の合計などの単純な操作において、結果を蓄積する明示的なループを見ると検出できます。
タグ
- 宣言型
レベル
[X] 初心者
AIの生成
AI ジェネレーターは、sum() のような関数を使用する代わりに、冗長なループを記述することでこの匂いを生成することがあります。
よりクリーンな宣言型ソリューションの必要性を明示しない場合、より多くのコード行を選択する可能性があります。
AI検出
AI システムは、「最適化」または「簡素化」という簡単な指示でコードの複雑さを軽減するように要求すると、この臭いを簡単に検出して簡素化できます。ほとんどの AI ツールは、この場合に sum() を使用することを提案します。
試してみてください!
AI アシスタントは多くの間違いを犯すことを忘れないでください
適切な指示がなければ
ChatGPT クロード・パープレクシティ・ジェミニ
具体的な指示付き
ChatGPT クロード・パープレクシティ・ジェミニ
結論
sum() のような宣言型関数を優先すると、可読性が向上し、潜在的なエラーが減ります。
手動ループの必要性が減り、メンテナンスが容易になります。最小限の構文と乱雑さを使用して、コードが何を行っているかを正確に示します。
関係

コードの匂い 53 - 明示的な反復
Maxi Contieri ・ 2021 年 1 月 5 日

コードの匂い 123 - 「何を」と「どのように」の混合
Maxi Contieri ・ 2022 年 3 月 22 日
免責事項
コードの匂いは私の意見です。
クレジット
Unsplash の Kati Hoehl による写真
プログラムの最も重要な特性は、ユーザーの意図を達成できるかどうかです。
C.A.R.ホア

ソフトウェア エンジニアリングの素晴らしい名言
Maxi Contieri ・ 2020年12月28日
この記事は CodeSmell シリーズの一部です。

コードの怪しい部分を見つける方法
マキシ・コンティエリ ・ 2021年5月21日
以上がコードの匂い - 低レベルの追加の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。
