6

おそらく 50% のカスタム機能で構成されるアプリケーションの構築を伴うプロジェクトがいくつかありますが、その後、たとえば wiki、フォーラム、および既に発明されていて、私たちが作成していない「車輪」であるその他のコンポーネントを取り込みます。最初から書き直したい。

これらのサードパーティ アプリケーションには、通常、独自のデータベース、テーマ、および認証システムがあります。私の経験では、シングル サインオンや共通のテーマ、または複数のサブアプリ内のエンティティ間でのタグ付け/検索などを機能させることは、非常に困難な問題です。この種の統合プロジェクトのベスト プラクティスにはどのようなものがありますか?

これまでのところ、私たちのアプローチは慎重にコンポーネントを選択しようとしてきました。できれば HTTP (REST や SOAP など) を介して、明確に定義された API を持つものを選択してください。そのように機能するフォーラム)。私たちの多くは最近ますます頻繁になっていると思うので、これをやろうとしている人に人々が与えることができる提案はありますか?

4

4 に答える 4

1

オープンソースライブラリを使用する場合は、適切なライセンスを持つライブラリを選択してください。私は、多くの企業がLGPLのようなライセンスを敬遠するという困難な方法(アプリケーションをOEMしようとするとき)を発見しました。理由については詳しく説明しませんが、Apache、BSD、またはMITスタイルのライセンスを好みます。

しばらくの間使用されているツールを選択してください。コミュニティをチェックして、アクティブであることを確認してください。他の人が何を使用しているかを確認し、それらのツールを使用します。

一緒にうまく機能するテクノロジーを選びましょう。ORMとWebサービスを使用するアプリケーションをまとめました。Spring Framework + Apache CXF+ORM用のJPAは素晴らしいテクノロジースタックを作成しました。私が使用するすべてのツールは、Springで簡単に結合できるため、簡単に使用できます。あなたがしたい最後のことはあなたがそれらを一緒に使うためだけにたくさんのコードを書かなければならないツールを選ぶことです。

標準に基づいたテクノロジーを選択してください。そうすれば、ライブラリまたはツールが停止した場合でも、同じ標準を使用する別のツールに簡単に切り替えることができます。

于 2008-09-07T23:07:24.350 に答える
1

アプリケーションとサードパーティのアプリケーションまたはライブラリの間のインターフェイスが、万が一の場合に備えて他のものに簡単に置き換えることができるようなものであることを確認してください。場合によっては、サードパーティソフトウェアは単なる標準APIの実装である可能性があります(JavaはJDBC、JMS、JNDIなどでこれを頻繁に行います)。それ以外の場合、これは、作成したAPIでサードパーティライブラリをラップすることを意味します。

もちろん、そのアイデアを窓の外に投げ出し、サードパーティのソフトウェアと緊密に統合することもあります。アプリケーションをそのサードパーティに本当にバインドしたいことを確認してください。この道を進んだら、戻って考えを変えるのは本当に難しいです。

于 2008-09-08T00:17:22.713 に答える
0

私のアプローチは、いくつかのコア機能にサードパーティのコードを使用することでした。たとえば、データアクセスにはSubsonicを使用し、UIにはDevexpressコンポーネントを使用し、データ入力と検証にはPeter Blum DataEntrySuiteを使用しています。Subsonicはオープンソースです。DevexpressPeterBlumのコントロールには、追加料金で利用できるソースコードがあります。これらを自分で作成しようとすると、これらのコントロールの機能を取得することは不可能です。

このアプローチにより、データベースにアクセスする方法や、見栄えのする編集可能なツリーリストを作成する方法を気にすることなく、アプリケーションのカスタム機能に集中できます。完全に構成されて機能するフォーラムはありませんが、アプリにSQLデータベースを使用することはわかっているので、さまざまなデータストレージコンポーネントを連携させる必要はありません。私はwikiを持っていませんが、devexpress uiコンポーネントの使用方法を知っており、データ入力のフォーマットと検証はPeterBlumのコントロールで簡単に行えます。言い換えれば、すべてのプロジェクトの開発をスピードアップするツールを学び(そしてもちろん慎重に選択して)、カスタマイズする必要のあるアプリケーションの部分に集中することができます。

それがオープンソースであるかどうか、またはソースコードが利用可能である限り、私はあまり心配していません。オープンソースの場合は、プロジェクトに寄付します。それが商用コンポーネントである場合、私は公正な価格を支払います。いずれにせよ、ツールはプログラミングを楽しくするのに役立ち、結果はデー​​タの整合性があり、見栄えがします。ウィキやフォーラムを開発すれば、それらをシームレスに連携させることができることを知っています。最後に、私が言及したすべてのツールは長い間使用されており、高い評価を得ている優れた開発者によって作成されています。

于 2008-09-08T01:34:01.533 に答える
0

Donald Knuth 氏は、再利用可能なコードよりも優れているのは変更可能なコードであるため、API がない場合は、適切に記述され、したがってカスタマイズ可能なオープン ソース アプリを探す必要があると述べています。

データベースやログイン システム、その他のプログラミング部分 (たとえば、テーマがどのように役立つかはわかりません) については、状況に応じて、モジュールがそれ自体であると信じているが、実際にはコードと対話するようにラッピングすることもできます。

于 2008-09-07T11:40:22.050 に答える