372 - Como llevar tus scripts en Bash a un nivel superior
Nadie nace enseñado. Por esto, te doy tres recursos muy potentes, para llevar tus scripts en Bash a un nivel superior y mejorar notablemente
Tarde o temprano, se produce una paradoja temporal. Tu yo del futuro, se encuentra con un script, del yo del pasado, y se dice, madre mía, ¡como hice yo esto!. No pienses que solo te sucede a ti, nada de eso. Es algo que le sucede hasta el mas pintado. Aquí lo importante, es mejorar, y mejorar constantemente. Pero es que además no tienes mas remedio, sobre todo si quieres estar al día. Mas que nada, porque se van liberando nuevas versiones de tu aplicación preferida, de tu sistema operativo preferido, de tu shell preferida, y como no de tu lenguaje de programación preferido. Todo esto nos lleva a no parar de leer, aprender y mejorar. Y en concreto en mi caso, a añadir tres nuevos capítulos al tutorial de scripts en Bash. En concreto, tres capítulos, que te pueden ayudar a llevar tus scripts en Bash a un nivel superior.
Así, en este nuevo episodio del podcast, te comento precisamente estos tres nuevos capítulos, para invitarte a que les des un vistazo y que los aproveches, si así lo consideras.
Como llevar tus scripts en Bash a un nivel superior
Mis primeros scripts eran una porquería
Si, tengo que confesarte que mis primeros scripts eran una porquería. Y no solo te haré esta confesión, sino que además te digo, que dentro de un tiempo, cuando vea los scripts que estoy haciendo ahora, volveré a opinar lo mismo, aunque espero, que menos.
Pero, tal y como te decía en la introducción, la cuestión no es avergonzarse de la calidad de tus scripts, si no mejorarlos. Y si te ayudan a mejorarlos, ¿que mas se puede pedir?.
Nadie nace enseñado
Para mi, hay dos dichos que están muy relacionados con la programación, y por ende, con los scripts en Bash. Por un lado, aquello de nadie nace enseñado, y por el otro, a programar se aprende programando. Y además te diría que uno complementa el otro.
Si recuerdas, que ya te digo que yo no, cuando das tus primeros pasos, ¿o tendría que decir rodadas?, con la bicicleta, ni mucho menos era un Miguel Induráin. Mas bien, te venía justo ir recto. Yo me imagino que a Miguelito, también le pasaría lo mismo, y mira donde llegó. Y estoy seguro, que en mas de una ocasión, también le sucedió aquello de echar la mirada atrás y decir vaya porquería de peladadas, hay que mejorar.
Tampoco te pienses que alguien que lleva años haciendo scripts es un gurú. Te sorprendería de la cantidad de personas que se dedican a copiar y pegar sin saber exactamente que es lo que están haciendo. Y lo que es peor, sin saber si quiera, que es lo que hace el código que están copiando y pegando. En muchas ocasiones, me he encontrado copias de copias de copias de scripts, que viendo la calidad del resultado final, me puedo hacer una idea de la calidad del original. Y como te digo, en ningún caso, me siento un gurú de esto, ni mucho menos.
Por otro lado, en muchas ocasiones cuando me hago un script es para resolver un problema puntual. Con lo cual, lo hago deprisa y corriendo, con el objetivo de salir del paso. Luego, ese script, termina acompañándome el resto de la vida, hasta convertirse en una algo imprescindible (quizá he exagerado demasisado). Por esta razón, hay que dedicarle cariño a nuestros scripts e intentar hacerlos lo mejor posible, y si alguien nos puede ayudar conforme los vamos haciendo mejor.
Pues a ello vamos. Mejoremos nuestra técnica de scripting, y si puede ser con ayuda mejor.
¿Quien me va ayudar a mejorar mis scripts en Bash?
Siempre es posible mejorar, al principio mas, y luego menos, pero siempre es posible mejorar. Siempre se aprende algo nuevo. En este caso, para ayudarte a mejorar, he publicado estos artículos, y vídeos, donde encontrarás esas ideas, sugerencias y herramientas para llevar tus scripts en Bash a un nivel superior.
Mejores prácticas
El primero de los artículos que he publicado para ayudarte a llevar tus scripts a un nivel superior trata sobre las mejores prácticas con tus scripts en Bash. Simplemente son algunas sugerencias y recomendaciones para mejorar. Aunque, desde luego algunas de las recomendaciones son casi de obligado cumplimiento.
Algunas de estas recomendaciones son las siguientes,
- Comenzar tu script con el conocido shebang
- Siempre que esté en tu mano, haz uso de las comillas.
- Utilizar las opciones de Bash
- Seguir algunas de las convenciones en cuanto a nombrar tus variables.
- Definir el ámbito de las variables.
- Emplear tanto
$()
como[[]]
, en lugar de la comilla y el corchete simple - Y utiliza el capítulo sobre depurar en Bash
Shellcheck
El segundo de los artículos trata de una herramienta mas que interesante, shellcheck
. Se trata de una analizador estático de código ampliamente utilizado, tal y como te indico en el artículo sobre como hacer tus scripts en Bash nivel profesional.
Esta herramienta, que de por si es interesante, una vez integrada con tu editor de código de cabecera es una auténtica maravilla. Tiene integración para Sublime, VSCode, y NeoVim.
En mi caso, como ya sabes, estoy utilizando NeoVim, y lo tengo integrado a través de LSP y efm-langserver
, y estoy realmente encantado. Estoy deseando, y lo digo sinceramente, cometer alguna tropelía o encontrar algún script anterior para que me vaya indicando todo lo que tengo que corregir…. Como lo estoy disfrutando.
Esta es una muy buena herramienta para aprender buenas prácticas de scripts en Bash, porque de forma interactiva, te va mostrando los errores que cometes, te explica el porque y te ayuda a corregirlos.
Testing
Y la pieza que me faltaba, el testing. La verdad es que no se me había ocurrido integrar el testing en Bash. No se porque, no tenía asociadas esas dos piezas. Y eso que cada vez que escuchaba a Daniel Primo en su podcast Web Reactiva, mas claro tenía que era una forma de llevar mis scripts en Bash a un nivel superior… Sin embargo, por alguna razón que se me escapa, había una disociación de ideas.
Pero, por supuesto, y como no podía ser de otra forma, para tus scripts en Bash, existen distintos frameworks con los que hacer testing, hasta ahí podíamos llegar.
En mi casó me decanté por [shUnit2]() después de probar alguno que otro. Y me decanté por este, mas que nada por la simplicidad a la hora de realizar los scripts de test. Como dice aquel, no es necesario montar un arco de iglesia para hacer testing. Y efectivamente, shUnit2
, te da ese marco de trabajo necesario para realizar tus test sin hacer florituras.
Con esto puedes hacer de forma, relativamente fácil, testing de tus scripts contra diferentes apis. A mi me están resultado tremendamente prácticos.
Conclusión
Estas son tres perlas añadidas al tutorial de scripts en Bash, con las que como te digo en el título, te ayudarán a llevar tus scripts en Bash a un nivel superior. Y eso, con independencia del nivel en el que se encuentre el nivel de tus scripts.
No pienses, en ningún momento, que estos son los últimos capítulos del tutorial de scripts en Bash. Seguro que hay mas por venir.
Imagen de portada de eswaran arulkumar