Frage

Ich arbeite in einer Gruppe, die eine große Mischung aus Forschung, Entwicklung und hat die vollständigen Versand Code.

Die Hälfte der Zeit, die ich Prozesse entwickeln, die auf unserem Echtzeitsystem laufen (irgendwo zwischen weicher Echtzeit und harter Echtzeit, mittlere Echtzeit?)

Die andere Hälfte Ich schreibe oder optimieren Prozesse für unsere Forscher, die nicht notwendigerweise überhaupt über den Code kümmern.

Zur Zeit arbeite ich an einem Verfahren, das ich in zwei verschiedene Zweige gabeln habe.

Es gibt eine Forschungsversion für eine Gruppe und eine Produktionsversion, die gelegentlich mit dem Forschungscode zusammengeführt werden muß, um die neuesten und besten in der Produktion zu bekommen.

, diese Prozesse testen Sie einrichten müssen eine halb komplizierte Testumgebung, die die Daten, die wir zur richtigen Zeit (Echtzeit-System) an den Prozess analysieren senden.

Ich habe darüber nachgedacht, wie ich das machen könnte:

  1. Idee
  2. Implementieren
  3. Test
  4. GOTO # 1

Zyklus so einfach, schnell und schmerzfrei wie möglich für meine Kollegen.

Eine Idee, die ich hatte, war eine Skriptsprache innerhalb dieser langen laufenden Prozesse zu integrieren. So wie der Prozess laufen die konnten sie den tatsächlichen Algorithmus optimieren und es ist Parameter.

Aus der Fledermaus ich Einbettung sah:

Diese beiden machbar erscheinen und könnte in der Tat vollständig das gegebene Problem lösen.

Eine andere gute Idee ist da draußen?

Eine Neuübersetzung nach einem 1-2 Zeilenwechsel, auf die Testumgebung Umschichtung und Neustarten saugt nur.

Das System ist ziemlich kompliziert und hoffentlich erklärte ich es halb anständig.

War es hilfreich?

Lösung

Wenn Sie genug des Programms durch ein Skript ändern können nützlich sein, ohne eine vollständige erneute Kompilierung, vielleicht sollten Sie darüber nachdenken, das System zu brechen in kleinere Teile. Sie könnten einen „Server“ haben das Laden von Daten usw. behandelt und dann den Client-Code, der die eigentliche Verarbeitung der Fall ist. Jedes Mal, das System neue Daten geladen wird, könnte es überprüfen und festzustellen, ob der Client-Code wurde neu kompiliert und dann verwenden, wenn das der Fall ist.

ich glaube, es würde hier ein paar Vorteile sein, von denen der größte, dass das ganze System weniger komplex wäre viel wäre. Jetzt arbeiten Sie in einer Sprache statt zwei. Es ist weniger eine Chance, dass die Menschen durcheinander zu bringen, wenn sie in ihren Köpfen aus Python oder Lua-Modus c ++ Modus bewegen. Durch die Einbettung auf ihnen eine andere Sprache im System führen Sie auch das Risiko, abhängig. Wenn Sie Python oder Lua verwenden das Programm tweek, entweder diese Sprachen eine Abhängigkeit, wenn es an der Zeit zu implementieren wird, oder Sie müssen die Dinge aus, um C ++ zu unterstützen. Wenn Sie in dem Hafen Dinge zu C ++ wählen Theres eine neue Chance für Fehler während des Schalters auftauchen.

Andere Tipps

Embedding Lua ist viel einfacher als Python einbetten.

  • Lua wurde von Anfang an so konzipiert werden, eingebettet ist; Pythons Einbettbarkeit wurde nach der Tat aufgepfropft.

  • Lua ist etwa 20-fach kleiner und einfacher als Python.

Sie sagen nicht viel über Ihre Build-Prozess, sondern den Bau und Test kann unter Verwendung einer wirklich leistungsfähigere Version von Make deutlich vereinfacht werden. Ich benutze Andrew Humes mk , aber Sie würden wahrscheinlich sogar besser investieren, um die Zeit Glenn Fowler zu meistern Nmake , die Abhängigkeiten von der Fliege und beseitigen die Notwendigkeit hinzufügen für einen separaten Konfigurationsschritt. Ich normalerweise nicht Nmake empfehlen, weil es etwas kompliziert ist, aber es ist ganz klar, dass Fowler und seine Gruppe in Nmake Lösungen gebaut für Partien der Skalierung und Portabilität Probleme. Für Ihre besondere Situation, kann es die Mühe wert sein, es zu meistern.

Nicht sicher, ob ich verstehe Ihr System, aber wenn die Build- und Deployment zu kompliziert ist, vielleicht könnten Sie es automatisieren? Wenn Einsatz vollautomatisch ist, wäre das das Problem lösen?

Ich verstehe nicht, wie eine Skriptsprache, das Problem lösen würde? Wenn Sie Ihren Algorithmus ändern, müssen Sie noch die Berechnung von Anfang an neu zu starten, nicht wahr?

Es klingt ein bisschen wie, was Sie brauchen, ist CruiseControl- oder etwas ähnliches; jedes Mal hyou den Baseline-Code zu berühren, rekonstruiert und reruns Tests.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top