Pregunta

Trabajo en un grupo que hace una gran mezcla de investigación y desarrollo de código completa para la entrega.

La mitad del tiempo desarrollar procesos que se ejecutan en nuestro sistema en tiempo real (en algún lugar entre suave en tiempo real y en tiempo real duro, medio tiempo real?)

La otra mitad me escribir u optimizar procesos para nuestros investigadores que no necesariamente se preocupan por el código.

Actualmente estoy trabajando en un proceso que tengo que desembolsar en dos ramas diferentes.

Hay una versión de la investigación de un grupo, y una versión de producción que tendrá que ser fusionado vez en cuando con el código de la investigación para obtener la última y más grande en la producción.

Para probar estos procesos que necesita para configurar un entorno de prueba complicada semi que enviará los datos que analizamos al proceso en el momento correcto (sistema de tiempo real).

Estaba pensando en cómo podría hacer que la:

  1. Idea
  2. Implementar
  3. Prueba
  4. GOTO # 1

Ciclo tan fácil, rápido y sin dolor como sea posible para mis colegas.

Una idea que tenía era para incrustar un lenguaje de script dentro de estos procesos de larga duración. Así como los procesos de gestión que pudieran modificar el algoritmo real y sus parámetros.

del palo Miré a incrustar:

Estos dos parecen factible y de hecho podría resolver totalmente el problema dado.

Cualquier otra brillante idea que hay ahí fuera?

Recompiling después de un cambio de línea 1-2, redistribuyendo al entorno de prueba y reinicio es un asco.

El sistema es bastante complicado y es de esperar que explicó que la mitad decentemente.

¿Fue útil?

Solución

Si se puede cambiar bastante del programa a través de una secuencia de comandos para ser útil, sin una recompilación completa, tal vez debería pensar en romper el sistema en partes más pequeñas. Usted podría tener un "servidor" que se encarga de la carga de datos, etc y luego el código de cliente que hace el procesamiento real. Cada vez que el sistema carga los nuevos datos, se podría comprobar y ver si el código de cliente ha sido re-compilado y luego usarlo si ese es el caso.

Creo que habría un par de ventajas aquí, la mayor de ellas sería que todo el sistema sería mucho menos complejo. Ahora está trabajando en un idioma en lugar de dos. Hay menos posibilidades de que la gente puede complicar las cosas cuando se pasa de modo de pitón o lua a modo de c ++ en sus cabezas. Mediante la incorporación de algún otro idioma en el sistema también se corre el riesgo de convertirse en dependiente de ella. Si utiliza Python o lua tweek el programa, los idiomas o bien se convierten en una dependencia cuando llega el momento de implementar, o si necesita una copia de las cosas a C ++. Si decide portuarias cosas a C ++ que hay otra oportunidad para que los insectos a surgir durante el cambio.

Otros consejos

Incorporación de Lua es mucho más fácil de incrustar Python.

  • Lua fue diseñado desde el principio para ser embebido; incrustación de Python se injertó en después del hecho.

  • Lua es de aproximadamente 20x más pequeña y más simple que Python.

Usted no dice mucho sobre su proceso de construcción, pero la construcción y las pruebas se pueden simplificar significativamente mediante el uso de una versión muy potente de la marca. Yo uso mk , pero es probable que sea aún mejor invertir el tiempo para dominar Glenn Fowler nmake , que puede agregar dependencias sobre la marcha y eliminar la necesidad para un paso de configuración independiente. No recomiendo normalmente nmake porque es algo complicado, pero es muy claro que Fowler y su grupo han integrado en las soluciones de NMAKE para lotes de la ampliación y problemas de portabilidad. Por su situación particular, puede valer la pena el esfuerzo para dominarlo.

No estoy seguro de entender su sistema, pero si la construcción y despliegue es demasiado complicado, tal vez usted podría automatizar ella? Si la implementación es completamente automático, habría que resolver el problema?

No entiendo cómo un lenguaje de script resolvería el problema? Si cambia su algoritmo, usted todavía tiene que reiniciar el cálculo desde el principio, ¿verdad?

En cierto modo parece que lo que necesita es climatizador o algo similar; cada vez que Hyou tocar el código de línea de base, se reconstruye y vuelve a ejecutar las pruebas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top