問題タブ [code-duplication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
3044 参照

duplicates - 重複コード: ツールを使用して見つけて削除する方法

私は PHP プロジェクトに取り組んでいる 3 人のインターンのグループを管理しています。彼らはリファクタリングが苦手なようで、複数の場所で重複したコードを使用しています。この重複コードを見つけて表示できるツールを探しています。

これにより、私の仕事がより簡単になり、プロジェクトがよりエレガントになり、エラーが発生しにくくなります。手がかりはありますか?

0 投票する
2 に答える
419 参照

c# - JavaScript と C# でロジックの重複を避ける

ユーザーが文字列をオブジェクトのプロパティにマップできるようにするウィザードを作成しています。これは、ユーザーが選択して引数を指定するいくつかの事前定義されたルールを使用して行われます。これらのルールのコレクションはデータベースに保存され、後でサービス呼び出しを介して実行されます。

問題は、ウィザードで、ユーザーがルールを選択して引数を入力すると、いくつかのサンプル テキストを強調表示して更新することです。これは JavaScript を使用して行われるため、明らかに C# ルール内に含まれるロジックが複製されます。

だから私はこれを回避する方法を探しています。

ルールは非常に単純で、適用する引数のリストと、入力文字列を受け取って結果を返す単一のメソッドが含まれているだけです。

0 投票する
2 に答える
243 参照

java - これらのラッパー メソッドをリファクタリングして、重複したコードを取り除くにはどうすればよいですか?

次の 2 つの方法は、Google Gson を使用して逆シリアル化をラップするために使用されます。

それらはほとんど同じですが、重複したコードを取り除くスマートな方法がわかりません。

助言がありますか?

0 投票する
3 に答える
1439 参照

c# - c#のリファクタリング:更新するプロパティがそれぞれ異なる場合に重複したコードを削除する方法

プロトタイプをしばらくハッキングした後、オブジェクトのブールフラグを更新してからインターフェイスを更新し、新しい値に基づいて処理を行うメソッドがいくつかありました。これらはほとんど同じですが、更新する値は異なります

たとえば、更新する色付きのボックスがたくさんあると想像してください。次のようなメソッドがあるかもしれません。

さて、明らかに-そのほとんどが繰り返されます-これは私が何かを変えるようになると苦痛です。特に、2つではなく、20の異なるボックスの色になってしまった場合は!

変更されたコードを取り除き、より一般的な方法で同じものを収集する方法があるはずだと思っていましたが、それを行う方法を理解するのに苦労しています。

私は閉鎖について聞いたことがありますが、彼らがここで役立つかどうかを知るのに十分なほど頭を抱えていません。

次のことが正しい行にある可能性があると考えていましたが、ジェネリックメソッドにどのプロパティを操作するかを指示する方法がわかりません- [更新するプロジェクト変数]

この種のものをどのように処理するかについてのポインタは役に立ちます:)

0 投票する
2 に答える
344 参照

html - HTMLを複製せずに目次スタイルのFAQWebページを作成する

私はサイトにFAQページを作成しようとしています。すべての質問は、目次のようにまとめられています(たとえば、ウィキペディアのように)。質問をクリックすると、ページを下に移動して、回答とともに質問(上から繰り返します)に移動します。

質問はページに2回表示されるため、これを明白な方法で行うと、質問がコードに2回表示され、質問を変更する必要があり、更新する人が1か所でコードを変更するだけの場合に問題が発生する可能性があります。 。

また、各質問/回答のペアの前に意味のない名前のアンカータグを付けるのは、一種の非論理的なようです。数字が使用されている場合、質問が追加または削除されたときにこれも問題になる可能性があります。

基本的に、質問と回答を配列(PHPまたはjavascriptを使用しますか?)または配列のペアに格納し、配列の各要素に対して、生成されたアンカータグを含むリストアイテムを配置する方法があることを望んでいると思います。質問とその答え。これは実行可能ですか、それとも私はここでWeb開発に間違ったアプローチを取っているだけですか?

関連する副次的な質問:箇条書きを「Q:」に置き換えるために順序付けされていないリストのスタイルを設定する方法はありますか?

0 投票する
3 に答える
194 参照

php - JavascriptとPHPの両方で数式が重複しないようにするにはどうすればよいですか?

私は現在、HTML5/JavascriptとPHPでWebアプリケーションを作成しています。

会社の一部の従業員は、仕事のスケジュールを入力するためにそれを使用する必要があります。アプリケーションは、(Javascriptを使用して)リアルタイムでいくつかの複雑な法的情報を計算し、ページの下部に結果を表示します。完了したら、ユーザーは[保存]ボタンをクリックすると、すべてがデータベースに送信されます。

問題は、ユーザーがリアルタイムで出力を確認し、マネージャーがデータベースに保存されたものから同じ出力を取得する必要があることです。また、ユーザーがJavascriptを無効にしている場合もサポートする必要があります。言い換えれば、JavascriptとPHPの両方で同じ計算を行う必要があります。

もっと複雑にするために、式は非常に複雑で、頻繁に(毎月かそこらで)変更されるので、2つの異なるバージョンを維持することは避けたいと思います。1つをテストすることはすでに十分に難しいでしょう。

また、次の理由から、AJAXがサーバーに出力を要求することを避けたいと思います。

  • ユーザーはリアルタイムの計算結果に基づいてスケジュールを作成することが多いため、1〜2秒の遅れでも本当に迷惑になる可能性があります。
  • 可能であれば、HTML5のオフライン機能をサポートする必要があります。これにより、ユーザーはアプリを携帯電話にロードし、オフラインでスケジュールを入力して、オンラインでアップロードできるようになります。

今のところ、私が見つけた唯一の解決策は、言語に依存しない方法で数式を記述し、それを何らかの方法でPHPコードとJavaScriptコードに変換することですが、それは簡単ではありません。

0 投票する
3 に答える
136 参照

c# - 他のメソッドの戻り値に依存するメソッドから重複コードを削除する

コントローラークラスのASP.NET MVCアプリケーションには、メソッドがあります

このメソッドには、さまざまなコントローラーのさまざまなアクションからの共通ロジックが含まれています。このメソッドを保持し、そこから他のコントローラーを派生させるコントローラーの基本クラスを作成することにしました。しかし、問題は、派生クラス アクションからこのメソッドを呼び出すときに、null でないかどうかを確認してから、たとえば結果を返す必要があることです。

他のアクションでは、結果がnullでないかどうかを再度確認する必要があります

そして、重複コードを避けたいのですが、誰かが例やアドバイスを手伝ってくれますか? メソッド VerifySanction() による検証に合格しない場合は何もしません。それ以外の場合はアクション結果を返します。

アクションを更新すると、このようになります

前もって感謝します

0 投票する
0 に答える
482 参照

c# - 複数の名前空間と部分クラス間でのコードの複製

LinqToXSDを使用して、クライアントのXSDに基づいてドキュメントモデル(コード)を生成しています。これらのXSDは、ドキュメントモデルを生成するたびに共通の構造を共有するため、一部のオブジェクトが複製されます。コンパイルの問題を防ぐために、各ドキュメントモデルを独自の名前空間に配置しました。これはうまくいきました。

しかし、ここで、パブリック部分クラスであるこれらのオブジェクトを使用して、カスタム検証を実行したいと思います。そこでIValidate、単一のValidate()メソッドでインターフェースを定義しました。これで、複数のオブジェクトモデルで生成された低レベルのオブジェクトがありますが、それぞれが異なる名前空間にあります。

次に、すべてのfooクラスにIValidateインターフェイスとメソッドを追加する単一の部分クラスファイルを作成します。Validate()ただし、実際には異なるオブジェクトであるため、もちろんこれは機能しません。生成されたコードとコードの生成に使用されたXSDライブラリのために、これらがたくさんあります。

内部をシャドウすることができれば(上記の「......」を読んでください)、これは機能します。私は異なる名前空間に多くのfooを持っています(そして私はそれぞれ同じ問題を持つfoo1からfoo100を持っています)。私はコードを複製する必要があります、私はそれがノーノーであることを知っています、そして私はそれをする必要はありません。しかし、そうする場合、少なくとも同じコードのコピーをそれほど多く維持する必要はありません。

これはダイナミクスで実行できるとかなり確信していますが、そこに行く必要はありません。

誰かがこれらの検証メソッドを記述し、各namespace.classの部分クラスに手動でコピーする必要がない他の方法を提案できますか?