6

私は現在、概念実証アプリを少しプログラムする必要があるプロジェクトに取り組んでいます。私は以前に PoC アプリを作成したことがありますが、それらは非常に小さいものであり、現在作成しているアプリには次のような多くのレイヤーがありませんでした。

  • フォーム層 - データ層と対話します。
  • データ層 - データベースおよび相互運用層と対話します。
  • Interop Layer - COM オブジェクトと対話します。
  • COM オブジェクト

PoC の作成に多くの時間を費やすことなく、A 地点から B 地点、および必要なプロセスに到達できることを示すプログラムを作成する最良の方法は何でしょうか。

すべてをどのように連携させるべきかについては、すでに頭の中にアイデアがありますが、チームメイトに自分の意図を伝えるのに少し苦労しています。

PoC をコーディングする際のヒントやコツを教えてください。または、コードを書かなければならないのではなく、私が何を意味するのかを説明するより良い方法があるでしょうか.

4

8 に答える 8

8

プロトタイプの作成に関する他の回答に同意します。プロトタイプがそのまま残るようにする 1 つの方法は、最終製品では絶対に使用されない言語またはツールチェーンを使用することです。私が使用したいくつかのアイデア:

  • netcatシェル スクリプト (および多くのbash)を使用して、事前にスクリプト化されたネットワーク クライアントを記述します。
  • Python、Ruby、または使い慣れた別の RAD 言語でサーバーを作成する
  • 実稼働テクノロジーよりも単純なテクノロジーを使用します (TCP の代わりに静的ファイルを介して通信するか、ミドルウェア製品の代わりに非常に単純な RPC メカニズムを使用します)。
  • 互換性のないライセンスを持つソフトウェアを使用して、製品をリリースできないようにします (これには GPL が適しています。実際に配布されるものには何でも使用できます)。
  • 静的な HTML ページとして Web フォームを作成します (スタイリングなどは何もなく、罪のように醜いです)。
  • 可能であれば、リモート インタラクション (データベース、ネットワーク) をローカル オブジェクト インタラクションに置き換えます。
于 2009-02-02T05:33:52.857 に答える
3

私の経験では、これを迅速に実行するための最良の方法は、すべてを 1 つの (またはできるだけ少ない) レイヤーでできるだけ速くコーディングすることです。次に、コードバーフが機能したら、リスト内のレイヤーの 1 つから始めて、分離します。必要なレイヤーができるまで繰り返します。

これには、特定のビットを引き上げて、同僚にそれが分離されたふりをするように依頼できるという追加の利点もあります. 彼らがそれを行うことができれば、実際に時間を費やす必要はありません。

于 2009-02-02T05:06:34.580 に答える
2

概念の証明として - 私は各ビットを個別に取り、残りのために偽のラッパーを書きます. プロトタイプや概念実証を作成する際の危険性の 1 つは、それらが機能に十分近いものである場合、最終製品になってしまう傾向があることです。

于 2009-02-02T05:07:02.067 に答える
2

アプリの概念実証のプロトタイピングでは、Rapid Application Development に適したプログラミング言語を使用すると便利な場合があります。

Python が良い例です。概念実証アプリのコード サイズを最小限に抑えながら、投稿で言及した抽象化のさまざまなレイヤーを活用して作成するための巨大なフレームワークがあります。

作業中のアプリケーションは言葉よりも雄弁なので、チームが見たり操作したりできる簡単なプロトタイプを作成できれば、タンブラーを適切な場所に配置するのに役立ちます。

于 2009-02-02T05:13:34.770 に答える
2

Python などの生産性の高い言語の単体テスト フレームワークで、可能な限り記述します。

Python 単体テストでは、リフレクションを使用して物事がテストであると推測し、通常のアサーションをキャッチします。全体として、始めるのにほとんど労力は必要ありません。私はこの方法で Python を使用してネットワーク プロトコルを作成し、Saxon jar を使用してコマンド ライン XSLT 変換をラップしました。

テスト駆動型の方法でフラグメントを操作することで、PoC アプリが複雑になりすぎないようにし、将来の実装でのテストの基礎を設定します。

メイン アプリに特定の言語を使用することに専念している場合でも、ネットワーク プロトコルをテストする単純なサーバーなど、ヘルパーにはより軽量なものを検討してください。

于 2009-02-02T05:41:58.783 に答える
1

Delphi 7 と MIDAS を使用して同様のプロジェクトを行ったことがあります。相互運用レイヤー (私の場合はインプロセス AppServer) を dll ファイルとして実装し、プロジェクトがさまざまなデータ ソース (SQL、Access、Excel、COM オブジェクトなど) にアクセスできるようにしました。

于 2009-02-02T07:16:36.160 に答える
1

最初のセットアップには少し時間がかかるかもしれませんが、依存性注入/IoC フレームワークをすぐに使用できる場合は、さまざまな実装を簡単に交換できます。Spring/Spring.NET は私を大いに助けてくれました。

于 2009-02-02T05:07:56.730 に答える
1

絵や図を描くことは、常に自分の主張を理解するのに役立ちます。また、問題が発生したときに自分で物事を考えるのにも役立ちます。

チームメイトに、あなたが考えていることを描いた絵を見せるだけで、あなたが話していることをよりよく理解できるようになるかもしれません。

于 2009-02-02T05:08:58.630 に答える