エンタープライズビジネスアプリケーションの基本要素には何がありますか?失敗 のキーポイントを最小化することにより、安定したインフラストラクチャを提供し、再構築 大規模開発で最も重要なインフラストラクチャコンポーネントは何ですか?
-
:私はに再利用可能なコンポーネント、複数のアプリケーションを共有考えています私は集中/標準化の成功を見てきた概念の
- loggin
- スケジューリング
いくつかの例:
エンタープライズビジネスアプリケーションの基本要素には何がありますか?失敗 のキーポイントを最小化することにより、安定したインフラストラクチャを提供し、再構築 大規模開発で最も重要なインフラストラクチャコンポーネントは何ですか?
いくつかの例:
をキューインググラム
同様に、複数のチームがある時点で一緒に接続するサブシステムで作業する必要がある大規模なプロジェクトでは、同様のサブシステムの設計パターンが非常に重要です。
さらに、一般的なユーティリティが必要なときに行く場所であるライブラリの共通セットを作成する(またはより良いが、さらにはBoostを採用するC++で)方がうまくいきました。
また、サンプルを早めにテストフレームワークを作成します。私はあなたがサブシステムをテストするためのテンプレートを持っているなら、人々がそれを使用することを発見しました。早い段階でテストフレームワークがなければ、開発者テストのすべての極端な状況に遭遇します。インフラ空間で完全に
ない:
これらがないと、同じ顧客に対して一連のアプリケーション開発アクティビティが発生します。
をキューイング
- ログ
- これらはすべて、それらを使用するアプリケーションのニーズに合った棚をオフにする必要があります。例えば。 J2EEで構築されたアプリケーションのロギングソリューションは.NETとは異なります。 (重要なエンタープライズでは、単一カルチャ自体が問題になる可能性があります)
コンポーネントを言うとき、コードコンポーネントまたはインフラストラクチャコンポーネントを意味しますか?私は、コードではなく、インフラストラクチャ(サービスとプロセスをサポートする)が、品質、スピード、および開発の容易さに最大の利益をもたらすと主張します。あなたが与えた例は、現在のほとんどの言語の標準ライブラリにあります。あるいは、非常にアプリケーション/ユースケース固有のものです。私もちょうどバージョン管理を前提とするつもりです
は、すべての開発にそのように一体化しているので、与えられています。
私は最も重要なインフラが継続的ビルド/テストの自動化だろうと思います。これにより、人々は必要なコードを書いてチェックインし、ほかの人と一緒に使えるようにすることができます。
第二に、最も重要な共通ライブラリだろう。これらは、人々がより速く発展し、ルック、フィール、およびデザインのための標準(うまくいけば良い)を確立させる。一般的なライブラリがより多く使用されるにつれて、連続的なビルドの重要性が増します。それらの小さな変更が回帰を引き起こす可能性があるからです。共通ライブラリと
一つの問題は、しかし、彼らはよく設計するために多くの労力がかかるです - ので、再利用価値だ - そしてそれはその時点までにそれらを得るために長い時間がかかります。ほとんどがプロジェクトに固有のものとして始まり、誰かがそれをプロジェクトにハックし、分岐してからコピーして貼り付けます。しばらくして、おそらく誰かがコードを監査し、それらを共通の場所にマージすることになります。共通のライブラリをアップグレードする計画と、その2つのバージョンを一度に持つ方法(またはその場合)。もう一つの隠された欠点は、短期間での開発の迅速化を可能にしますが、人々が古いバージョンにロックされるにつれて、長期的な開発を妨げることです(これは第三者図書館でより真実です)。
第三には、ビルドツールだろう。これは、コードの構築、チェックアウト、検索などを簡単に行うための一般的なツールを意味します。パッチを提出したときにバグをマークすることを自動化したり、依存関係が変更されたことを継続ビルダーに通知したり、テストを提出する前にテストを自動的に実行したりすることができます。
第4位はであり、気密性はで、これはビルドツールの簡単な拡張です。これは、アプリが自己完結型であることを意味します。これには2つのメリットがあります.1)マシンの再利用が容易であり、さらに重要なことに、2)開発者にとっては非常に簡単です。余分なライブラリをインストールしたり、/ etcに変更したり、環境を構築し、実行するだけです。
他のいくつかの私が考えることができます:
を監視