あまりにも多くのスイッチングシステムがあると思いました

数十スイッチに数を設定することにより、コンフィギュレーションファイルまたはデータベースシステムは、通常は問題ありませんが、このシステムは、それらの間のスイッチと相互依存の数千人を持っている可能性がある場合、および開発者のために、テスターは間違いなく災害であること。コード700万行程度のコード内部のメンテナンスの前に私のシステムでは、まさにこのような災害、スイッチの数千人を装備したコードの内部!このシステムは、これは問題ありません、過去に対処することができ、非常に若かったです。彼らは前方に置くとき、顧客の増加は、より多くの人材要件のニーズに合わせてカスタマイズすると、これらの変更は、通常はゴミではありません。また、これも会社のために良いですが、すべての後に、すべての変更は、お金を計算することであり、もう一つは、顧客への売上高は、あなたが10のサブシステムをトップにすることができ、当社のシステムを表現することができ、より機能豊富な製品のさまざまなニーズによってシステムを保存することがあります。

 

実際にはさまざまな顧客のための私たちのシステムは、異なるスキーマのOracleデータベースの内部を別の顧客の構成として、いくつかの方法をしたい、ユーザーが異なって定義されているスイッチ構成テーブルを、持っている同じテーブル構造異なるスキーマ、データベーステーブル内のスイッチ、別のスイッチの読み取りプログラム。アップグレードやメンテナンスを容易にするため、コードは、コードのセット、貧しいプログラマプラス別のものであれば...他に...コードです。そうすることで、次のような問題が発生します:

  • スイッチは1つのニーズを開くために、クライアントは、クライアントB 1がデフォルトでオフにすることを想定し、開発者は、テスターは2例を検討する必要があります。アップグレード後、顧客Bはアップグレードすることを余儀なくされます。場合、影響を受けたいかなるバグ登場網羅テスト、B無実の顧客はありません。
  • そこには、異なるスイッチ間でお互いに重畳され、テストの数は指数関数的に増加します。開発者にとっては悪夢で、大幅にコードの複雑さを増加させました。
  • 状況が異なっているので、増加のテストコストは、スイッチの組み合わせは、実際の使用には存在しませんが、完全性を保証するために、テスターは1日あなたはまだ条件の組み合わせを使用したい場合は、テストに実際に、シナリオを使用する必要はありません。
  • 新しい顧客、操作を追加し、保守要員は、異なる多数のスイッチを設定する必要があります。誰がそう多くのスイッチの意味は何を知っていましたか?彼らは適切に作業を完了できることを保証することができます一緒に非常に多くのスイッチ?だから、行の前には、我々は再びテストをテストする必要があります。
  • コードは、高結合しました

だから、一見単純な需要を追加し、テストボリュームの実際の開発では、システムを維持するために、そして、より多くの困難な非常に大きいです。

 

技術的なレベルから、次を考えます:

  1. 顧客Aが、問題はこのクライアントのAレベルに限定される問題があるので、場合でも、コードレベルを単離しました。
  2. ...、スイッチは抽象ポリシーモードに置き換えている場合...他のコードが削除されます。

どのように互いによりの面白いから分離されたコードレベル、異なる顧客の実際の要件異なる結合サービスインスタンス。

シンプルなアイデアは、異なる顧客は、コードの異なるバージョンを展開しますが、これはコードの保守、および異なるデータベースライブラリテーブル構造の異なるバージョンの量を増やすためにバインドされていることです。スイッチは、顧客の使用ならば、我々は彼に、単一の展開を与えることができます。

異なるスイッチング負荷に対応する実装クラス、実際に春の考えと一致するコンテナを作成するために右にスイッチ。ときに本物が非常に複雑であり、そしていくつかのケースでさえも不可能。より複雑になっている場合...他にどのような場合には、システムの場合には、我々は破棄されなければならない...文言を。

 

おすすめ

転載: www.cnblogs.com/pmh905001/p/12325720.html