1

すでにいくつかのアプリケーションを本番環境に持っているクライアントがいます。したがって、この次のプロジェクトの本番環境をどのようにするかについて、すでにいくつかの決定を下しています。

  • Sun iPlanet 6.1 SP7 (Apache 付き)
  • JDK1.6
  • Oracle ウェブロジック 10 MP3
  • オラクル10g
  • 1024 ビット SSL

また、Web アプリの企業標準もいくつかあります。

  • トムキャット
  • 支柱
  • Safari、Firefox、IE6、IE7 との互換性

また、このアプリは完全な Java EE 5 環境 (おそらく Web コンテナーのみ) を必要としない可能性が高いが、クライアント EJB などを介して別の Weblogic インスタンスでホストされているものと通信し、さまざまな Web を実行する必要があるとのことです。他の企業サービスへのサービス呼び出し。

私は、この新しいチームの開発およびテスト環境がどのようになるかについていくつかの決定を下すタスクを与えられています (小規模で、おそらく私を含めて 2 人か 3 人ですが、今後数か月で拡大する可能性があります)。私は、人々が好きな IDE を使用し、localhost で優れた開発経験を持ちながら、テスト環境での展開、そして再び運用環境へのスムーズなパスを持っているものを作成したいと考えています。私の考えでは、ローカル ワークステーションでは http は問題ありませんが、統合テスト サーバーは実稼働サーバーとまったく同じように見える必要があり、すべてのトラフィックは https である必要があります。

開発者のローカル ワークステーションは非常に多様であり、ローカル ワークステーションで Mac OS X 10.6 (Snow Leopard) または Windows 7 を実行している可能性があることを知っていますが、共通のテスト サーバーも仕様を定める必要があります。ローカルでの開発からテストを経て、本番環境へとスムーズに移行できるでしょうか?

編集: 申し訳ありませんが、テクノロジ スタックと言うときは、Ant + JBoss + Tomcat + Oracle XE と Maven + Geronimo + Derby などを意味します。基本的に、各開発マシンにインストールする必要がある具体的な仕様の実装のリストと、柔軟な開発環境を提供し、テスト環境と本番環境へのスムーズな移行を可能にするテスト サーバーです。

EDIT2:このアプリは、情報を保持する必要がある場合(私はそうなると思います)、それが何であれ、間違いなく複雑ではないことに言及する価値があります. おそらく、それは初歩的な製品データベースに似たものになるでしょう。

4

3 に答える 3

4

私は行きます:

  1. 毎晩のビルド (またはすべてのチェックイン) 用のHudson
  2. ソース管理用のMercurialまたはSubversion (Windows と Mac の両方でうまく機能します)
  3. 春、春、春。はい、私は真剣です。Spring は依存性注入だけでなく、多くの問題を解決します。セキュリティ、バッチ処理、トランザクション処理、システム統合など。
  4. ORM用のEclipseLink 。多くの高度な機能 (Hibernate にはない) が私を救ってくれました (適切なストアド プロシージャのサポートなど)。
  5. Jetty、TomcatResinなどの軽量コンテナ。GeronimoJBossのような重く遅いものを使用すると、チームサイドを犯すことになります。
  6. マージ/差分ツール用のDeltaWalker (これもすべてのプラットフォームで動作します)。
  7. 高度なデータベース機能を使用する場合は、OracleXE (およびSQLDeveloper ) を使用してください。どちらも素敵なツールです。そうでない場合は、 H2Derbyのような軽いもので問題ありません。
  8. 単体テスト/モック用のJUnit (またはTestNG)およびMockito 。
  9. Strutsは使用しないでください。真剣に、少なくともStruts2 か、できればJSF2 、Stripes、またはGWTのようなものを使用してください。
  10. JTrac、RedMineFogBugzなどのまともなバグトラッカー
  11. 統合テスト用のSelenium
  12. コード品質のソナー

異なる IDE を使用する場合は、各 IDE を pom.xml から構成できるため、Mavenを使用することをお勧めします (IntelliJ/NetBeans でうまく機能します)。しかし、私があなたにできる最善のアドバイスはこれです。

  • すでに知っていて、経験があるものを使用してください。一晩で Struts から JSF2 に移行することはありません。
  • 入手できる最高のツールを入手してください。真剣に無料のものは、常に進むべき道とは限りません (そうである場合が多いですが)。

楽しいハッキング

于 2009-12-16T16:58:41.040 に答える
1

「テクノロジースタック」と言うとき、正確に何について尋ねているのかはっきりしていません.サーバー、ライブラリ、ビルドツールを意味しますか? とにかく、ここにいくつかの軽薄な推奨事項があります:

  • 継続的インテグレーションのための Hudson
  • 本当に本当に必要な場合を除き、maven は避けてください。宣言的な依存関係と構成上の慣習を約束して、サイレンのようにあなたを誘惑しますが、その実践は理論とは大きく異なります
  • 標準の Java SE/Java EE API よりも、可能な限り Spring を使用してください。単純な API に加えて、AspectJ を直接操作するよりもはるかに簡単なテスト容易性と AOP 機能も促進します。もちろん、疎結合をサポートする依存性注入も提供します
  • ORM の Hibernate、または永続性の要件が非常に単純な場合は、Spring-JDBC で十分な場合があります
于 2009-12-16T15:11:05.203 に答える
0

テスト環境は本番環境を正確に再現する必要があります。また、テスト環境でパフォーマンス テストを行います。ハードウェアに問題があり、クラスタ内のサーバーの数を制限する必要がある場合は、テストで作成するサーバーの数を減らしますが、本番環境と同じ環境をレプリケートします。つまり、iplanet (Apache) ) + weblogic + oracle dbなど....

ローカル環境に関する限り、Tomcat を使用でき (Web コンテナーのみが必要なため)、ejb クライアントの場合は、jar をバンドルしてリモート呼び出しを行うことができます (リモート アプリへのリモート呼び出しを行う場合)。ローカル ejbs を介してローカル呼び出しを行っている場合は、ローカル ボックスでの開発で weblogic を使用する必要があります。

同じ IDE を使用するようにしてください (ほとんどは開発者の選択の問題ですが)。OS に関する限り、互換性のある IDE を使用している場合はそれのみからコードをビルドすることになるため、問題はありません。

また、デバッグ モードでコードを実行できるように、IDE が tomcat (使用している場合) または weblogic と密接に結合していることを確認してください。

非常に重要なことの 1 つは、最初にコード構造を決定し、それをバージョン管理でチェックインすることです。これにより、ユーザーはどの側からでも同じ構造でチェックイン/チェックアウトできるようになります。そのため、同じ構造がすべての開発者間で共有されます。リリースごとに cvs またはバージョン管理でコードを分岐し、head からチェックアウトします。また、単一のビルド ファイルを使用し、ローカル ボックスで環境を構築するためのセットアップ ドキュメントを維持することも非常に重要です。また、使用するフレームワークに関しては、コーディングとメンテナンスで最も快適なものを選択してください。そうすることで、コード内のバグの数を減らすことができます。最近ではほとんどの人が Spring/Hibernate の組み合わせを使用していますが、それがプロジェクトに適しているかどうかによって異なります。お役に立てれば。

于 2009-12-16T15:07:12.757 に答える