2

ここ私の大学では、グラフを視覚化して操作するためのJavaベースのアプリケーションを開発しました。これは、 GUESSに似ていますが、機能が異なります。プロジェクトをホストしているWebサイトはgraphlab.sharif.eduですが、サーバーは現在ダウンしています。とにかく、他のアプリケーションで使用できるように、プログラムを分割して公開することにしました。より正確には、これらの部品を汎用シミュレーションソフトウェアの開発に利用するか、少なくともさまざまなシミュレーションプログラムで使用したいと考えています。

このアプリケーションには、黒板のデザインパターンに基づいた強力なコアがあります。これが最初に抽出される部分です。他の部分には、xmlベースのUIプラットフォーム、基本的なシェルコンソール(beanshellを使用)、およびMATLABとの統合やアニメーションアルゴリズムなどのさまざまな方法でその機能を強化する他のプラグインが含まれます。

私が探しているのは、コアの必要な変更と抽出を適用し始める前のいくつかの提案とコメントです。このアプリケーションの開発は約5〜6年前にさかのぼって以来、たとえばJSONのように今日広く使用されているいくつかのよく知られたテクノロジーを使用していません。また、ユニットテストはありません。それで、あなたがそのようなアプリケーションの開発の経験を持っているなら、あなたは私たちが何をすべきかを提案しますか?どのテクノロジーをどのように使用したほうがよいでしょうか?黒板は本当にそのようなアプリケーションプラットフォームに適したソリューションですか?さまざまな言語の開発者がプロ​​グラムの機能を拡張できるようにするために、JSONをどのように使用する必要があると思いますか?

プロジェクトについてさらに知りたいことがあれば、私に知らせてください、

前もって感謝します

4

1 に答える 1

1

あなたが直面している問題はかなり複雑に思えますので、私はあなたの質問のいくつかの側面に関して提案することしかできません.

私が最初に行うことは、実際にプロジェクト全体をサブモジュールに分割することです (これがまだ行われていないと仮定します)。ほとんどの場合、このプロセス中に不愉快な驚きに遭遇するでしょう (つまり、相互に依存すべきではないものが相互に依存している、補助コードが間違ったサブモジュールに配置されているなど)。また、ビルド ツールを使用してこれらの依存関係を文書化することもお勧めします。

単体テストが欠落している場合、私の経験では、プロジェクトの多くが非常に長い間開発されていた後、賢明な単体テストを書くことは非常に困難です。それらは、開発中に作成したものほど価値がない可能性がありますが、回帰テストに役立つものもあります。リリースの準備でリファクタリングやクリーンアップを台無しにしないようにするため: 最善の方法は、新しいテストを段階的に作成して、現在準備しているプロジェクトの部分をチェックすることです。リリースのために。

最後に、最小限の機能を備えたリリースをできるだけ早く作成することをお勧めします。これにより、他の人が率直で実用的なフィードバック (バグ レポート、機能要求など) を提供できるようになり、他のモジュールやフォローアップ バージョンのリリースに関する開発の指針となる可能性があります。

于 2011-09-25T11:43:57.633 に答える