Preámbulo
JMP Scripting Language (JSL) ofrece una funcionalidad de secuencias de comandos que va desde la generación de código automatizada (similar a una grabadora de macros) hasta un entorno de desarrollo integrado para el desarrollo de aplicaciones. Al igual que con cualquier lenguaje de programación, la aplicación de buenas prácticas de programación a proyectos JSL dará como resultado scripts y aplicaciones sólidos y fáciles de admitir. Debido a que JSL ha simplificado las tareas de programación comunes, es fácil pasar por alto o ignorar la necesidad de estas prácticas.Dado el poder y la flexibilidad que ofrece JSL, ignorar las buenas prácticas de programación expone a los usuarios a riesgos potenciales. Este breve documento se ha escrito para informarle sobre estos riesgos y para proporcionar estrategias de programación que puede utilizar para gestionarlos.
Mejores prácticas generales
- Comience siempre con un plan escrito o una declaración del problema y utilícelo para crear una lista de verificación de resultados claros.Estos ayudan a prevenir el avance del alcance y mantener el proyecto en la tarea.
- Cuando sea posible, use estructuras existentes (funciones, código prefabricado, bibliotecas, etc.) en lugar de diseñar todo desde cero.
- Si bien a menudo es imposible probar todas las situaciones de entrada posibles, se deben usar múltiples condiciones de entrada. También se deben realizar pruebas con versiones preliminares de JMP. Cuando sea posible, se debe emplear un conjunto guardado de archivos de prueba o un conjunto escrito de condiciones de prueba (por ejemplo, configuraciones de cuadro de diálogo).
- Se debe crear un plan de sucesión, haciendo explícito quién será responsable del mantenimiento del código cuando los creadores originales ya no sean responsables del mantenimiento del código.
Estructura del guión
- Ya sea que desarrolle código solo o en grupo, es recomendable trabajar a partir de una guía de estilo. La guía debe contener información como convenciones de nomenclatura para variables y funciones, espaciado alrededor de los elementos de codificación (es decir, formato), comentarios, etc. El documento conduce a una mayor coherencia entre scripts y aplicaciones, haciéndolos más legibles y fáciles de mantener. Se pueden encontrar enlaces a ejemplos aquí .
- Se debe incluir una sección de comentarios en la parte superior de la secuencia de comandos con información como el número de versión, el autor, la fecha de revisión, las entradas requeridas y opcionales, las correcciones de errores de la versión anterior y la versión de JMP probada. Debe actualizarse cada vez que se modifica el script para que se conserve un historial de los cambios. También se debe incluir una breve descripción del comportamiento del programa, incluido el alcance y las limitaciones.
- Se deben agregar comentarios a cualquier sección del código donde la elección de la estructura de datos, el flujo de control o la lógica no sea inmediatamente obvia.
- Las variables no deben definirse fuera del script/función/bloque en el que se definen inicialmente. Las variables globales deben evitarse a menos que sea absolutamente necesario. La funcionalidad de alcance de JSL se debe utilizar para implementar estas restricciones.
- Siempre que sea posible, la funcionalidad del script o de la aplicación debe dividirse en pequeños bloques de código independientes. Ese código puede almacenarse en archivos separados o estructuras de datos JSL.
Métodos de entrega
- Considere usar un repositorio, un sistema de control de versiones, etc. para administrar colecciones de código y asegurarse de que los usuarios puedan acceder a la versión más reciente de un script.
- Siempre que sea posible, el código debe empaquetarse para facilitar su uso.
- Para aplicaciones medianas a grandes, se prefieren complementos para soluciones completas
- A menos que esté completamente seguro de que el complemento será universalmente compatible, utilice las funciones Versión mínima de JMP y Host compatible en el asistente del complemento para evitar que el complemento se ejecute en entornos no compatibles.
- Para proyectos grandes, las aplicaciones JMP deben usarse dentro de los complementos para evitar tiempos de carga lentos.
- Los scripts JSL sin empaquetar deben reservarse para bibliotecas de funciones, scripts de procesamiento, trabajo de desarrollo, etc.
- El código (en JSL, complemento o formulario de aplicación) que el usuario final no debería poder editar o ver debe cifrarse.
- El código que los usuarios no deberían poder ejecutar universalmente debería haber ejecutado el cifrado en su lugar.
Otras Consideraciones
- Considere incluir licencias o descargos de responsabilidad legal con el código. Pueden ser requeridos por una organización si el código se publica públicamente.
Acerca de este documento
P: ¿Dónde están los materiales?
R: Lo estás leyendo.
Actualmente solo está disponible internamente. Esto cambiará.
P: ¿Cuál es nuestra motivación?
R: Para abordar el siguiente problema del cliente, ya sea real o percibido:
Mis scripts no funcionarán con la última versión de JMP.
P: ¿Qué esperamos lograr?
R: Si bien no podemos controlar los casos en los que se presentan nuevos problemas, podemos brindar orientación para evitar problemas autoinfligidos.
P: ¿Para qué es/no es el documento?
R: El documento actual pretende ser una descripción general de las buenas prácticas de programación. Es descriptivo y no prescriptivo. Lo último probablemente vendrá más tarde.
P: ¿Qué necesitamos de usted?
R: Háganos saber:
- Si falta algo o no está claro en el documento.
- Lo que crees que debería suceder a continuación.
- Donde crees esto, y la información futura debe vivir.
- Lo que necesitas de nosotros para hacer el proceso de mover a tus clientes con scripts a la última versión.
Agregaría una sección llamada Desarrollo de scripts y hay varias cosas en Métodos de implementación que tendría sentido incluir en Desarrollo de scripts (es decir, repositorio y control de versiones).Junto con los complementos enumerados en Métodos de implementación, también puede mencionar otros métodos de implementación: en la tabla de datos, secuencias de comandos independientes, ejecución en función abierta, ejecución con el programador de tareas de Windows, secuencias de comandos en diarios para administrar flujos de trabajo. El desarrollo de scripts puede incluir cosas como guardar scripts de informes (¡y el inicio de sesión en JMP 16!) comunidad, etc...