2013-11-26 4 views
0

워크 플로 개발자가 약간의 프로세스 함수를 오버로드하고 Workflow 클래스를 상속하는 워크 플로우 관리 시스템을 구현 중입니다. 클래스는 워크 플로에 구성 요소를 추가하기 위해 add_component이라는 메서드를 제공합니다 (구성 요소는 소프트웨어 실행이거나 더 복잡 할 수 있음).파이썬 코드를 실행하지 않고 프로그래밍 방식으로 이해하기

Workflow 클래스는 상태를 표시하기 위해 어떤 구성 요소가 워크 플로에 추가되었는지 알아야합니다. 이렇게하려면 2 가지를 시도했습니다.

  1. 프로세스 기능을 2 번 실행하면 필요한 모든 구성 요소를 처음으로 수집 할 수 있으며 두 번째 것은 실제 실행을위한 것입니다. 문제는 워크 플로 개발자가 구성 요소를 추가하는 것 (데이터베이스에 요소 추가, 파일 만들기) 이외의 작업을하는 경우 두 번 수행된다는 것입니다.
  2. add_component 행만 추출하는 함수의 파이썬 코드를 구문 분석하면 작동하지만 일부 구성 요소가 if/else 문에 있고 구성 요소를 실행하면 안됩니다. 구성 요소가 모니터링에 표시됩니다! 다른 해결책이 있는지 궁금 해요

는 (I는 XML이나 뭔가를 쉽게 분석 할 수있는 내 워크 플로우를 만들 생각하지만이 덜 유연하다).

+0

나는 이것이 당신에게 흥미로울 것 같아요 : [Halting problem] (http://en.wikipedia.org/wiki/Halting_problem) – Dunno

답변

0

"실행"하지 않고 프로그램이하는 일을 알 수 없습니다 (수정하고 싶지 않지만 움직이는 표적에서 촬영하는 것처럼 보일 수도 있습니다).

수작업으로 파싱하면 항상 놓칠 수있는 몇 가지 문제가 있습니다.

당신은 두 가지 기능의 코드를 중단해야합니다

  • 코드는 어떤 측면 효과없이 add_component (들),하지만 가능성이 실제 코드를 실행할 수있는 첫 번째는 환경을 확인 추가 할 구성 요소를 알 수 있습니다.
  • 은 부작용이있을 수 있으며 추가 된 구성 요소에 의존합니다.

    • 더 부작용 (설명서를 존중 프로그래머에 의존 할 필요가 없습니다)
    • 이없는 확신 :는 XML (또는 정적 형식)를 사용하여

    제외하고 유사하다 많게는 유연성이 떨어지지 만 꼭 필요한 것이 있는지 확인하십시오.

관련 문제