私はワークフロー管理システムを実装しています。そこでは、ワークフロー開発者が小さなプロセス機能をオーバーロードして、 Workflow
クラス。このクラスは、という名前のメソッドを提供しています。 add_component
コンポーネントをワークフローに追加するには(コンポーネントはソフトウェアの実行であるか、またはより複雑になる可能性があります)。
じぶんの Workflow
ステータスを表示するためのクラスは、どのコンポーネントがワークフローに追加されたかを知る必要があります。そうするために、私は2つのことを試みました:
- プロセス関数を2回実行します。時間は必要なすべてのコンポーネントを集めることを可能にします、2番目のものは実際の実行のためです。問題は、ワークフロー開発者がコンポーネントを追加すること(データベースに要素を追加すること、ファイルを作成すること)以外のことをすると、これが2回行われることです。
- 関数のPythonコードを解析して、
add_component
行、これは動作しますが、いくつかのコンポーネントがif
/else
ステートメントとコンポーネントを実行しないでください。コンポーネントは監視中に表示されます。
他の解決策があるかどうか私は疑問に思います(私のワークフローをXMLまたは構文解析を容易にするものにすることを考えましたが、これはあまり柔軟ではありません)。
回答:
回答№1は0プログラムを「実行」しなければ何ができるのかわからない(変更したくないものをモックすることもありますが、動いているターゲットで撃つように見える場合もあります)。
あなたが手作りの構文解析をするならば、あなたが逃すいくつかの問題が常にあるでしょう。
コードを2つの関数に分割する必要があります。
- 最初のコードでは、サイドがなくてもコードはadd_componentのみを追加できます。 実際のコードを実行して どのコンポーネントを追加するかを知るための環境など。
- もう一つ 副作用があり、追加されたコンポーネントに依存する可能性があります。
XML(または任意の静的フォーマット)の使用は、以下を除いて似ています。
- 副作用がないことは間違いありません(ドキュメンテーションを尊重するプログラマに頼る必要はありません)。
- たくさん 柔軟性は劣りますが、必ず必要です。