Video Summary and Transcription
Envinfo y Solidarity son herramientas que ayudan a los desarrolladores a gestionar su entorno de desarrollo de manera más eficiente. Envinfo recopila información sobre el entorno de desarrollo, evitando que los desarrolladores tengan que escribir múltiples comandos. Solidarity proporciona un mayor control a nivel de proyecto, permitiendo a los desarrolladores verificar archivos, variables y manejar complementos personalizados. También ofrece trucos interesantes como el modo 'píntalo de rojo' para mostrar advertencias sin interrumpir el flujo de trabajo. Solidarity es útil para ganchos previos a la confirmación y comprobaciones de configuración de git.
1. Introducción a Envinfo y Solidarity
Hola, mi nombre es Trevor Brendel. Soy un desarrollador y trabajo para Modus Create. Esta presentación se llama Termina tus pesadillas con el entorno de desarrollo con Envinfo y Solidarity. Tu entorno de desarrollo es todo, la suma de todas las herramientas y procesos que utilizas al desarrollar software. Un gran ejemplo es React Native. La pila en sí misma, junto con todas las herramientas de compilación, las herramientas de depuración, todo lo que usas, editores, terminales, navegadores, todo cuenta. Y está creciendo en complejidad y donde hay complejidad, hay errores. Es mucho escribir todos esos comandos. Entonces, ¿cómo lo encuentro? ¿Si necesito saber qué versión de Android SDK tengo? No lo recuerdo y escribí una biblioteca que lo obtiene. Así que esto es parte del infomercial donde aplastamos repollos en una licuadora y tenemos que decir que tiene que haber una mejor manera. Y la hay. Conoce lo que tienes y aplica lo que usas utilizando Envinfo y Solidarity.
Soy un desarrollador y trabajo para Modus Create. Esta presentación se llama Termina tus pesadillas con el entorno de desarrollo con Envinfo y Solidarity. Tu entorno de desarrollo es todo, la suma de todas las herramientas y procesos que utilizas al desarrollar software. Archivos, variables, binarios, aplicaciones, todo, incluso la terminal que usas cuando estás desarrollando tu aplicación.
Un gran ejemplo es React Native. La pila en sí misma, junto con todas las herramientas de compilación, las herramientas de depuración, todo lo que usas, editores, terminales, navegadores, todo cuenta. Y está creciendo en complejidad y donde hay complejidad, hay errores. Entonces, los problemas, funciona en mi computadora, el comando evergreen no encontrado, qué versión tienes, qué versión necesito, y todas las plantillas de problemas. Estas mencionan otra información relevante como el sistema operativo, Node.js, Yarn y las versiones de MPM.
Es mucho escribir todos esos comandos. Entonces, ¿cómo lo encuentro? ¿Si necesito saber qué versión de Android SDK tengo? No lo recuerdo y escribí una biblioteca que lo obtiene. Así que esto es parte del infomercial donde aplastamos repollos en una licuadora y tenemos que decir que tiene que haber una mejor manera. Y la hay. Conoce lo que tienes y aplica lo que usas utilizando Envinfo y Solidarity.
2. Introducción a NVINFO
NVINFO es una herramienta que conglomerates información sobre tu entorno de desarrollo. Comenzó con un script de shell que combina varias herramientas y procesos utilizados en el desarrollo de React Native. Esta información es increíblemente útil ya que ahorra a los desarrolladores tener que escribir múltiples comandos. Se realizan 17 llamadas diferentes en varios binarios del sistema solo para mostrar lo que está en la pantalla, lo que demuestra el poder de nvinfo.
Entonces, NVINFO, ¿qué es exactamente? Retrocedamos un segundo con una historia. Imagina a 5 nuevos desarrolladores que comienzan desde diferentes antecedentes en una aplicación de React Native. Todos teníamos diferentes configuraciones de máquina y React Native es un poco caprichoso a veces. Esto comenzó originalmente con un script de shell que combina el sistema operativo, Xcode, Node.js, MPM, Yarn, todo. Pero me di cuenta de que escribir el comando menos v hasta que voltees la mesa no es muy divertido y eso es muchos comandos para escribir. Luego me di cuenta de que probablemente no éramos los únicos que teníamos este problema, así que escribí un PR a React Native para simplemente darles mi script de shell que usé bajo la información de React Native. Se sugirió que esto probablemente no debería ser nuestra biblioteca. ¿Por qué no lo escribes tú? Y eso hice. Toda la historia está en Medium y en mi blog, nvinfo y oss-story. Y te recomiendo que le eches un vistazo. Entonces, esto es nvinfo. Puede ser un poco anticlimático, pero es increíblemente útil porque nadie realmente ha conglomerado esta información toda de una vez. En realidad, se realizan 17 llamadas diferentes en varios binarios del sistema solo para mostrar lo que está en esta pantalla. Y esto es aproximadamente el 20% de lo que nvinfo puede hacer.
3. Running NVINFO and Using Solidarity
La forma más fácil de ejecutar nvinfo es a través de npx. También puedes instalarlo globalmente o descargar y ejecutar un binario. Solidarity proporciona más control a nivel de proyecto. Es multiplataforma, de bajo impacto, ahorra tiempo y es fácil de empezar a usar. Puedes comprobar archivos, variables y manejar complementos personalizados. La configuración de Solidarity permite mostrar mensajes de error y comprobar versiones. También puedes utilizar trucos interesantes como el modo 'píntalo de rojo' para mostrar advertencias sin interrumpir el flujo de trabajo del desarrollador. Solidarity es útil para ganchos previos a la confirmación y comprobaciones de configuración de git.
Entonces, la forma más fácil de ejecutar nvinfo es a través de npx. Y lo más probable es que ya esté en tu máquina. También puedes instalarlo globalmente o descargar y ejecutar un binario. Incluimos el binario de node allí, solo por conveniencia. Además, hay un proyecto relacionado que es un script de bash para get-env.info y luego lo rediriges directamente a tu bash. También puedes agregarlo directamente como una dependencia en uno de tus proyectos.
Entonces, si quieres hacer eso, puedes importar cualquiera de los ayudantes que NVInfo utiliza internamente y esperarlos y luego mostrarlos en el registro. O puedes ejecutar NVInfo directamente, usando 'run' en un objeto de configuración. Algo que se ve un poco así. Así que eliges cualquier cosa que quieras, CPU, memoria, bash, go, chrome, paquetes npm, y luego lo ejecutas.
Resulta que todos estos proyectos vieron una necesidad definitiva de este tipo de cosas, especialmente en las plantillas de problemas. Ayudando a los mantenedores a obtener mejor información para ayudar a las personas mejor. Entonces, ¿qué pasa si necesitas más control a nivel de proyecto en lugar de simplemente ejecutar un script? Quieres usar Solidarity. Entonces Solidarity es multiplataforma, de bajo impacto, ahorra tiempo y es muy fácil de empezar a usar. Puedes comprobar archivos, variables, cualquier cosa que puedas volcar en una CLI o shell, y también manejar complementos personalizados. Así que empezar con Solidarity es fácil. Lo instalas, creas un archivo .solidarity y luego lo ejecutas.
Entonces esta es la configuración. Creas un objeto de requisitos, lo nombras Yarn, o NPM, o lo que sea, le das un semver para buscar y un posible mensaje de error. Lo interesante aquí es que realmente podemos agregarlo como plantillas, la versión instalada y la versión deseada, para que puedas dar a tus desarrolladores mensajes de error increíbles que puedan copiar y pegar en scripts que lo solucionarán por ellos. Así es como funciona. Puedes comprobar Node, el binario de NPM, ambos se verificaron. El binario de Yarn en realidad está por delante de lo que debería ser para este proyecto, y sabemos que Yarn no es necesariamente determinista si no está en la misma versión. Entonces las comprobaciones de Solidarity fallaron. Podemos copiar y pegar ese script de curl, y luego se verificará. Entonces, ¿qué pasa si realmente queremos esa versión 1.6, queremos actualizar? Bueno, simplemente ejecuta 'solidarity snapshot' y luego establecerá Yarn en esa versión. Ejecútalo de nuevo y todo se verifica. Algunos trucos interesantes que puedes hacer. Lo llamo modo 'píntalo de rojo'. Se llama código de escape no terminado, así que si sabes algo sobre terminales, busca los códigos de escape de terminal y puedes usar eso en tu script. No lo termines, así que en tu gancho de pre-compilación de NPM, si falla, simplemente pinta el fondo de rojo, pero aún permites que el desarrollador continúe construyendo. Es una forma agradable de darles esa advertencia sin arruinar su flujo. Así que puedes poner esto en ganchos previos a la confirmación, ganchos previos a la compilación, y es especialmente agradable en el pre-compilación para la configuración de git. Entonces, si quieres asegurarte de que todos estén confirmando con el correo electrónico correcto, esta es una buena manera de hacerlo. Así es como se ve. Puedes tener algo que no se verifica, pero aún permitir que tu desarrollador continúe construyendo. Y eso es todo. Si te gusta este contenido y quieres ver más, siempre puedes visitar modiscreate.com, seguirnos en Twitter, puedes seguirme en Twitter y comunicarte conmigo directamente si quieres ver algo nuevo en InvenFo o Solidarity. ¡Gracias!
Comments