5 ejemplos del mejor uso de Ruby
¿Te has preguntado alguna vez qué podemos hacer con Ruby? Bueno, el cielo es probablemente el límite, pero estaremos encantados de hablar de algunos casos más o menos conocidos...
Hace unos años, estaba charlando con unos amigos, todos desarrolladores de Java. No estoy seguro de cómo surgió el tema, pero empezamos a hablar de nuestros entornos de codificación. Les conté que todo mi desarrollo lo hago usando Vim y terminales. Eso desencadenó algunas bromas y preguntas divertidas, como si todavía uso tarjetas perforadas 🙂 .
Desde entonces, he probado algunos IDE "de verdad", pero siempre he vuelto a Vim y terminales ya que es un método muy rápido, tiene todas las herramientas que necesito y simplemente me gusta trabajar en modo texto.
Aquí tienes algunos detalles sobre mi flujo de trabajo. Vale la pena mencionar que trabajo en Linux, pero puedes configurarlo en Mac o Windows sin problemas.
Empiezo mi jornada laboral abriendo un terminal, cd ~/Projects/XYZ, y ejecutando tmuxasí que empecemos por ahí.
¿Qué es el TMUX? Como dicen los autores:
TMUX es un multiplexor de terminales. Le permite cambiar fácilmente entre varios programas en un terminal, desconectarlos (siguen ejecutándose en segundo plano) y volver a conectarlos a otro terminal.
Lo uso para cambiar entre varias cosas en un terminal. Así, en una TMUX tengo la ventana Rieles servidor funcionando, en el segundo tengo mi Vim abierto, y cada vez que necesito hacer algo en el terminal, como comprobar rutas, ejecutar migraciones o pruebas, simplemente abro una nueva ventana con CTRL-A C
y hacer la cosa.
No uso TMUX paneles, sólo ventanas, y hacer un montón de conmutación (tengo CTRL + doble-A bind para cambiar entre las últimas ventanas).
Otra función muy práctica de TMUX es que me permite buscar y copiar texto de un terminal sin utilizar el ratón.
Es la parte principal de mi flujo de trabajo. No voy a entrar en detalles sobre lo que VIM y en qué se diferencia de otros editores. Hay un montón de grandes artículos y videos al respecto. En pocas palabras, Vim es un editor modal. Tiene dos modos, el modo insertar y el modo normal. Insertar es para escribir texto en un documento y normal es para realizar diferentes operaciones en el documento, como mover el cursor, borrar fragmentos de texto, cambiarlo, etc. Suena extraño, pero después de algún tiempo se siente muy natural y es muy difícil volver al editor habitual.
Lo que me gustaría mostrarte es la forma en que combino Vim con otras herramientas para conseguir todo lo que necesito como desarrollador web.
No soy fan de los plugins pesados Vim configuraciones, así que estoy usando sólo unos pocos. Aquí está la lista:
NERDtree - es un explorador de archivos. Te permite realizar fácilmente algunas operaciones básicas del sistema de archivos, como mover archivos, renombrarlos, crear archivos nuevos y muchas otras,
vim-endwise - Soy un desarrollador Ruby, así que lo uso para añadir fin
después de si
, do
, def
y otras palabras clave,
vim-rails - es un Rieles power plugin. Conoce la estructura de un Aplicación Rails. ¿Quiere comprobar el parcial que hay bajo el cursor? Pulse gf
y se abre en la ventana actual. Tiene muchas otras opciones pero esa es la que yo uso más a menudo,
vim-surround - gran plugin que hace que trabajar con entornos sea muy fácil. Con él, usted puede cambiar el entorno del texto de () a [] en unas pocas pulsaciones de teclas,
vim-repeat - complementario de Vim-surround. Permite un cambio de entorno repetitivo con .
(repita el último cambio en Vim),
vimwiki- mi manera de tomar notas,
fzf.vim+ fzf - la parte central de mi desarrollo web flujo de trabajo.
Estas son las herramientas que definen mi forma de codificar. Me he dado cuenta de que, normalmente, cuando realizo tareas de programación, dedico la mayor parte del tiempo a averiguar cómo funcionan las cosas. Para ello, necesito comprobar rápidamente diferentes partes del código base, definiciones de métodos, clases y otras cosas.
Fzf es un filtro Unix interactivo para la línea de comandos que se puede utilizar con cualquier lista (archivos, historial de comandos, commits de git, listas de procesos); en otras palabras, es un buscador difuso.
Ripgrep es una alternativa a grep, pero es la más rápida.
Una vez combinados, estos dos me permiten encontrar rápidamente lo que quiero en mi proyecto.
Tengo dos ajustes en mi Vim config para ayudarme con esto:
nnoremap :Archivos
nnoremap :Rg
La primera me permite encontrar rápidamente los archivos correctos usando el buscador difuso en las rutas de los archivos (CTRL-P). La segunda ejecuta el buscador difuso en todas las rutas y contenidos de los archivos de mi proyecto usando Ripgrep (CTRL-F).
Por lo tanto, digamos que quiero encontrar la migración donde he añadido una columna a la usuarios
mesa. Pulso CTRL-F y escribo algo como adcolusnam
y coincidirá con add_column :usuarios, :nombre, :cadena
.
Cuando busco la definición de un método, suelo ejecutar CTRL-F def nombre_método
.
Es muy útil ya que busca a través de la ruta del archivo + el contenido. Es especialmente conveniente cuando sé que el contenido que estoy buscando está en una parte específica del proyecto. Por ejemplo, quiero encontrar donde actualizamos un nombre de usuario, y recuerdo que estaba en algún lugar de los controladores. Pulso CTRL-F
conupdname
para que coincida con la línea app/controllers/users_controller: @user.update(nombre: nuevo_nombre)
.
Si conoce la estructura de su proyecto y su base de código, puede construir fácilmente consultas de búsqueda difusas para encontrar rápidamente casi cualquier cosa que desee.
Pulse aquí para ver una breve grabación mía jugando con el código base de `discourse` (440k LOC en mi i5, 16GB de sobremesa) y mostrando cómo suelo moverme por el proyecto.
Espero que te haya interesado mi montaje y hayas decidido dar Fzf en tus esfuerzos de codificación. Realmente cambió la forma en que estoy usando Vim como código editor.