問題タブ [refactoring]

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 投票する
14 に答える
72244 参照

c# - メソッドは静的にすることができますが、そうすべきですか?

ReSharper は、静的にすることができる ASP.NET ページごとに複数の関数を指摘するのが好きです。それらを静的にすると役立ちますか?それらを静的にしてユーティリティクラスに移動する必要がありますか?

0 投票する
9 に答える
56526 参照

visual-studio - Visual Studio:「クラスを別の名前空間に移動する」リファクタリングはありますか?

一連のクラスを別のプロジェクトや名前空間に移動することを含む、アーキテクチャのクリーンアップを行っています。現在、ファイルを手動で移動し、ビルドしてから、必要に応じてFooステートメントを使用して手動で追加し、コンパイルエラーを解決しています。これを行うためのよりスマートな方法を知っている人はいますか?(私たちはCodeRush and Refactor!ショップですが、Resharperがこれをサポートしているかどうか知りたいです)

0 投票する
11 に答える
20067 参照

c - C でビルド時に式をアサートする方法

ハードウェア レジスタを設定するためにあちこちで「マジック ナンバー」を使用している古いコードを整理しています。これらの数値の代わりに定数を使用して、コードをより表現力豊かなものにしたいと考えています (実際、それらは名前にマップされます)。 /レジスタを文書化するために使用される値)。

ただし、変更の量が多くなると、マジック ナンバーが壊れてしまうのではないかと心配しています。簡単な例を次に示します (レジスタ セットはより複雑です)。

代わりに:

我々は持っています:

私が探しているのは、次のビルド時バージョンです。

アップデート

@クリスチャン、迅速な対応に感謝します。これはドライバー/カーネルコードであるため、C /非ブースト環境の回答にも興味があります。

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

java - Java コードでパッケージ名前空間の競合を見つけるためのツール

同じまたは類似のパッケージ名を使用するプロジェクトが多数あります。多くの、またはこれらのプロジェクトは、他のプロジェクトで使用される jar ファイルを構築します。foo.util foo.db および foo.exceptions で、同じクラス名が使用されているために名前空間の競合が発生していることが多数発見されました。

Javaコードベースのセットを検索し、名前空間の競合とあいまいなインポートを自動的に見つけるツールを知っている人はいますか?

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

model-view-controller - アプリケーションのリファクタリング

MVC アプリケーションを修正して安定させる必要がある場合、モデル、コントローラー、またはビューのどこから始めますか? 問題はアプリケーション全体に均等に広がっており、機能を追加するのが困難な不適切なプログラミング プラクティスがあります。それが違いを生む場合、アプリケーションはPHPで書かれています。

0 投票する
5 に答える
4497 参照

python - Python、単体テスト、インポートのモック

私は、大規模なコード ベースのリファクタリングを開始するプロジェクトに参加しています。すぐに発生した問題の 1 つは、各ファイルが他の多くのファイルをインポートすることです。単体テストの作成を開始できるように、実際のコードを変更することなく、単体テストでこれをエレガントな方法でモックするにはどうすればよいですか?

例として: テストしたい関数を含むファイルは、Python コア ライブラリではなく、ソフトウェアの一部である他の 10 個のファイルをインポートします。

単体テストをできるだけ個別に実行できるようにしたいので、今のところ、インポートされているファイルの内容に依存しない関数のみをテストします。

すべての答えをありがとう。

最初は自分が何をしたいのかよくわかっていなかったのですが、今ではわかっていると思います。

問題は、サードパーティの自動魔法のために、アプリケーション全体が実行されている場合にのみ一部のインポートが可能だったことです。そのため、これらのモジュールのスタブを、sys.path で指定したディレクトリに作成する必要がありました。

これで、テストを書きたい関数を含むファイルを単体テスト ファイルにインポートできるようになりました。モジュールが見つからないという不満はありません。

0 投票する
14 に答える
858 参照

unit-testing - 事実上 *NO* 単体テスト コードを含む大規模な (そして汚れた) コードベースにいくつかの新機能を追加しようとしているとき、あなたはどうしますか?

Martin Fowlerは、新しい機能を追加する前にリファクタリングを行うべきだと言っています (元のプログラムが適切に構成されていない場合)。

したがって、私たちは皆、この汚れたコードベースをリファクタリングしたいと考えています。それは確かです。また、コードの単体テストを行わないと、微妙なバグが非常に簡単に発生することもわかっています。

しかし、それは大きなコードベースです。これに完全なテスト スイートを追加するのは現実的ではないようです。

この場合、あなたはどうしますか?

0 投票する
1 に答える
1284 参照

xml - XSD スキーマのリファクタリング

私はいくつかのサードパーティの XSD スキーマをクリーンアップする必要があるプロジェクトに取り組んでおり、それらの共通要素のリファクタリングを行いたいと考えています。

これを自動化する適切なツールはありますか? XMLBeans の sfactor で試しましたが、うまくいきません (Google でさえ答えられない奇妙な例外がスローされます!)。

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

design-patterns - ActiveRecord から DataMapper へのリファクタリング

ActiveRecordからDataMapperパターンにリファクタリングしましたか? 切り替えのきっかけは?私は主に Web ベースのアプリケーションに興味がありますが、どのような環境でもそのような動きに伴う課題を知りたいと思っています。

0 投票する
4 に答える
475 参照

vb.net - 多くの引数を取る関数をリファクタリングする方法は?

入力として文字列のみを除外する COM オブジェクトのラッパーを作成したため、OOP の適切な実践として、ビルドと呼び出しが簡単になるように文字列を関数にラップしました。

誰かが次のコードを実行するためのより良い方法を考えられるかどうか疑問に思っていました.

関数が取らなければならない引数の量は、私の最大の心配事です。これはそれほど悪くはありませんが、将来もっと多くの引数を取る必要がある他の関数がいくつかあるので、主に大きな引数関数を構築するためのより良い方法を探しています.