2010-08-27 11 views
13

Estoy desarrollando una aplicación utilizando las herramientas incorrectas. No deseo entrar en los derechos o los errores de esto: la plataforma ha sido bendecida como estratégica y nada va a cambiar eso ahora. Pero espero que alguien me pueda dar algunos consejos sobre cómo sacar lo mejor de la situación.¿Sugerencias para codificar utilizando herramientas hostiles?

Utilizamos un lenguaje del lado del servidor, llamémoslo X, y HTML/JS/CSS del lado del cliente (en IE6). X es primitivo desde el punto de vista de desarrollo de una aplicación (pero excelente para el procesamiento de datos, y es por eso que lo estamos usando); ni siquiera tiene el concepto de funciones definidas por el usuario, por lo que tratar de modular la aplicación de alguna manera es un desafío. Piensa en decenas de miles de líneas de instrucciones anidadas if/then/else.

Mi suposición actual es que no será posible reducir el factor de espaguetis del código, y esa gran documentación es mi única arma contra que esto se convierta en una pesadilla totalmente insoportable que termina en TheDailyWTF.

¿Alguien tiene alguna otra idea?

(no menciono lo X lenguaje es simplemente porque yo estoy esperando respuestas al problema general de trabajo con herramientas deficientes no, las tácticas particulares de X.)

Editar:

Ok, para el morboso curioso, X es SAS. No quería que la pregunta se centrara en si las macros de función son funciones (no son, y no pueden implementar patrones de diseño), o culparlo, dadas las limitaciones de este proyecto en particular, de hecho estoy de acuerdo con la decisión de usar ¡eso! También estoy seguro de que la mayoría del software se desarrolla en entornos increíblemente no óptimos (herramientas rotas, mala administración, sobrecarga heredada dominante, etc.) y que debe haber estrategias para que las cosas funcionen aún así.

+10

Si la pregunta obtiene respuestas decentes, ¿nos dirá qué es X? ;) – Max

+0

Hmmm ... desafortunadamente X suena muy familiar :) –

+0

Sí, hice mi mejor esfuerzo, y espero saber qué es X también;) –

Respuesta

2

¿Tiene comentarios X?

Escriba su pequeño idioma también conocido como pseudo código en los comentarios.

1

Además de la documentación, las opciones de nombres y convenciones variables para la forma en que se utilizan pueden ayudar un poco. También es posible que pueda configurar algunas convenciones estructurales en el código para que haya cierta regularidad. Hace mucho tiempo, cuando la gente escribía assembler, los buenos codificadores producían código legible.

0

¿Es posible utilizar una tecnología diferente, más adecuada a su problema entre X y el lado del cliente?

Como alternativa, se puede usar más si/entonces/else declaraciones para la construcción de bloques modulares de código, lo que podría ayudar con el mantenimiento.

8

Conoce usted Church thesis?

Si no puede resolver "A" en Y pero puede emular Z en Y y Z puede resolver "A", entonces por definición Y puede resolver "A".

Tal vez usted puede escribir alguna rutina generalizada que de alguna manera hace que X más eficaz para el problema en cuestión? ¿Una especie de extensión a X, o, mejor aún, un little-language implementado en X?

Parece que otros tienden a confundir "lenguaje poco" con la documentación. Si bien puedes intentar ir por ese camino (en este caso sugiero que mires al Robodoc) estaba pensando algo más cercano a Wasabi, es decir, usando tu herramienta X para crear un tipo de intérprete para X ++ o incluso Y, sin saber qué es X no puedo ser, por supuesto, más específico que eso.

1

hmmmm, suena como otro desarrollador paperas/InterSystems Caché;)

Hablando en serio, es posible que desee comprobar si hay algunas herramientas para 'X' que podría mapear el flujo del programa, o como parte de el proceso de documentación muestra algo así como Visio u otra herramienta similar en la que se puede recorrer el código y trazar lo que hace (más o menos). La parte más difícil probablemente tendría que regresar y mirar fijamente esa pared de código y volver directamente para que todo lo que pueda hacer para documentarlo/graficarlo/trazarlo lo ayude.

0

me resulta difícil creer que usted no tiene ningún tipo de funciones definidas por el usuario disponibles en X - incluso archivos por lotes tienen funciones (tipo de)

Tan pronto como usted tiene funciones, puede hacer que las cosas al menos bastante modular.

0

Puede encontrar un lenguaje que le guste, e implementar los elementos habituales de "poner algunos datos en una plantilla" a nivel de aplicación web, e implementar wrappers para llamar a 'X' por las cosas en las que es bueno .

Cuestiones relacionadas