Muchas gracias por estar aquí. Mi nombre es Xuxa Ruiz. Soy de México y vivo en Suiza. Soy un Java Champion. Trabajo para una empresa, Jfrog.
La presentación de hoy trata sobre una parte clave de nuestro proceso de desarrollo de software, las dependencias. No necesitamos reinventar la rueda cada vez que queremos lograr un nuevo nivel de funcionalidad o entregar software más rápido. Queremos y reutilizamos software escrito por otros todos los días, dependencias de software. Y son una parte integral del ciclo de desarrollo de software. Se utilizarán en diferentes etapas, desarrollo, runtime o ejecución y testing. Pero no todas son iguales.
Así que les voy a presentar dos afirmaciones y ustedes me dirán si son verdaderas o falsas. Las dependencias son colecciones que contienen código probado de alta calidad que proporciona funcionalidad que requiere una experiencia significativa para desarrollar. Verdadero. Los gestores de dependencias como NPM han hecho posible que la funcionalidad casi trivial se pueda empaquetar y publicar. Verdadero. Estos son los dos extremos del espectro en términos de cómo se proporciona la funcionalidad mediante dependencias.
Sabemos que hay diferentes tipos de dependencias. Para esta charla súper rápida, solo las mencionaré. Bibliotecas de frameworks, modules de paquetes y recursos. Y tenemos un ejemplo muy claro en Angular, que es una plataforma, y React, que es una biblioteca. Por lo tanto, ya te están indicando el nivel de integración entre diferentes componentes funcionales y cuán unidos están. Y por otro lado, esta es una lista de micro-paquetes de NPM que son muy útiles.
Hemos discutido que hay diferentes tipos de dependencias, por lo que con esto también podemos comenzar a pensar en nuestro grado de necesidad, o nivel de dependencia. Podemos crear un mapa de cuáles de nuestras dependencias son cruciales, importantes, cosméticas, fácilmente cambiables o superfluas. Y todo esto nos ayudará a definir los cánones de actualización, el costo de migración o los esfuerzos de limpieza. Y esto es realmente importante durante el proceso de desarrollo y en circunstancias normales, cuando las dependencias están bien. Pero las cosas salen mal y generalmente salen mal. Por lo tanto, agregar una dependencia externaliza el trabajo de desarrollar ese código, diseñar, escribir, testing, depurar, y mantener a otra persona, a menudo a un programador desconocido. Y al usar ese código específico, nuestros programas quedan expuestos a todas las fallas y defectos que existan en nuestra dependencia.
Comments