問題タブ [maintainability]

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

wpf - WPF:スタイルを使用して、2 つの異なるシナリオのユーザー コントロールをフォーマットできますか?

アプリケーションの 2 つの異なる場所 (モーダル ダイアログ ボックスとしての場所と別のメニューに埋め込まれた場所) に、似たようなダイアログを表示する必要があります。

WPF についての私の限られた理解からすると、Styles を使用すると、単一の UserControl を記述し、両方のシナリオでその色とフォントをカスタマイズできるように見えます。ただし、変更はもう少し広範囲で、要素の位置の一部 (TextBox など) の相対的な位置が異なります。

これが Styles でできるかどうか、または WPF でこれを行うためのより適切な方法があるかどうかはわかりません。最悪の場合、まったく異なる UserControl を 2 つ書くこともできますが、それは保守性が非常に悪いので避けたいと考えています。

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

makefile - 更新しやすいmakefileを作成するにはどうすればよいですか?

私のmakefileは次のようになります。

プロジェクトにさらにターゲットが追加された場合(そうでない場合)、開発者は少なくとも3つのことを更新する必要があります。

  1. 新しいターゲットのオブジェクトファイルのリスト
  2. すべてのオブジェクトファイルのリスト
  3. 他のターゲットと同じルールを使用している場合でも、新しいターゲットを作成するためのターゲット

このプロセスを簡素化する方法はありますか、それとも私はそれに固執していますか?

ワイルドカードルールを使用してみましたが、マクロで機能するようには見えません。

オブジェクトファイルのリストをルールとして扱うことはできますが、最終的なターゲットルールはそれらに直接アクセスできません。

これ以上の方法はありませんか?

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

wpf - WPF でのコンテキスト メニューの継承

さまざまな項目タイプを含む TreeView があります。アイテム スタイルは、カスタム ItemContainerStyleSelector プロパティで定義されます。

私のスタイルはすべて基本スタイルを共有しており、アイテム固有のものだけが各スタイルで定義されています。次のようになります。

コンテキストメニューは次のように定義されています

別のコンテキスト メニューにも、削除などの一般的な項目が含まれている必要があります。コマンドのプロパティなどが変更されるたびに、これらをコピーして貼り付ける必要があります。保守性の地獄。共通項目を含むコンテキスト メニューを定義し、特定のコンテキスト メニューを「派生」させる方法はありますか?

編集: このスレッドのヒントを使用して解決策を見つけました: 共通項目でコレクションを定義し、メニューを定義するときに複合コレクションを使用して、新しい項目と共通項目コレクションの両方を含めます

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

plugins - 相違点をコード ファイルにスキャンするプログラムはありますか?

2 つのコード ファイルをスキャンして比較し、それらの違いを表示するプログラムはありますか。定期的に更新されるプラグインを使用して Web サイトを構築しているため、このようなシステムが必要ですが、クライアントが望む機能の一部を提供するためにプラグインを編集する必要があります。サーバーにアップロードして更新する前に、プラグイン内のファイルに変更を加えるのにかかる時間を短縮したいだけです。

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

c - ネストされたデータ構造の一部を一時変数に格納する場合 (しない場合) -- かなり/醜い、速い/遅い?

1 つ以上の親配列/構造体/共用体にネストされている 1 つの配列/構造体/共用体で複数の数値/文字列を読み取る最良の方法は何ですか?

一時変数のない最初の例:

一時変数を使用した最初の例:

上記の最初の例の一時変数は非常にばかげていると思いますが、下の 2 番目の例では意味があり、1 つを使用した方がよさそうですよね?

一時変数のない 2 番目の例:

一時変数を使用した 2 番目の例:

では、どこに線を引きますか?コンパイラは、この方法で最適な効率のアセンブリを生成するために必要な間接処理を挿入するのに十分スマートであることを認識していますが、(非常にパフォーマンスが重要なコードを想定して) 例外があるのでしょうか? また、コードの明快さ/保守性の観点から、経験則は何ですか?

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

c# - いくつかの異なるタイプのいずれかである可能性があるオブジェクトに基づいて、オーバーロードされたメソッドを呼び出す理想的な方法は何ですか?

私の WPF ビューには、表示目的で単一のインターフェイスを実装するオブジェクトがいくつかあります。いずれかが選択されたら、ビューで選択されたタイプとオプションに基づいて特定のメソッドを呼び出したいと思います。オブジェクトの種類ごとに使用できるオーバーロードが既にあります。一般的な方法を使用しようとしましたが、オブジェクトが違いすぎて使用できないことがわかりました。

保守性を目的として、大きな if ステートメントとの制御結合を回避しようとしています。

単一のインターフェースを使用して間違っていましたか、それともこれを行うための興味深い保守可能な方法はありますか?

IDisplayableObject のコレクションを含むデータグリッドがあります。

今、私は最初の答えとしてキャストしました。

if文は避けたい。この場合、通常はアクションにマップされた辞書を使用しますが、別の方法もあります

そのため、アクションを作成する必要があり、ダッシュをエクスポートまたはシフト列をエクスポートしてから、エクスポートするタイプを決定する必要があります。

コードからわかるように、重複は良いことではなく、できるだけ避けたいと考えています。このアプリケーションの場合、それはそれほど大したことではありませんが、個人的な学習のためです.

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

c - 読みやすく保守しやすい C コードの書き方を学ぶには、どの本や Web サイトを読むべきですか?

重複の可能性:
The Definitive C Book Guide and List
C++ の優れたオープン ソース コード

私は 2 年以上前に C++ を学び始めました。それ以来、他のプログラミング言語の中でも C を学びましたが、C が私のお気に入りです。最近オープンソース プロジェクトを見ていると、自分のコードが見苦しく、ほとんど読めず、拡張可能ではないことにすぐに気付きました。これを変えてほしい。Cでより専門的にプログラミングするのに役立つ本、Webサイト、またはその他のリソースへの参照/リンクは大歓迎です。

ありがとう

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

c# - C# での Equals()、GetHashCode() のオーバーライドを簡素化して保守性を向上

私は自分自身をオーバーライドEquals()GetHashCode()、同一のプロパティ値を持つビジネス オブジェクトが等しいというセマンティックを実装することがよくあります。これにより、コードの記述が反復的になり、保守が脆弱になります (プロパティが追加され、オーバーライドの 1 つまたは両方が更新されません)。

コードは次のようになります (実装に関するコメントは大歓迎です)。

私の質問

  1. 実装パターンは健全ですか?
  2. 寄与するコンポーネントの値が十分に分散されている場合、^ は適切ですか? ハッシュが十分に分散されている場合、コレクション要素を結合するときに 31 対 N を乗算する必要がありますか?
  3. このコードは、リフレクションを使用してパブリック プロパティを決定し、ハンド コーディングされたソリューションと一致する式ツリーを構築し、必要に応じて式ツリーを実行するコードに抽象化できるようです。そのアプローチは合理的に見えますか?どこかに既存の実装はありますか?
0 投票する
3 に答える
875 参照

android - 画像、文字列、整数のセットを管理しやすい形式で組み合わせる方法

そのため、多くのデータ型を組み合わせる最善の方法を見つけようとしています。私のコードの内部で、クラスを作成しています。外部的には、次のタイプのデータ、または少なくともそのデータへのポインターを管理するための単一の場所が必要です。これらのデータには多くのセットがあることに注意してください。時間の経過とともにさらに追加されると予想されます。

編集: かつてここにあったものを大幅に簡素化しています。

コンパイル時に、オブジェクトのリストがあることを想像してください。各オブジェクトにはいくつかの特徴があり、すべてのオブジェクトに共通しています。これらには以下が含まれます:

  • 画像画像
  • いくつかの文字列
  • 整数の配列
  • 文字列の配列

これらすべてをコードの外にまとめて保存する方法を見つけたいと思っています。理想的には、漠然と次のような XML を使用したいと考えています。

画像は現在、リソース変数として保存されています。画像への参照を XML ファイルに入れる方法がわかりません。

より良い解決策が見つかれば、私は XML ファイルのアイデアと結婚していません。私が欲しいのは、この情報にアクセスするためのある種の単一データベースだけです。

新しい更新を送信しない限り、このデータは変更しないでください。これらは実行時に更新する必要はありませんが、ビルド間で時々更新したいと思います.Preferencesについて聞いたことがありますが、うまくいくかもしれませんが、何らかの方法でユーザーが更新できるかどうかはわかりません.

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

c# - 本番プロジェクトのコード メトリクス (C#、Visual Studio) の通常の値

コード メトリクスに関する質問がいくつかあります。特に目標値に関する質問があります。私が探しているのは、実際の制作プロジェクトで「通常の」ものです。多分それは私だけかもしれませんが、私がこれまでに取り組んだプロジェクトは、これらのことを念頭に置いていないので、ReSharper Code Issues または Visual Studio Code Metrics を実行すると、私が最初のプロジェクトのように思えます。そのため、値には常に驚かされます。

私の現在の SharePoint 割り当ての例:

では、問題は、「実際に」どのような値を通常目にするかということです。最適な値とベスト プラクティスはさておき、通常はどのような値が使用されますか?