目次
コードの匂い 53 - 明示的な反復
Maxi Contieri ・ 2020年12月28日
コードの匂い 123 - 「何を」と「どのように」の混合
ソフトウェア エンジニアリングの素晴らしい名言
コードの怪しい部分を見つける方法
マキシ・コンティエリ ・ 2021年5月21日
ホームページ バックエンド開発 Python チュートリアル コードの匂い - 低レベルの追加

コードの匂い - 低レベルの追加

Sep 12, 2024 am 10:21 AM

物事をどのように行うかは気にしないでください。自分の行動に気をつけよう

TL;DR: ループをなくす: 宣言型スタイルでよりクリーンなコードを作成する

問題点

  • 冗長ロジック
  • 繰り返しのパターン
  • 可読性
  • 保守性

ソリューション

  1. ループを削除
  2. ロジックを簡素化する
  3. 宣言的な高レベルのコードを作成する

コンテクスト

コレクションを合計するとき、要素を手動でループし、それぞれを変数に追加することがあります。

このアプローチは機能しますが、不必要なコード行が追加されるため、従うのが難しくなります。

言語の高レベル関数を使用すると、コードを短く、明確にし、エラーを発生させにくくすることができます。

コードがどのように実行しているかではなく、コードが何を実行しているかを正確に示します。

サンプルコード

間違っている

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() のような宣言型関数を優先すると、可読性が向上し、潜在的なエラーが減ります。

手動ループの必要性が減り、メンテナンスが容易になります。最小限の構文と乱雑さを使用して、コードが何を行っているかを正確に示します。

関係

免責事項

コードの匂いは私の意見です。

クレジット

Unsplash の Kati Hoehl による写真


プログラムの最も重要な特性は、ユーザーの意図を達成できるかどうかです。

C.A.R.ホア


この記事は CodeSmell シリーズの一部です。

以上がコードの匂い - 低レベルの追加の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

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

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? 中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? Apr 02, 2025 am 07:15 AM

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

あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? Apr 01, 2025 pm 11:15 PM

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

uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? Apr 01, 2025 pm 10:51 PM

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

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? Apr 02, 2025 am 07:18 AM

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

Investing.comの反クローラーメカニズムをバイパスするニュースデータを取得する方法は? Investing.comの反クローラーメカニズムをバイパスするニュースデータを取得する方法は? Apr 02, 2025 am 07:03 AM

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

See all articles