| Vocero |
Transcripción |
| Wayne Levin |
Bienvenido a nuestra sesión sobre la ampliación de las pruebas automatizadas de Hamcrest de aplicaciones JSL para la mejora continua. |
| |
Lo que le vamos a mostrar aquí, nuestra promesa para usted, es que le vamos a mostrar cómo usted también puede construir una empresa productiva y rentable. |
| |
Sistemas analíticos integrados de misión crítica basados en JMP, con garantía de alta calidad, altamente confiables y con soporte. Sí, es mucho decir, pero... |
| |
Eso es lo que estamos haciendo en este entorno. Estamos muy satisfechos con ello. Nos sentimos muy honrados de poder compartirlo con ustedes. |
| |
Así que aquí está la agenda que seguiremos. Una breve introducción, la haré en un momento, y un poco sobre Predictum, porque quizás no nos conozcan mucho. |
| |
nuestros antecedentes, los antecedentes de nuestro desarrollo JSL, infraestructura, un poco de historia involucrada con eso. |
| |
Y luego, los resultados de los cambios que hemos estado implementando, que estamos aquí para compartir con ustedes. Después, haremos una demostración y hablaremos sobre lo que viene a continuación, lo que tenemos planeado para el futuro, y finalmente, lo abriremos para cualquier pregunta que puedan tener. |
| |
Soy Wayne Levin, así que ese soy yo aquí a la derecha. Soy el presidente de Predictum y estoy unido a... |
| |
Con Vince Faller. Vince es nuestro ingeniero jefe de software y ha liderado esta importante iniciativa. Les contamos un poco sobre nosotros. Somos socios de JMP. |
| |
Comenzamos en el año 1992, por lo que tenemos 29 años. |
| |
Hacemos formación en métodos estadísticos y demás, utilizando JMP, asesorando en esas áreas y pasamos muchísimo tiempo construyendo y |
| |
Implementar aplicaciones y sistemas analíticos integrados, por lo que este esfuerzo fue muy importante para nosotros. Primero entregamos la aplicación JMP con |
| |
JMP 4.0 en el año 2000, sí, de hecho hace más de 20 años, y hemos estado desarrollando sistemas más grandes. Claro, desde entonces, eran herramientas demasiado pequeñas, pero empezamos, creo, alrededor de JMP 8 o 9 a desarrollar sistemas más grandes. |
| |
Tenemos bastante experiencia en esto, más de 10 años fácilmente. Un poco de contexto... hasta aproximadamente la segunda mitad de 2019, nuestro entorno de desarrollo era muy heterogéneo, fragmentado. |
| |
Gestión de proyectos |
| |
Estaba ahí, pero, de nuevo, todo estaba un poco fragmentado. Teníamos diferentes aplicaciones para el control de versiones y la gestión del tiempo, ya sabes, el tiempo de nuestros desarrolladores, etc., y la gestión de proyectos en general. |
| |
Los desarrolladores estaban gastando con facilidad, y hablaremos de ello. |
| |
Aproximadamente la mitad de su tiempo se dedican a tareas mecánicas rutinarias, como cifrar y empaquetar complementos JMP. Ya sabes, mantener paquetes de configuración y... |
| |
Ya sabes, y separar los repositorios, o lo que generalmente llamamos repositorios, para scripts cifrados y no cifrados. Tuvimos que pensar en muchas cosas que no eran realmente trabajo de desarrollo. Fue realmente trabajo que... |
| |
El talento de los desarrolladores se desperdició. Como dije, llevamos haciéndolo mucho tiempo, incluso en 2019, contábamos fácilmente con 10 años de un framework heredado, incluso hasta JMP 5, que se estaba volviendo pesado y lento. |
| |
Y sabemos que JMP ha avanzado mucho a lo largo de los años. En JMP 9, introdujimos los espacios de nombres y en JMP 14 introdujimos las clases, y fue entonces cuando Hamcrest... |
| |
Comenzó. Y fue Hamcrest quien realmente nos permitió llevar a cabo esta importante iniciativa. La iniciamos en agosto de 2019. |
| |
Y ahí es cuando adquirimos nuestras primeras licencias de Gitlab y ese es el desarrollo de nuestra nueva... el desarrollo de nuestra nueva arquitectura de desarrollo, ahí lo tienen, empezó a tomar forma y ha ido mejorando desde entonces. |
| |
Básicamente, cada mes hemos ido añadiendo y desarrollando nuestras capacidades para ser cada vez más productivos a medida que avanzamos. |
| |
Y esto continúa, así que lo consideramos, por así decirlo, un esfuerzo de tipo Lean. Sigue los principios Lean y ha acelerado nuestro desarrollo. |
| |
Gracias a este sistema, hemos automatizado las pruebas, y Vince nos lo va a mostrar. Y tenemos este pequeño modelo: prueba temprano y con frecuencia. |
| |
Y eso es lo que hacemos. Permite la reutilización de código y hemos rediseñado nuestro marco de sistema Predictum. Ahora es la versión 2.0. Hemos aprendido mucho de nuestro trabajo anterior. Todo eso se ha ido, prácticamente todo se ha ido, y se ha reemplazado y ampliado. |
| |
Vince nos contará más al respecto. Fácilmente, hemos aumentado la productividad en más del 50 %, y solo diré que los desarrolladores están mucho más contentos. Están menos frustrados. |
| |
Están más centrados en su trabajo, es decir, en el trabajo real que los desarrolladores deberían estar haciendo, no en las cosas tediosas. |
| |
Todavía hay margen de mejora, debo decir, pero no hemos terminado y Vince nos contará más sobre ello. |
| |
Ahora tenemos estándares de desarrollo, por lo que tenemos guías de estilo para las funciones y todo nuestro desarrollo está basado en la funcionalidad, se podría decir. |
| |
Cada función requiere al menos una prueba de Hamcrest, y hay revisiones de código que los desarrolladores comparten entre sí. |
| |
para garantizar que cumplimos con nuestros estándares. Y plantea preguntas sobre cómo mejorarlos. |
| |
También tenemos estas sesiones, una especie de divertidas, donde se anima a los desarrolladores a romper el código, |
| |
Bien, se llaman así, estos desafíos de descifrar código, o algo así. Se han convertido en parte de nuestro modus operandi y todo encaja a la perfección con este entorno de desarrollo. Esto lleva, por ejemplo, a añadir más pruebas, como las de Hamcrest. Tenemos un proyecto pequeño, bastante pequeño. |
| |
que hicimos hace poco más de un año. Estamos entrando en una nueva fase. Ya ha pasado bastante tiempo... |
| |
Tiene integradas más de 100 pruebas Hamcrest y se ejecutan una y otra vez durante el proceso de desarrollo. |
| |
Otra ventaja es que nos permite asignar y rastrear la asignación de recursos, como qué hacen los desarrolladores. Todos saben qué hacen los demás. |
| |
integración continua, despliegue continuo, algo así), |
| |
Las colisiones de código se detectan con antelación, así que si tenemos... y lo tenemos, tenemos varias personas trabajando en algunos proyectos, así que, ya sabes, si alguien modifica una función aquí y colisiona con algo que alguien más está haciendo, lo descubriremos mucho antes. |
| |
También nos permite mejorar la compatibilidad entre varios miembros del personal. No podemos tener código que dependa de un desarrollador en particular; debemos tener código que cualquier desarrollador o miembro del personal de soporte pueda soportar. |
| |
Avanzando. Ese también fue un objetivo importante para nosotros. Y, en general, impulsa el área de control de calidad. |
| |
Incluyendo el cumplimiento de los requisitos de la FDA en cuanto al control de calidad, aspectos como la validación, el IQ, el OQ, el PQ. Así que estamos automatizando o semiautomatizando... |
| |
Esas tareas también se realizan a través de esta infraestructura. La usamos interna y externamente, así que, como sabrán, tenemos... |
| |
algunos productos por ahí, (???)Kobe sash lab pero los nuevos spam también. Kobe envía spam (???) también se habla de ellos en otros lugares. |
| |
en la Conferencia Europea JMP Discovery en 2021. Quizás quieras ir a echarles un vistazo, pero son bastante grandes. |
| |
bases de código y todas están desarrolladas, en otras palabras, comemos nuestra propia comida para perros, si conoces esa expresión, pero también la usamos con todos nuestros clientes |
| |
desarrollo, por lo que esto es algo importante para nuestros clientes, porque estamos creando aplicaciones de las que dependerán. |
| |
Y entonces nosotros necesitamos... necesitamos tener la infraestructura que nos permita ser confiables, y de todos modos, eso es una gran parte de esto. |
| |
Mencioné el marco del sistema Predictum. Puedes ver algunos fragmentos aquí. Está dentro del índice de scripts, y, como sabes, vemos los argumentos y... |
| |
Ejemplos y todo eso. Lo hemos integrado todo y más del 95% de ellos tienen pruebas de Hamcrest asociadas. Por supuesto, nuestro objetivo es asegurarnos de que todos las tengan, y lo estamos consiguiendo. |
| |
Ya casi lo logramos. Este marco forma parte de nuestra infraestructura. Es uno de sus elementos más importantes. Otro es Hamcrest... |
| |
La capacidad de realizar pruebas unitarias. Y voy a tener... hay una diapositiva al final, que les dará un enlace a la Comunidad donde pueden aprender más sobre Hamcrest. Esta es una |
| |
El desarrollo que nos trajo JMP, allá por JMP 14, como mencioné hace unos minutos. Gitlab es una parte importante de esto; nos proporciona el repositorio de gestión de proyectos, la canalización de CI/CD, etc. |
| |
Y también hay una extensión visual... de Visual Studio Code para JSL que creamos y... ves cinco estrellas ahí porque le dieron cinco estrellas en el... |
| |
en Visual Studio. No estoy seguro de cómo se llama eso. Vince, quizás puedas decirnos, la tienda, lo que sea. Se ha descargado cientos de veces y hemos estado... |
| |
Se actualiza periódicamente. Así que también puedes buscarlo. Creo que tenemos un enlace en la diapositiva de recursos al final. |
| |
Así que lo que voy a hacer ahora es pasarle esto a Vince Faller. Vince es, de nuevo, nuestro ingeniero jefe de software. Vince lideró esta iniciativa, a partir de agosto de 2019, como dije. Fue un trabajo muy duro y... |
| |
El trabajo duro continúa. En la empresa, estamos muy agradecidos con Vince y su liderazgo. Dicho esto, Vince, ¿por qué no te encargas tú? Voy a... |
| |
Soy... |
| Vince Faller |
Intercambio. |
| |
Wayne mencionó Hamcrest varias veces. Para quienes no saben qué es Hamcrest, es un complemento creado por... |
| |
JMP. |
| |
Justin Chilton y Evan McCorkle lo dirigieron. Es una biblioteca de pruebas unitarias que permite ejecutar, probar y obtener resultados de forma automatizada. |
| |
Realmente fue el inicio de que pudiéramos hacer esto, de ahí que se llame extender. |
| |
Voy a mostrar algunas cosas. |
| |
Con mi pantalla. Trabajo prácticamente exclusivamente con la extensión de VSCode que creamos. Esto es VSCode. |
| |
Hacemos esto porque tiene muchas funciones integradas o extensibles que no tenemos que escribir, como obtener integración o obtener integración de laboratorio. |
| |
Aquí puedes ver que es un script JSL y lo lee perfectamente. |
| |
Si quieres conseguirlo, si estás familiarizado con VSCode, es simplemente un editor de texto ligero. Simplemente escribe JMP. |
| |
y lo verás. Es el único. |
| |
Pero vayamos a lo que estamos haciendo. |
| |
Entonces. |
| |
Para cualquier cambio de código que realicemos, |
| |
Hay un oleoducto en funcionamiento. |
| |
Simplemente mostraremos brevemente su función. Si cambio el archivo README a "Esta es una demostración de Discovery". |
| |
2021. |
| |
Y simplemente voy a comprometerme con eso. Si no sabes cómo conseguirlo, comprométete como si nada. |
| |
diciendo que quiero una instantánea de exactamente dónde estamos en este momento y luego la envía al repositorio y la guarda en el servidor. |
| |
Feliz día. |
| |
Mensaje de confirmación. Más información en el archivo Léame. |
| |
Y puedo simplemente recibir un push, porque VSCode es increíble. |
| |
Demostración de tubería. |
| |
Ya lo he enviado. Habrá una canalización en ejecución. Puedo ir aquí abajo y hacer clic aquí y me dará mi solicitud de fusión. Ahora... |
| |
El oleoducto empezó a funcionar. |
| |
Puedo comprobar el estado de la tubería. |
| |
Lo que está haciendo ahora mismo es verificar que tenga los archivos Hamcrest necesarios. Tenemos algunos requisitos que... |
| |
Hacemos cumplir para que pueda... |
| |
Podemos asegurarnos de que estamos |
| |
haciendo bien nuestro trabajo |
| |
Y ya está. Voy a presionar cifrar. |
| |
Ahora, Encrypt tomará el paquete completo y lo cifrará. |
| |
Si vamos aquí, |
| |
Esto es solo una máquina virtual en algún lugar. Debería |
| |
empezar a correr |
| |
en un segundo. |
| |
Así que simplemente se trata de revisar todo el código. |
| |
Escribir todas las contraseñas cifradas, revisarlas, hacer clic en todo eso. Si alguna vez has intentado cifrar varios scripts a la vez, |
| |
Probablemente sabrás que eso es una molestia, así que lo automatizamos para no tener que hacerlo porque, como dijo Wayne, nos estaba tomando mucho tiempo hacer esto. |
| |
Por ejemplo, si tuviéramos que revisar 100 scripts y cifrar cada uno de ellos cada vez que quisiéramos hacer un lanzamiento, sería horrible. |
| |
Porque tenemos que tener nuestro |
| |
Código encriptado porque, sí, lo siento, opinión, está bien, puedo dejar de compartir eso. |
| |
Ah. |
| |
Así que esto va a funcionar. |
| |
Debería terminar muy pronto. |
| |
Luego lo revisará y lo preparará, y luego la preparación básicamente toma todas las fuentes de información que queremos, como en nuestra documentación, como en |
| |
cualquier otra cosa que hayamos escrito, y los representa en el formato que queremos en el complemento, porque al igual que el resto de GitHub, GitLab, la mayor parte de nuestra documentación está escrita en Markdown y luego la representamos en lo que sea. |
| |
No necesito mostrar el resto, pero sí. Está pasando. Se irá. |
| |
Regresaremos a VSCode. |
| |
Entonces. |
| |
Si cambiáramos, ésta sería sólo una única función. |
| |
Si entro aquí como, si fuera a ejecutar esto... |
| |
JSL, ejecutar la selección actual. |
| |
Entonces. |
| |
Puedes ver que regresó... solo intenta abrir Big Class, ejecutar una línea de ajuste y obtener la ecuación. La está devolviendo. |
| |
Y realmente puedes ver que pasó por aquí también. |
| |
Pero. |
| |
Así que esto podría necesitar algo más de documentación. |
| |
Y pensamos: "Oh, en realidad no queremos que esta tabla de datos esté abierta". |
| |
Pero vamos a ejecutar esto rápidamente. |
| |
Y di, |
| |
No. Este no es un buen retorno, aparentemente cambia la ecuación a mayúsculas. |
| |
Entonces si lo pongo en escena. |
| |
Mejor documentación. |
| |
Empujar. |
| |
De nuevo de vuelta aquí. |
| |
Así que, de nuevo, se está impulsando. Este es otro conducto. |
| |
Simplemente se trata de ejecutar un montón de scripts de Power Shell en orden, dependiendo de cómo lo configuremos. |
| |
Pero notarás que este pipeline tiene más etapas. |
| |
Así que cuando nosotros |
| |
En un esfuerzo por ayudar a escalar esto, solo probamos el JSL. |
| |
Al principio mínimamente, y luego, a medida que pasa, permitimos hacer más pruebas. |
| |
Y sólo probamos si hay archivos JSL que hayan cambiado. |
| |
Pero podemos superar esto. |
| |
Se ejecutará y nos indicará en qué punto de la prueba se encuentra, por si acaso se bloquea. Si un cuadro de diálogo modal no se cierra, obviamente JMP no seguirá haciendo nada después. Pero, como pueden ver, hizo un montón de cosas. ¡Genial! Ya terminé. |
| |
Emocionante. |
| |
Actualízalo. Consigue una pequeña marca de verificación verde. |
| |
Podríamos ejecutarlo todo ahora. Lo revisaríamos, lo probaríamos todo, lo cifraríamos, probaríamos el cifrado, básicamente, el complemento que crearíamos, lo prepararíamos de nuevo, lo empaquetaríamos y crearíamos el complemento que le entregaríamos al cliente. |
| |
No lo voy a hacer muy rápido porque lleva un minuto. |
| |
Pero |
| |
Digamos que entramos aquí y decimos, oh, |
| |
Bueno, realmente quiero cerrar esta tabla de datos. No sé por qué comenté al principio. No creo que deba estar abierta, porque ya no la uso, no... no queremos eso. |
| |
Diremos que está bien. |
| |
Cierra el dt. |
| |
Empuja de nuevo. Ahora, todo esto se puede hacer manualmente en mi ordenador con Hamcrest. |
| |
Pero, ya sabes, a veces un desarrollador envía cosas y no ejecuta todo su Hamcrest en su computadora, y este es... el propósito es detectarlo. Nos obligó a mejorar nuestro trabajo. |
| |
Y |
| |
sí. |
| |
Sigue haciendo clic en este botón. Podría abrirlo, pero está bien. |
| |
Ahora verás que la tubería se está ejecutando de nuevo. Ve a la tubería. |
| |
Y lo repetiré una y otra vez. Simplemente estamos revisando, probando y encriptando, y luego probando. |
| |
Porque a veces el cifrado entra por sí solo. |
| |
mundo de problemas, si alguien alguna vez ha hecho cifrado. |
| |
Corre, corre, corre, corre, corre. |
| |
Y luego, oh, nos dieron un tiro. ¿Lo verías? |
| |
No estoy tratando de ser inexpresivo, pero ya sabes. |
| |
Entonces, si marcáramos esto como listo y dijéramos, sí, hemos terminado, ya veremos, |
| |
Oh, bueno, esa prueba no pasó. |
| |
Ahora |
| |
Podríamos descargar |
| |
Por qué no pasó la prueba en los artefactos. |
| |
Y esto abrirá una unidad J |
| |
archivo que voy a sacar aquí. |
| |
También lo renderizará en getlab, lo que podría ser más fácil, pero por ahora solo haremos esto. |
| |
Finalmente. Minimiza todo. |
| |
Ahora vamos. |
| |
Entonces, pudimos ver que algo sucedió con R al cuadrado y falló. |
| |
Adentro |
| |
de azul. |
| |
Así que podemos venir aquí. |
| |
Dime, ¿por qué hay algo en boo que esté provocando que esto falle? |
| |
Vemos, oh, alguien llamó a nuestra ecuación. |
| |
Y luego asumieron que la tabla de datos estaba ahí. Así que, como algo que cambié, rompió el código de otra persona, como si eso fuera a pasar. |
| |
Así que estamos teniendo ese problema. |
| |
¿Adónde fuiste? Aquí vamos. |
| |
Así que ese es el propósito principal de todo lo que hacemos aquí: poder detectar el hecho de que cambié algo y rompí las cosas de otra persona. |
| |
Así que pude pasar. |
| |
Mira lo que hace Boo. |
| |
Bueno, quizás debería abrir Big Class. |
| |
mí mismo. |
| |
Sí, genial. Bueno, si lo guardo, |
| |
Probablemente debería hacerlo mejor. |
| |
Abriré Big Class yo mismo. |
| |
Voy a ponerlo en escena. |
| |
Clase grande abierta.Recibe empujón. |
| |
Y de nuevo, simplemente muestra |
| |
El viejo oleoducto. |
| |
Ahora esto debería tomar |
| |
no...no demasiado tiempo. |
| |
Así que vamos a entrar aquí. Solo haremos una prueba... a... |
| |
Versión JMP, pero puedes ver |
| |
Automáticamente solo probamos en uno. |
| |
Luego espera a que el desarrollador diga: "Sí, ya terminé y todo se ve bien. Continúa". Lo hacemos por razones de recursos. |
| |
porque se ejecutan en máquinas virtuales que funcionan automáticamente todo el tiempo y tenemos varios desarrolladores que usan estos sistemas. |
| |
Nosotros también somos... |
| |
Como puedes ver, este es en realidad un sistema Docker, estamos guardándolos en contenedores. |
| |
Bueno, estamos en proceso de contenerizarlos. Ya están funcionando, pero aún no tenemos todas las versiones. |
| |
Pero ejecutamos 14.3, al menos para este proyecto, ejecutamos 14.3, 15, 15.1, |
| |
Y eso debería funcionar. |
| |
Simplemente vamos a revertir las cosas. |
| |
Porque eso ya sabes que funciona. |
| |
Probablemente debería haber hecho un clásico...pero está bien. |
| |
Así que sí. |
| |
Vamos a hacer pruebas. |
| |
Siento que lo repito una y otra vez. Vamos a probarlo todo. |
| |
De hecho, dejaremos que esto se ejecute para mostrarle el resultado final de lo que obtenemos. |
| |
Sólo debería tomar. |
| |
un poco. |
| |
Así que probaremos esto, nos aseguraremos de que funcione y podrán ver los registros. Obtenemos información precisa sobre lo que sucede y su ubicación, por ejemplo, indicando quién está corriendo. |
| |
Por ahora solo estoy usando Windows. De nuevo, es una demostración y todo eso, pero... |
| |
Deberíamos poder correr |
| |
más. |
| |
Mientras tanto, hablaré un poco más sobre VSCode. |
| |
En VSCode, también... también hay fragmentos y cosas, así que si quieres crear una función, |
| |
Te creará toda la información de la función. Usamos documentos naturales. |
| |
De nuevo, eso fue robado del equipo de Hamcrest, |
| |
como nuestro |
| |
documentación de desarrollo. |
| |
Así que todo se pondrá en formato de documentos naturales. La idea, repito, es ayudarnos a hacer nuestro trabajo y obligarnos a hacerlo. |
| |
Un poco mejor, con un poco más de entusiasmo. |
| Wayne Levin |
¿Para la documentación? |
| Vince Faller |
Así que eso es para la documentación, sí. |
| Wayne Levin |
A medida que desarrollamos, vamos documentando al mismo tiempo. |
| Vince Faller |
Sí. Por supuesto. |
| |
Ya sabes, también tiene bucles for y bucles while. |
| |
Para una fila asociada, cosas así. |
| |
¿Ya... ya está... ya está hecho? Probablemente ya esté hecho, sí. |
| |
Así que obtenemos nuestra marca de verificación verde. Ahora se ejecutará en todos los sistemas. |
| |
Si pudiéramos regresar aquí, lo verías. |
| |
Abra JMP. Se ejecutarán algunas pruebas. |
| |
Probablemente abrirá Big Class. |
| |
Entonces cierra todo...ciérrate todo. |
| Wayne Levin |
Así que estamos haciendo esto, en gran parte porque... |
| |
Muchos de nuestros clientes tienen diferentes versiones de JMP implementadas y desean un complemento en particular, pero no están seguros. |
| |
Al ejecutarlo, tienen diferentes versiones disponibles. También probamos con las primeras versiones de JMP, que es un servicio para JMP porque informamos de errores. |
| |
Pero también es útil para los clientes, ya que saben que pueden actualizar a la nueva versión de JMP. Saben que las aplicaciones que desarrollamos para ellos han sido probadas. |
| |
Y eso es simplemente rutina para nosotros. |
| |
Bien. |
| Vince Faller |
Estás terminado. Estás terminado. Estás terminado. |
| |
Cambiar a... |
| |
Puedo hablar de... |
| |
Y esto simplemente va a correr, podemos |
| |
Magia de película, esto si lo deseas, Meg. |
| |
Sólo para hacerlo correr más rápido. |
| |
Básicamente sólo quiero llegar al escenario pero me lleva un segundo. |
| |
¿Hay algo más que decir al respecto, Wayne? |
| |
Fresco. |
| |
Lo pondré... |
| |
Algo que puedo decir, |
| |
Cuando estamos en escena, |
| |
También tenemos nuestra documentación en mk docs. Así que ejecutará la versión de mk doc, la renderizará, incluirá la ayuda en los archivos de ayuda y, básicamente, podrá crear una versión para nosotros, para que no tengamos que... |
| |
lidiar con ello |
| |
Porque crear lanzamientos es un gran esfuerzo. |
| |
Encriptando. Ya casi está listo. |
| |
Probablemente debería haber tenido uno precargado. |
| |
Demostraciones en vivo, ¿qué vas a hacer? |
| |
Alguno. |
| |
Correr. |
| |
Oh, una cosa que definitivamente quiero hacer. |
| |
Entonces, lo último que hace el pipeline es verificar que realmente dedicamos nuestro tiempo, porque, ya sabes, si |
| |
En realidad no registramos el tiempo que invertimos y no nos pagan, por lo que nos obligan a hacerlo. |
| |
Genial, gran momento. |
| Win Falls |
Entonces |
| Vince Faller |
El trabajo habría fracasado sin eso. |
| |
Puedo mostrarte algunos trabajos. Lo estoy intentando. |
| |
Ese es el de Docker. No lo queremos. |
| |
Entonces |
| |
Se puede ver que eso nos dio nuestros éxitos. |
| |
Sin fallos. Sin lanzamientos inesperados. Todo gracias a Hamcrest. |
| |
Vamos. Uno más. |
| |
Bueno, vamos a la puesta en escena. |
| |
Una cosa que hace es crear los repositorios. |
| |
Los crea frescos cada vez. |
| |
Entonces, es como si intentara mantenerlo en una especie de estado sin estado. |
| |
Bien, ahora podemos descargar los artefactos. |
| |
Y ahora deberíamos tener esta demostración de tubería. |
| |
Realmente me hubiera gustado que hubiera ido allí. |
| |
Qué. |
| |
¿Por qué está activo Internet Explorer? Ahora verás una demostración de la canalización. |
| |
es un complemento JMP. |
| |
Si lo descomprimimos. |
| |
Si no lo sabías, un complemento JMP es simplemente un archivo zip. |
| |
Si lo vemos ahora, |
| |
Puedes ver que contiene todos nuestros scripts, incluyendo nuestro foo y nuestro bar. Si los abrimos, |
| |
abierto, |
| |
Puedes ver que es un archivo cifrado. |
| |
Así que esto es básicamente lo que podríamos ofrecer al cliente. |
| |
y no tener tanto trabajo mecánico. Wayne mencionó que |
| |
Son desarrolladores menos frustrados y, personalmente, creo que eso es quedarse corto, porque hacer esto una y otra vez era muy frustrante antes de que lo tuviéramos en funcionamiento, y esto ha ayudado mucho. |
| |
Eso. |
| Wayne Levin |
Ahora, sobre el cifrado, cuando se entrega un complemento |
| |
Para uso de los usuarios dentro de una empresa, normalmente no desea, por razones de seguridad, etc., que nadie pueda entrar y |
| |
Gestionar el código. Ese tipo de cosas. Podemos entregar un código sin cifrar para que el cliente tenga su código cifrado, pero para la entrega al usuario final, normalmente se desea que todo esté cifrado para que no pueda ser manipulado. Una de esas cosas. |
| Vince Faller |
Sí, y con esto termina mi demo. Wayne, si quieres retomarla para el cierre. |
| Wayne Levin |
Sí, fantástico. |
| |
Claro, muchas gracias por eso, Vince. Hay muchas partes móviles en todo este sistema, así que, básicamente, se trata de asegurarnos de que tengamos... |
| |
Ya sabes, código desarrollado por varios usuarios sin interferencias. Estamos desarrollando la documentación simultáneamente. Y, de hecho, la documentación se implementa con la aplicación y no tenemos que integrarla. Es... |
| |
Configuramos la infraestructura para que se gestione automáticamente. Podemos actualizarla, junto con el código, de forma completa y simultánea. |
| |
Por así decirlo. Las pruebas de Hamcrest que se están realizando, cada una de esas funciones que están escritas, |
| |
Hay resultados esperados, por así decirlo. Así que se comparan, y vimos brevemente que había, supongo, un problema con esa ecuación. Un R cuadrado o lo que sea arrojó un valor diferente. |
| |
Entonces se rompió, en otras palabras, para decir oye, algo no está bien aquí; estaba esperando esta salida de la función |
| |
para un caso de uso. Esa es una de las cosas que recibimos de nuestros clientes: creamos un conjunto de casos de uso que se convierten en pruebas de Hamcrest y listo. Hay otras diapositivas aquí que... |
| |
Están disponibles para ti cuando descargues las diapositivas. Así que las dejo disponibles y aquí tienes una pequeña imagen del proceso. |
| |
Lo que estamos usando y también un poco sobre la actividad de revisión de código para desarrolladores. Si quieres hablar sobre ello, Vince, ¿quieres añadir algo sobre cómo se lleva a cabo la revisión y aprobación del código? |
| Vince Faller |
Sí, entonces dentro de la solicitud de fusión |
| |
Tendrá el código JSL en las diferencias del código. Y, de nuevo, un gran |
| |
gracias a |
| |
la gente que también hizo Hamcrest, porque también iniciaron un analizador léxico(?) para GitHub y GitLab para poder leer JSL, así que en realidad esto está dentro de getlab. |
| |
Y también pueden leer el JSL. No lo ejecuta, pero tiene un buen formato. No es solo texto blanco, es precioso. Simplemente entraremos... |
| |
Como en esta captura de pantalla, haces clic en una línea, añades el comentario que quieras y se convierte en una tarea revisable. Así que intentamos hacer todo lo posible dentro de GitLab. |
| |
por razones de transparencia, y |
| |
Una vez que todo esté cerrado, puedes decir "Sí, mi solicitud de fusión está lista". Vamos a colocarla en la rama maestra, la rama principal. |
| Wayne Levin |
¡Genial! Así que realmente... está ayudando, ya sabes, estamos definiendo estándares de codificación, por así decirlo, y |
| |
No me gusta la palabra "ejecución", pero a eso se reduce. Y reduce la variación. Facilita que varios desarrolladores, por así decirlo, comprendan qué... |
| |
Lo que otros han hecho. Y a medida que incorporamos nuevos desarrolladores, comprenden el estándar y saben qué buscar y qué hacer. |
| |
Entonces, hace que la incorporación sea mucho más fácil y, nuevamente, se ocupa de que todo esté conectado a todo aquí, por lo que conoce la capacidad de soporte, etc. |
| |
Esta es la diapositiva que mencioné antes, solo para algunos recursos, así que usamos GitLab. Supongo que los mismos principios se aplican a cualquier Git en general, como GitHub o similares. Aquí está el enlace de la comunidad de Hamcrest. Hubo una charla en |
| |
En Tucson, eso fue en 2019, cuando solíamos viajar y reunirnos. Fue muy divertido. Y aquí está el enlace del Marketplace para las imágenes: Visual Code Studio. |
| |
Código de Visual Studio, etc. |
| |
Como dijo Vince, sí, usamos mucho ese editor, a diferencia del editor JMP integrado, simplemente porque está todo integrado. Es... |
| |
Todo forma parte de un gran entorno de desarrollo de aplicaciones. Y con esto, Vince y yo, en nombre de Vince y mío, queremos agradecerles su interés en esto y, de nuevo, queremos agradecer al equipo de JMP. Justin Chilton y compañía. |
| |
Te llamaré. Si no fuera por Hamcrest, no estaríamos en esto. Eso fue... |
| |
la pieza faltante o fue la pieza habilitadora que realmente nos permitió llevar el desarrollo de JSL a, |
| |
Básicamente, los estándares que se esperan en el desarrollo de código, generalmente en la industria. Así que estamos muy agradecidos por ello, y sé que... |
| |
Ya sabes, eso se propaga con cada aplicación que implementamos. Y en este punto, Vince y yo estaremos encantados de responder cualquier pregunta que... |
| |
info@predictum.com y nos lo reenviarán y nos pondremos en contacto contigo. En este punto, abriremos una sesión de preguntas y respuestas. |