문제

저는 연구 개발과 전체 배송 코드를 많이 수행하는 그룹에서 일합니다.

실시간 시스템에서 실행되는 프로세스를 개발하는 시간의 절반 (소프트 실시간 및 하드 실시간, 중간 실시간 사이의 어딘가에?)

나머지 절반은 반드시 코드에 대해 전혀 신경 쓰지 않는 연구원들을 위해 프로세스를 작성하거나 최적화합니다.

현재 저는 두 개의 다른 가지로 포크 해야하는 프로세스를 작업하고 있습니다.

한 그룹에 대한 연구 버전과 생산 버전이 있으며 때때로 연구 코드와 병합되어 최신 프로덕션을 얻을 수 있습니다.

이러한 프로세스를 테스트하려면 올바른 시간 (실시간 시스템)에 프로세스에 분석하는 데이터를 보낼 반 복잡한 테스트 환경을 설정해야합니다.

나는 내가 어떻게 만들 수 있는지 생각하고 있었다.

  1. 아이디어
  2. 구현하다
  3. 테스트
  4. goto #1

동료들에게 가능한 한 쉽고 빠르며 통증이 없습니다.

내가 가진 아이디어 중 하나는이 장기적인 프로세스에 스크립팅 언어를 포함시키는 것이 었습니다. 프로세스 실행이므로 실제 알고리즘을 조정할 수 있으며 매개 변수입니다.

박쥐에서 나는 삽입을 보았다 :

이것들은 모두 가능해 보이며 실제로 주어진 문제를 완전히 해결할 수 있습니다.

다른 밝은 아이디어가 밖에 있습니까?

1-2 라인 변경 후 재 컴파일, 테스트 환경에 재배치하고 다시 시작하면 짜증이납니다.

이 시스템은 상당히 복잡하고 반으로 반쯤 설명했습니다.

도움이 되었습니까?

해결책

완전한 재 컴파일없이 유용 할 수 있도록 스크립트를 통해 충분한 프로그램을 변경할 수 있다면 시스템을 작은 부품으로 분해하는 것에 대해 생각해야 할 것입니다. 데이터로드 등을 처리하는 "서버"와 실제 처리를 수행하는 클라이언트 코드를 가질 수 있습니다. 시스템이 새 데이터를로드 할 때마다 클라이언트 코드가 다시 컴파일되었는지 확인한 다음이 경우 사용할 수 있습니다.

여기에는 몇 가지 장점이있을 것이라고 생각합니다. 그 중 가장 큰 장점은 전체 시스템이 훨씬 덜 복잡 할 것입니다. 이제 당신은 두 가지 대신 한 언어로 일하고 있습니다. 파이썬이나 LUA 모드에서 헤드의 C ++ 모드로 이동할 때 사람들이 물건을 엉망으로 만들 수있는 기회는 적습니다. 시스템에 다른 언어를 포함시킴으로써 당신은 또한 그것에 의존 할 위험이 있습니다. Python 또는 Lua를 사용하여 프로그램을 Tweek로 사용하는 경우 해당 언어는 배포 할 때의 종속성이되거나 C ++로 물건을 뒷받침해야합니다. 물건을 C ++로 포트하도록 선택하면 스위치 중에 버그가자를 수있는 또 다른 기회가 있습니다.

다른 팁

LUA를 포함시키는 것은 파이썬을 포함시키는 것보다 훨씬 쉽습니다.

  • Lua는 처음부터 포함되도록 설계되었습니다. Python의 임베드 가능성은 사실 이후에 접목되었습니다.

  • LUA는 파이썬보다 약 20 배 작고 단순합니다.

빌드 프로세스에 대해 많이 말하지는 않지만 실제로 강력한 버전의 Make를 사용하여 건물 및 테스트를 크게 단순화 할 수 있습니다. 나는 Andrew Hume 's를 사용합니다 MK, 그러나 Glenn Fowler 's를 마스터하는 데 시간을 투자하는 것이 훨씬 더 나을 것입니다. nmake, 이는 즉석에 종속성을 추가하고 별도의 구성 단계를 제거 할 수 있습니다. 나는 NMake가 다소 복잡하기 때문에 보통 Nmake를 추천하지는 않지만 Fowler와 그의 그룹이 Nmake 솔루션에 내장 된 것은 매우 분명합니다. 많이 스케일링 및 이식성 문제. 당신의 특정 상황에서는 그것을 마스터하기 위해 노력할 가치가있을 수 있습니다.

시스템을 이해하지 못하지만 빌드 및 배포가 너무 복잡하다면 자동화 할 수 있습니까? 배포가 완전히 자동 인 경우 문제가 해결됩니까?

스크립팅 언어가 문제를 해결하는 방법을 이해하지 못합니까? 알고리즘을 변경하면 처음부터 계산을 다시 시작해야합니까?

그것은 당신이 필요로하는 것과 같은 소리입니다 크루즈 컨트롤 또는 비슷한 것; Hyou가 기준 코드를 터치 할 때마다 테스트를 재건하고 재실행합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top