Al programar es importante ser elegante. Esto es algo que seguramente os lo han repetido una y otra vez. Hay que cuidar la sintaxis, la estructura, los comentarios... Es por eso que, sin importar el lenguaje, hay veces que la comunidad de un lenguaje en concreto, si los propios desarrolladores del lenguaje no lo han hecho, se pone manos a la obra para crear una guía de estilo con el objetivo de estandarizar los pasos a seguir para que un código se considere nulo de errores. Es el caso de Ruby y su Guía de Estilo Ruby que reune todas las directrices a cumplir para que nuestro código sea elegante, estándar y entre dentro de las buenas prácticas de la programación en Ruby.
Pero claro, esto es como todo, es muy difícil cumplirlo todo a rajatabla y más si entre nuestra manos está un proyecto mastodóntico. Esto hace crecer los tiempos de trabajo y no resulta rentable para un equipo de programación, aunque si te lo inculcas desde el principio, es más que posible que te salga solo. Para vigilar si todo lo estamos haciendo según la ley que indica la Guía de Estilo Ruby ha nacido Rubocop, un analizador estático de código que te vendrá muy bien en los futuros proyectos que desarrolles con Ruby. Rubocop es gratuito y es muy sencillo de instalar. Su comportamiento también es simple, pero muy efectivo; este software analizará todos los archivos del directorio donde se está ejecutando, con el fin de encontrar algo en tu código, que se escape de las directrices de la Guía de Estilo Ruby. Al igual que su casi tocayo Robocop, Rubocop ha venido para hacer cumplir la ley, y la ley de Ruby es, fundamentalmente, su guía de estilo. Aunque, como veréis más adelante este robot es mucho más flexible que el del cine.
Para instalar Rubocop, solo tenemos que hacer la llamada mediante esta línea de comando:
$ gem install rubocop
Y así ya lo tendremos disponible para nuestro uso. Por supuesto, ahora tendremos que agregar la gema de Rubocop al gemfile, de esta manera:
gem 'rubocop', require: false
Como os he dicho anteriormente, Rubocop revisa todos los archivos del directorio donde se ejecute por defecto, pero también es posible indicarle que solo revise un archivo o varios según el patrón que tú establezcas. Con este comando...
rubocop -h
...es posible revisar las distintas opciones que ofrece el analizador, entre las cuales están: -R para proyectos de Ruby on Rails, formatos de salida, especificación de un archivo de configuración para variar su comportamiento y muchas cosas más.
Estos días Rubocop se ha convertido en noticia debido a que se ha lanzado la versión 0.34 del analizador e incluye nuevas mejoras respecto a sus predecesores. Como por ejemplo, nuevos cops (es así como se le llama a los chequeos de Rubocop), corecciones de bugs enviados por la comunidad, mejoras de rendimiento y sobre todo una funcionalidad estrella para mejorar la velocidad de la herramienta: un sistema de cacheo. Anteriormente, Rubocop revisaba TODO el código del directorio aunque se hubiese revisado anteriormente. Con la nueva mejora de caché, al chequear una segunda vez el directorio (o los archivos que queramos analizar) notaremos un increíble avance en cuanto a la velocidad de la herramienta.
Rubocop es compatible con muchos editores de código, como por ejemplo Emacs, Atom, Sublime, RubyMine... por nombrar algunos. Esto hace mucho más fácil la detección de infracciones a la guía ya que los muestra por el buffer de salida del propio editor. Sabemos que cada proyecto es un mundo, es por eso que mediante el archivo de configuración de Rubocop, podemos indicarle distintas directrices para que sea un poco menos duro en su comportamiento. Como experiencia personal, os puedo decir que hay veces que te saca de tus casillas, pero no está de más utilizarlo, sobre todo para aprender sobre buenas prácticas de desarrollo.
Recuerda que el proyecto cuenta con una campaña de crowdfunding para su financiación. Si te gusta o lo estás utilizando en tus proyectos, no estaría de más que colaborases a que se siga manteniendo. Recuerda colaborar siempre con los creadores de software para que sus herramientas sigan creciendo y sigamos gozando de estas plataformas que tanto nos ayudan.
Esperamos que esta herramienta te sea de ayuda y que, a partir de ahora cumplas las reglas de buenas prácticas a la hora de programar. A mi, personalmente, me está ayudando un montón y ya no utilizo los saltos de línea a la ligera, por ejemplo. Por cierto, ¿que infracción a la guía de estilos de Ruby os soléis saltar a la torera? ¿Soléis ser elegantes programando o sois unos completos desastres?
Indícanoslo en los comentarios...