問題タブ [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.
java - ifとif-elseの間にかなりの違いはありますか?
次のコードスニペットを考えると、かなりの違いはありますか?
対。
または、このコードでは、単一出口の原則の方が優れているでしょうか...
目に見えるパフォーマンスの違いはありますか?あるものが他のものより多かれ少なかれ保守可能/読みやすいと思いますか?
maintainability - これらのどれがより良い習慣ですか?
実行する一連の関数があります。ケースA:それらは互いに依存していません。これらのどれが良いですか?
また
ケースB:それらは前の正常な完了に依存します。
また
また
もちろん、より良いということは、より保守しやすく、フォローしやすいことを意味します。
python - 長時間実行されるデータ処理Pythonスクリプトのプログラム構造
私の現在の仕事では、CPUを集中的に使用するデータ処理を行う長時間実行(数時間から数日と考えてください)スクリプトを作成しています。プログラムフローは非常に単純です。メインループに進み、メインループを完了し、出力を保存して終了します。私のプログラムの基本構造は次のようになりがちです。
これはすぐに管理できなくなるので、より管理しやすいものにリファクタリングしたいと思います。実行速度を犠牲にすることなく、これをより保守しやすくしたいと思います。
ただし、コードの各チャックは多数の変数に依存しているため、計算の一部を関数にリファクタリングすると、パラメーターリストがすぐに手に負えなくなります。この種のコードをPythonクラスに入れて、ローカル変数をクラス変数に変更する必要がありますか?プログラムをクラスに変換することは、概念的にはあまり意味がありません。クラスが再利用されることはなく、インスタンスごとに1つのインスタンスしか作成されないためです。
この種のプログラムのベストプラクティスの構造は何ですか?私はPythonを使用していますが、最新のオブジェクト指向言語機能を想定すると、質問は比較的言語に依存しません。
visual-studio - Visual Studio Code Metrics と switch ケースの保守性指標
ベストプラクティスに従うのが好きな人として、
コード メトリクスを実行した場合 (ソリューション エクスプローラーでプロジェクト名を右クリックし、[コード メトリクスの計算] - Visual Studio 2010) を選択します。
それは私に61の保守性指数を与えます
(もちろん、これしかない場合、これは重要ではありませんが、哲学がそのようなことをしているクラスのようなユーティリティを使用する場合、ユーティリティクラスの保守性指数は最悪になります..)
これに対する解決策は何ですか?
python - while ループ内の小さなコードの冗長性 (きれいに感じられない)
したがって、Python では (多くの言語に適用できると思いますが)、次のようなことがよくあります。
the_input = raw_input("what to print?\n")
うるさいのかもしれませんが、行が繰り返される方法が好きではありません。保守性と組織が低下します。しかし、問題をさらに悪化させずに重複コードを回避するための回避策は見当たりません。一部の言語では、次のように記述できます。
これは間違いなくPythonicではなく、Pythonはループ条件内での割り当てさえ許可していません。
この有効なコードは冗長性を修正します。
しかし、どちらかというと気分が良くありません。はwhile 1
、このループが永久に実行されることを意味します。私はループを使用していますが、それに偽の状態を与え、その中に本物を入れています。
私はうるさいですか?これを行うより良い方法はありますか?おそらく、私が知らないこのために設計された言語構造がありますか?
java - Java で保守性指標 (MI) を追跡する
リファクタリングの問題に取り組んでいる進捗状況を顧客に示すために、保守性インデックスと同様のコード メトリックを追跡するための Java 用の高速で信頼性の高い (オープン ソースがプラスになる) ツールが必要です。
適用するためのあなたの提案は何ですか?
winforms - コードの保守性を向上させるためのWinFormsMenuStripの分離
Windowsフォームでは、C#、. NET 3.5、VS2008 .. ..
MenuStrip(または任意の複雑なコントロールグループ)のコードとその子メニュー項目をフォームの他の部分から分離するための良い方法は何ですか?
たとえば、多数のメニューを含むMenuStripがあり、各メニューに多数のメニュー項目があり、すべてにクリックイベントがある場合、Form.Desinger.csファイルとForm.csの両方に大量のコードが吐き出されます。ファイル。これは技術的には問題を引き起こしませんが、(フォーム内の他のすべてのものと一緒に)すべてを1つの場所にダンプするのは間違っていると感じます。
プロジェクト全体でコードメトリクスを実行すると、フォームには、プロジェクトファイルの中で最悪の保守性インデックスがあるというフラグが立てられます。通常、私はコードメトリクスツールの方向性に注意を払うことについてあまり独断的ではありませんが、この場合、私は完全に同意します。
コードメトリクスによると、フォームは次のベストプラクティスに違反しています。
- クラス結合が多すぎます
- コードの行が多すぎます
- 全体的に保守性が低い
MenuStripをフォームの残りの部分から分離するための可能な解決策:
- UserControlに詰め込みます
- 他のアイデア?
c# - ユニットテストとデータベース
ユニットテストに関するこの質問は、私を悩ませている別のことを引き起こしました。データベースにアクセスするときに単体テストを実行する3つの方法を行ったり来たりしました。
- モックオブジェクトを作成してプラグインします。これにはデータベースが不要であるという利点がありますが、時間がかかり、投資収益率がどれだけ得られるかわかりません。私はIOCとmoqに少し慣れてきましたが、それでも苦痛のようです。
- セットアップおよびティアダウンデータベーススクリプトを作成して既知のケースを作成し、それらをテストします。繰り返しになりますが、時間のかかる作業になる可能性がありますが、ほとんどの場合、モックオブジェクトよりも簡単に作成できます。また、ローカルホストにSQLサーバーがあることを前提として、職場の他のユーザーは引き続きそれを実行できます。
- devデータベースを手動でチェックし、単体テストを変更します。集中的に手作業ですが、変わらない「テストセット」があれば大丈夫そうです。私のマシンでは、少なくとも:-)。
オプション1が単体テストを行うための「適切な」方法であることは知っていますが、3つのうち、おそらく私が最も使用しなかったオプションです(ただし、最新のプロジェクトはIOCを使用しているため、ドアが開いています)。私はそれの多くが正確に何が嘲笑され、何がテストされているかに依存することを理解していますが、私はここで何が欠けていますか?
コンテキストが役立つ場合、私はC#ショップにいて、社内アプリケーションを作成していますが、開発者はごくわずかです。
c# - C#とC ++コードの間で定数を共有するにはどうすればよいですか?
1つはC#とWCFを使用し、もう1つはC++とWWSAPIを使用して2つのプロセスを作成しています。2つの間の通信に使用されるアドレスを1つの場所で定義し、C#とC++の両方で使用できるようにしたいと考えています。これは可能ですか?
最も近いのは、IDLで定数を定義し、MIDLとTLBIMPを使用して、C#で使用できるDLLに定数を取り込むことです。しかし、これは定数を公開していないようです、または少なくとも私はそれをそうする方法を理解することができません。多分それは型定義だけに制限されています。
他に何か提案はありますか?
silverlight - HTML5 と Silverlight のコードの保守性をどのように評価しますか?
Web 開発プラットフォームとしての HTML5 と Silverlight の比較は人気のあるトピックであり、多くの場合、議論は HTML5 の準備状況や Silverlight プラグインをインストールするための追加手順に集中します。ただし、そのような問題はないとしましょう。すべてのブラウザーが HTML5 を適切にサポートしており、すべてのブラウザーに Silverlight が組み込まれています。これが誤った仮定であることは承知していますが、別のことに注意を向けるのに役立ちます。このような仮定を立てた場合、.NET 開発チームでリッチ Web クライアントを開発するために何を選択しますか?
重要な要素の 1 つは、コード作成の経験になると思います。きれいなコードを書くのはどれくらい簡単か、それを長期間維持するのはどれだけ簡単か。これについて何か経験はありますか?