Pregunta

Estoy trabajando en varios distintos, pero relacionados con proyectos en diferentes lenguajes de programación.Algunos de estos proyectos deben analizar los nombres de los archivos escritos por otros proyectos, y esperar un cierto patrón de nombre de archivo.

Este patrón está ahora codificado en varios lugares y en varios idiomas, lo que es un mantenimiento de la bomba.Es bastante fácil de definir este patrón exactamente una vez en un determinado proyecto, pero ¿cuáles son las técnicas para definir de una vez por todas, para todos los proyectos y para todos los idiomas en uso?

¿Fue útil?

Solución

La creación de un Lenguaje Específico de Dominio, a continuación, compile que en el código para cada uno de los idiomas de destino que usted está usando sería la mejor solución (y más elegante).

No es difícil hacer una conexión DSL - se marchitan incrustarlo en algo (como dentro de Ruby desde su 'en el' cosa ahora mismo, o en otro idioma como LISP/Haskell...), o crear una gramática a partir de cero (uso de Antlr?).Parece que el proyecto es grande, entonces este camino es digno de su tiempo.

Otros consejos

Me gustaría almacenar el patrón en un archivo de texto simple y, en función de un proyecto en particular:

  • Se incrusta en la fuente en tiempo de compilación (preprocesamiento)
  • Si lo anterior no es una opción, lo trata como un archivo de configuración de lectura en tiempo de ejecución

Editar:Supongo que el patrón es algo más complicada que la de una expresión regular, de lo contrario me iría con el DSL solución a partir de otra respuesta.

Usted podría utilizar una secuencia de comandos común, proceso o servicio web para la generación de nombres de archivo (dependiendo de su configuración).

No sé qué idiomas hablan, pero la mayoría de las lenguas de uso externo dinámico bibliotecas dll/objetos compartidos y de exportación, la funcionalidad común de esta biblioteca.Por ejemplo implementar la función de obtener el nombre de archivo en simple c lib y el uso acrros resto de idiomas.
Otra opción será la de crear un código común de forma dinámica como parte del proceso de compilación para cada idioma, esto no debería ser complejo.
Voy a sugerir el uso de dynamic link enfoque si es posible (que no dan suficiente información para determinar esto),dado que el mantenimiento de esta solución será mucho más fácil mantener la generación de código para diferentes idiomas.

Colocar el patrón en una base de datos - la manera más fácil y cómodo podría ser el uso de la base de datos XML.Esta base de datos será accesible por todos los proyectos y que se va a leer el patrón de allí

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