ソフトウェアのワークフローの実装を学ぶ方法はいくつありますか?それらは何ですか?
2 に答える
ユーザー ワークフロー、つまりユーザーがソフトウェアを通じてどのように導かれるかということを意味する場合は...
私は通常、ある種のステート マシンを使用して、ユーザーがトリガーできる機能と、ワークフローの特定の状態でユーザーに表示される情報を制限します。このようにして、フローの各セグメントを独自の「サンドボックス」で設計することに集中でき、意思決定がはるかに簡単になります。
ユーザー ワークフローを意味しない場合は、この返信を無視してかまいません。
通常、ワークフローにはステップがあります。ステップは、いくつかの前提条件 (UI から隠されているビジネス ロジック)、いくつかのユーザー インタラクション (ユーザーがデータを入力し、いくつかの「ユーザー操作」を行う)、および事後条件で構成されます。通常、ユーザー インタラクション パーツには「存在する」を選択した 1 人以上のユーザーがいて、すべての exit は独自の事後条件で構成されます (通常、すべてのユーザー exit には、ステップからの exit の意味に応じて独自のビジネス ロジックがあります)。ワークフローを終了して、次のステップに進みます。場合によっては、完全に自動化された手順 (外部データ ソースの使用、Web サービスの呼び出し、重要な計算など) を行うことができます。
ワークフローが単純な場合は、各ステップを表す一連のクラスとして実装し、ステップの順序の構成を XML に入れることができます。ワークフローがますます大きくなる場合、何らかのワークフロー エンジンを検索するのが合理的かもしれません (WF エンジンの議論は、この質問の範囲を超えていると思います)。
重要なことの 1 つは、ステップは直交する可能性がありますが、設計が難しいということです。ステップが互いに依存している場合、ワークフローとステップの順序を構成する人は、そのような依存関係を完全に認識している必要があります (例: ユーザー アドレスのステップは、おそらくユーザー オブジェクトの作成ステップに依存し、ワークフローからユーザー オブジェクトの作成ステップを削除すると、存在しないオブジェクトにアクセスするため)。