Video Summary and Transcription
Esta charla proporciona consejos para seleccionar la biblioteca de código abierto correcta, como usar las tendencias de NPM para comparar bibliotecas y considerar el tamaño del paquete, las dependencias y las licencias. También enfatiza la importancia de elegir bibliotecas mantenidas por varios mantenedores y ser cauteloso al confiar en los ingenieros. La charla destaca una historia de precaución sobre confiar en un solo mantenedor y sugiere prestar atención a los cambios en las versiones principales y especificar las versiones exactas en las dependencias para mitigar las vulnerabilidades de seguridad.
1. Introducción a la Selección de Bibliotecas de Código Abierto
En esta charla, discutiremos cómo seleccionar la biblioteca de código abierto correcta para tus necesidades. Comenzaremos con un ejemplo de implementación de formularios en React y exploraremos consejos para elegir la mejor biblioteca. Un consejo es utilizar las tendencias de NPM para comparar diferentes bibliotecas basándonos en estadísticas como la fecha de creación, estrellas, última actualización, bugs abiertos y tamaño del paquete.
Hola a todos, y bienvenidos a la charla, ¿Es la Uno? O, en otras palabras, ¿Cómo Seleccionar una Biblioteca de Código Abierto? Mi nombre es Karen Kenzie. Soy una ingeniera de software senior. Me encanta ser voluntaria en diferentes iniciativas para ayudar a las mujeres en I+D en su crecimiento profesional. Soy voluntaria como co-gestora de dos programas. Uno es la Masterclass de Blogs Tecnológicos, y el otro es Codefest. Me encanta compartir conocimientos y me encanta estudiar nuevas tecnologías y psicología.
Y hoy vamos a hablar de cómo seleccionar una biblioteca de código abierto. Te daré consejos para ayudarte a seleccionar la que es correcta para ti. Y comenzaremos con un ejemplo. Digamos, por ejemplo, que somos desarrolladores front-end, estamos usando React, y necesitamos implementar algún tipo de formularios. Ahora, los formularios pueden complicarse, especialmente si tienen diferentes tipos de campos de entrada, si tienen varios pasos. Y no necesitamos gestionar todo nosotros mismos. Hay excelentes bibliotecas ahí fuera que pueden ayudarnos a hacer exactamente eso. Entonces, ¿cómo eliges la correcta para ti? Consejo número uno, ve a las tendencias de NPM. Puedes escanear este QR, y te redirigirá a las tendencias de NPM. Y lo que verás allí es una forma de comparar entre diferentes bibliotecas de código abierto. Por ejemplo, digamos que tu colega recomendó usar el formulario React, que actualmente es la biblioteca líder en gestión de formularios. Entonces, las Tendencias de React, una vez que haces clic aquí, en el nombre, escribe el nombre, te recomendarán bibliotecas similares para comparar. Puedes ver aquí que Formic está en segundo lugar, y hay otras bibliotecas que puedes comparar. Algo importante a tener en cuenta. NPM te mostrará estadísticas, por ejemplo. Te mostrará cuándo se creó la biblioteca. Te mostrará cuántas estrellas tiene la biblioteca, cuándo fue la última actualización. Cuando eliges una biblioteca, quieres asegurarte de seleccionar una biblioteca de código abierto que esté bien mantenida, es decir, que se mantenga actualizada, que no, la última vez que se mantuvo fue, por ejemplo, si echamos un vistazo a ReactUK form, se mantuvo recientemente. Quieres comprobar también el número de bugs abiertos, que aparece aquí. Puedes ver que ReactUK form, por ejemplo, solo tiene 24 bugs abiertos, lo que significa que está realmente bien mantenida. Y otra cosa a comprobar es el tamaño del paquete. Puedes ver aquí el tamaño minificado. Si haces clic en la estadística, te redirigirá a otro sitio web importante, que es BundlePhobia. Este es el QR que te llevará allí, y si echas un vistazo, por ejemplo, en BundlePhobia, en el paquete
2. Consideraciones para Seleccionar Bibliotecas de Código Abierto
Al seleccionar una biblioteca de código abierto, es importante considerar el tamaño del paquete, las dependencias y la licencia. Tener menos dependencias puede reducir el riesgo de vulnerabilidades de seguridad. Además, es aconsejable elegir una biblioteca mantenida por varios mantenedores y ser cauteloso al confiar en los ingenieros. Una historia de precaución destaca los posibles riesgos de confiar en un solo mantenedor. Es crucial prestar atención a los cambios, especialmente en las versiones mayores, y especificar la versión exacta en tus dependencias. Considera especificar un rango de versión o utilizar características del gestor de paquetes como NPM overrides o yarn resolution para mitigar las vulnerabilidades de seguridad. Estos consejos pueden ayudarte a tomar decisiones informadas al seleccionar y utilizar bibliotecas de código abierto.
tamaño de ReactUK form, se muestra diferente tipo de información. Puedes ver el tamaño del paquete, minimizado, y también puedes ver el tiempo de descarga, y una cosa importante a verificar son las dependencias. Aquí abajo, puedes ver la composición. Puedes ver las dependencias de la biblioteca. Aquí puedes ver que ReactUK form no tiene dependencias, y si lo comparas, por ejemplo, con Formic, puedes ver que Formic depende de lodash ES y otras bibliotecas. Ahora, no significa que una sea mejor que otra, pero significa que podría introducir, por ejemplo, vulnerabilidades de security, si una de las dependencias en el árbol tiene vulnerabilidades de security, por lo que es mejor tener menos dependencias. Ahora, un dato curioso, si observas el gráfico de las tendencias de npm a lo largo de los años, puedes ver que siempre hay una caída aquí al comienzo del nuevo año, lo cual es realmente bueno, creo que significa que los programadores dejan la computadora atrás y están ocupados celebrando el año nuevo, y es un gran consejo tomarse un tiempo para relajarse, recargar energías y recuperar algo de energía. Así que hablemos de otra cosa que necesitas verificar cuando eliges una biblioteca de open-source. Diferentes bibliotecas de open-source tienen diferentes tipos de licencias de open-source. Puedes escanear este QR y te llevará al sitio web que especifica todas las diferentes licencias que una biblioteca de open-source puede tener. Ahora, presta atención a que si usas una biblioteca con un cierto tipo de licencia, podría requerir que compartas tu propio código. Podría requerir que publiques tu propio código bajo la misma licencia. Es realmente también importante verificar antes de usar o modificar código de bibliotecas de open-source. Ahora, ¿qué pasa con los mantenedores de la biblioteca de open-source? ¿Deberías confiar en ellos? El mejor consejo es elegir una biblioteca que sea mantenida por varios mantenedores y no solo uno. También deberías ser un poco cauteloso al confiar en los ingenieros. La mayoría de nosotros somos buenas personas y no queremos hacerte daño, pero hay quienes de repente deciden tal vez entrar y publicar bucles infinitos en su código o incluso eliminar todo el repositorio. Así que una historia de precaución. En enero de 2022, el mantenedor de una de las bibliotecas de open-source más populares decidió que ya había tenido suficiente de una empresa que usaba su proyecto sin pagar por ello, grandes empresas por supuesto, no el individuo, y decidió que publicaría una nueva versión, la llamó Komit Endgame, y le dio el número 666. Puedes adivinar por el número de versión que probablemente contenía algo malo. Así que en esta versión, todos los que instalaron la última versión obtuvieron todo el repositorio de esta biblioteca eliminado. Puedes ver que tiene millones de descargas semanales, también puedes ver la licencia y todo, pero es realmente importante prestar atención a cuáles son los cambios, especialmente en las versiones mayores, que se introducen en la biblioteca de código abierto que eliges. Ahora, este mantenedor no solo era mantenedor de Faker, que es la biblioteca que la empresa usaba para falsificar data, para generar data falsa, también era el mantenedor de otra biblioteca de código abierto llamada Colors. Ahora podrías pensar que, oh, está bien, no uso Colors, pero tal vez una de tus dependencias en el árbol usa esta biblioteca. Así que lo que hizo allí es publicar una versión, en la que insertó un bucle infinito que causó denegación de servicio, y muchas personas tenían esta biblioteca en su árbol de dependencias. Así que causó muchos problemas y ni siquiera era una versión mayor. Así que realmente necesitas tomarlo como una historia de precaución y recordar, especifica la versión exacta en tus dependencias, no solo tomes automáticamente la última versión, espera un poco para escuchar a la community, cómo es la última versión, verifica la dependencia si tienes tiempo, y esta es una muy buena lección. Y si temes que en algún lugar de tu árbol de dependencias anidadas pueda haber una vulnerabilidad de security o algo así, también puedes especificar el rango de versión que quieres instalar y si lo permites también puedes especificar una versión específica que quieres instalar utilizando ya sea NPN overrides o si estás usando yarn, la resolución de yarn. Así que esos son mis tips, a qué debes prestar atención al seleccionar una biblioteca, y una vez que la selecciones no instales automáticamente la última actualización. Si tienes otros tips, si quieres compartir cómo seleccionas tu propia biblioteca para usar, por favor compártelo conmigo, estaré encantado de escuchar y también estaré encantado de escuchar cuál es tu biblioteca de código abierto favorita. Así que muchas gracias por unirte a esta masterclass, espero que hayas aprendido algo nuevo, y disfruta y ten un gran día.
Comments