問題タブ [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 投票する
4 に答える
480 参照

css - CSS 子の幅 100% または px の質問

単純な質問で簡単に答えられるかもしれません。

今日、子が親とまったく同じ幅になる場合、px または 100% での子の幅の違いは何だろうと思いました。結果は私が知っているものと同じですが、何を使用するのが最適ですか?

例;

それは問題ですか?そして、あなたはどれを使いますか?

0 投票する
7 に答える
7725 参照

architecture - 保守可能なイベント ドリブン コードの記述

私はつい最近、かなり標準的なオブジェクト指向の考え方から、イベント駆動型アーキテクチャを使い始めました。

私が最初に気付いたのは、プログラムの理解とトレースの難しさが、プログラムのサイズに応じて指数関数的に増加しているように見えるということでした。小さなペットのプロジェクトは簡単にフォローできますが、コードはすぐにスパゲッティに変わるように感じます.

私はこの開発の考え方に不慣れであり、オブジェクト指向の懸念のすべてが引き継がれるわけではないことを理解しています. 保守可能で理解しやすいイベント駆動型コードを作成するためのリソースはありますか? node.js や Twisted、Event Machine を使っている人はこれについてどうしていますか?

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

django - django はクリーンなデータベースを作成しますか?

学校でデータベース用の Web インターフェイスを構築しています。データベースには、当校のバージョンの学業基準が保持されます。

django を使用してサイトを構築すると、クリーンなデータベースが作成されますか? たとえば、dreamweaver などの wysiwyg Web サイト ビルダーは、バックエンドで醜い html および css コードを作成します。私のデータベースに同程度の自動生成されたクラフトが見られるのは嫌です。

データベースを自分で作成してから、django サイトを構築してデータベースにアクセスするか、django にデータベースを作成させるべきですか?

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

c# - このコードを整理するにはどうすればよいですか?

myThread は毎秒実行される関数です。基本的には、解析して実行する必要があるデータを読み取ります。関数は大きくなり、以下のサンプルのように 1500 行を超えるコードになり、多くの [if else if else] ブロックがあり、コマンドをコンソールに送信するための sleep や SendToChat のような繰り返しが多く、維持するのが非常に困難です。 、変更などを行います。

これをどのように書き直すことができるかについて、いくつかのアドバイスが必要です (可能であればコード例を使用すると、レイアウトを理解するのに役立ちます)。保守性と可読性?

また、間違っている他のことを改善するのに役立つので、機能やその他のことについて自由にコメントしてください。

これはコードのサンプルであり、コード全体ではありません。コードから他の情報が必要な場合は、お気軽にお問い合わせください。でき次第投稿します。

PS: これは IRC のものではありません。

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

linq - LINQ クエリを拡張メソッドに抽象化しますか

現在のプロジェクトでは、コード メトリクスの「保守性インデックス」と「サイクロメティック複雑度」の目標を設定しました。保守性指数は 60 以上で、循環的複雑度は 25 以下である必要があります。保守性指数 60 以上はかなり高い値であることがわかっています。

また、エンティティをフィルタリング/グループ化/選択するために多くの linq を使用します。これらの linq クエリは、Maintainability Index でそれほど高く評価されていないことがわかりました。このクエリを拡張メソッドに抽象化することで、より高い保守性インデックスが得られます。これは良いことです。しかし、ほとんどの場合、拡張メソッドはもはやジェネリックではありません。これは、ジェネリック型の代わりに自分の型で拡張メソッドを使用するためです。

たとえば、次の linq-query と拡張メソッドの比較:

Linq クエリ

延長方法:

拡張メソッドにより、Maintainability Index が 6 ポイント向上し、流暢な構文が得られます。一方、静的クラスを追加する必要がありますが、それは一般的ではありません。

どのようなアプローチが有利になるかについてのアイデアはありますか? または、linq クエリをリファクタリングして保守性インデックスを改善する方法について、別のアイデアをお持ちですか?

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

java - アプリケーションのサポートを容易にするためのガイドライン/アイデア

良質のソフトウェアを書くことが最初のステップです。今のところ、それは一種の動く目標です。( https://stackoverflow.com/questions/3716203/automatic-code-quality-and-architecture-quality-static-code-analysisに沿っていくつかのことがあります。一部の一部の顧客と同様の回帰テストスイートとテスト環境があります。)何をするにしても、顧客だけがクラッシュ/エラーを確認して取得する場合があります。パフォーマンスの問題がある場合もあります。クラッシュすることもあれば、アプリケーションオブジェクトモデルエラーになることもあります。

一般的に、どうすれば痛みを軽減できますか?このような状況からほとんどの(データ)を取得するにはどうすればよいですか?問題が1回目と2回目に発生したときに、より多くの情報を取得するのに役立つコーディング/アーキテクチャの手順はどのようなものですか?

出発点は次のとおりです。

良好なロギング: log4jが開始点です。ユーザーはファイルを簡単に変更できるはずです。そのようなファイルを編集するための小さなGUIを提供することはさらに良いでしょう。(私たちのログ設定は、Windows 7のc:/ Program Files /領域にありました。通常のユーザーにとって簡単ではない編集-魔法の「管理者として実行」オプションが必要です。)

ヒープダンプ:メモリ不足が発生したときにヒープをダンプします。

エラーレポートの自動送信: Firefox、intellijなどが良い例です。このための既製のライブラリがあるかどうかはわかりません。

JMX:サーバーアプリケーションの場合、これは非常に便利なようです。私はそれを使ったことがありません。

システム要件を検出するためのツール: 私はまだそれをしていません。

自動的にアップグレードする機能:

私たちのものは主にサーバーと相互作用するJavaデスクトップアプリケーションです。希望の品質が得られるまで、採用できるステップは他にもあると思います:)

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

android - Android パターン: すべてのアイテムが異なるアクティビティを起動するスピナー

ほとんどすべての要素がオプションである複雑なフォームを作成しようとしています。単一のフィールドと「要素の追加」ボタンから始まります。[追加] をクリックすると、フォームにSpinner追加できる要素の種類 (場所、写真、詳細なメモ、「今」以外のタイムスタンプなど) がフォームに表示されます。アイテムを選択すると が起動しActivity、各アイテムには異なるが関連付けられていActivityます。

さらに、各選択肢にはいくつかのデータ ビットが含まれますActivity

  • のアイコンと表示名Spinner
  • データベースにデータを格納するためのキー (および Web サービスに渡すため)
  • 結果を元のフォームに表示する方法のレイアウト (つまり、写真のサムネイル、場所の緯度/経度など)

私は、すべてが抽象FormElementクラスを拡張し、上記の余分なデータのそれぞれに静的要素を持つ一連のクラスを検討していました。(このソリューションの追加のバンプはResources、静的なコンテキストでの苦痛の程度です。)

これを可能な限りクリーンで保守しやすくするにはどうすればよいですか? このフォームに新しいタイプの要素を追加するために 5 つの異なるファイルを編集するのは本当に好きではありません。(主に、1 つを見逃して、バグのないものを追跡するのに何時間も費やすことを保証できるためです。)

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

c++ - どちらのキャスト スタイルが優れているか、またその理由は?

derivedC++ で、一方が名前付きで、もう一方baseが最初の基本クラスである名前付きの2 つのクラスを想像してみてください。次のコードがある場合は、これが推奨されます。

また

言い換えれば、constコンパイラが constness に昇格できるので、不要な場合は static キャストで除外する方が良いですか、それとも将来より簡単にb作成できるように制限を緩めるために含める方が良いですか?const

0 投票する
6 に答える
28817 参照

php - MySQL と PHP で計算を行う

環境:

  • PHP/MySQL アプリケーションがあります。
  • 計算の一部は SQL で直接実行されます。例: 過去 24 時間に作成されたすべてのユーザーは、SQL クエリ ( NOW() – 1 日) を介して返されます。

仲間の開発者と私の間で議論が行われており、私は次のようにすべきだと意見を持っています:

A. すべての計算 / コード / ロジックを PHP に保持し、MySQL を情報の「ダム」リポジトリとして扱う

彼の意見:

B. どちらが簡単か、またはどちらが速いかに応じて、組み合わせを行います。http://www.onextrapixel.com/2010/06/23/mysql-has-functions-part-5-php-vs-mysql-performance/

私は保守性の観点から見ています。彼は速度に注目しています (記事で指摘されているように、一部の操作は MySQL の方が高速です)。


@bob-the-destroyer @tekretic @OMG Ponies @mu は短すぎる @Tudor Constantin @tandu @Harley

効率的な WHERE 句は SQL レベルに属することに (そしてまったく明白に) 同意します。ただし、次のような例はどうでしょうか。

  1. SQL で NOW() - 1 日を使用して 24 期間を計算し、過去 24 時間に作成されたすべてのユーザーを選択しますか?
  2. すべてのユーザーの姓と名を大文字で返す
  3. 文字列を連結しますか?
  4. (考え、皆さん?)

SQL ドメインに属する明確な例:

  1. 特定の WHERE 選択
  2. ネストされた SQL ステートメント
  3. 注文・並び替え
  4. DISTINCT アイテムの選択
  5. 行/アイテムのカウント
0 投票する
6 に答える
5452 参照

c# - InvalidEnumArgumentException でコードを維持するにはどうすればよいですか?

をスローしたら、コードをどのように維持するのか興味がありますSystem.ComponentModel.InvalidEnumArgumentException

基本的に、次のような switch ステートメントがあります。

将来、さらに値を追加することにした場合はどうすればよいでしょうか?MyEnumたとえば、Value3and Value4? それは、誤解を招く例外をスローしてしまうことを意味します。どうすればこれを防ぐことができますか?

投げる前に反射を使用する必要がありますか? この場合、どの例外をスローする必要がありますか? 提案を探しています。


数分前にこの例外を発見したので、間違った文脈でこれを見ているのかもしれません。この例外は、特定の列挙型引数がサポートされていない場合 (サポートされていない場合) にスローされValue3ますValue4か?