5 exemples de la meilleure utilisation de Ruby
Vous êtes-vous déjà demandé ce que l'on pouvait faire avec Ruby ? Eh bien, le ciel est probablement la limite, mais nous sommes heureux de parler de quelques cas plus ou moins connus...
Il y a quelques années, je faisais la grillade avec certains de mes amis, tous développeurs Java. Je ne sais pas trop comment cela s'est produit, mais nous avons commencé à parler de nos environnements de codage. Je leur ai dit que je faisais tout mon développement en utilisant Vim et des terminaux. Cela a déclenché des blagues et des questions amusantes, comme celle de savoir si j'utilisais encore des cartes perforées 🙂 .
Depuis, j'ai essayé quelques "vrais" IDE mais je suis toujours revenu à Vim et les terminaux, car c'est une méthode très rapide, qui dispose de tous les outils dont j'ai besoin et j'aime tout simplement travailler en mode texte.
Voici quelques détails sur mon processus de travail. Il convient de préciser que je travaille sous Linux, mais vous pouvez l'installer sur Mac ou Windows sans problème.
Je commence ma journée de travail en ouvrant un terminal, cd ~/Projets/XYZ, et en lançant tmuxCommençons donc par là.
Qu'est-ce que TMUX? Comme le disent les auteurs :
TMUX est un multiplexeur de terminal. Il vous permet de passer facilement d'un programme à l'autre dans un même terminal, de les détacher (ils continuent à tourner en arrière-plan) et de les rattacher à un autre terminal.
Je l'utilise pour passer d'une chose à l'autre dans un seul terminal. Ainsi, dans un TMUX j'ai la fenêtre Rails en cours d'exécution, dans le second, j'ai mon Vim et chaque fois que j'ai besoin de faire quelque chose dans le terminal, comme vérifier des routes, exécuter des migrations ou des tests, j'ouvre simplement une nouvelle fenêtre avec CTRL-A C
et de faire ce qu'il faut.
Je n'utilise pas TMUX Il n'y a pas de fenêtres, seulement des fenêtres, et il y a beaucoup de changements (j'ai CTRL + double-A pour passer d'une fenêtre à l'autre).
Une autre caractéristique très pratique de TMUX est qu'il me permet de trouver et de copier du texte à partir d'un terminal sans utiliser de souris.
C'est la partie principale de mon flux de travail. Je n'entrerai pas dans les détails de ce que font les VIM et en quoi il est différent des autres éditeurs. Il existe un grand nombre d'articles et de vidéos sur le sujet. En quelques mots, Vim est un éditeur modal. Il possède deux modes, le mode insertion et le mode normal. Le mode insertion permet de taper du texte dans un document et le mode normal permet d'effectuer différentes opérations sur le document, comme déplacer le curseur, supprimer des fragments de texte, le modifier, etc. Cela peut paraître étrange, mais après un certain temps, cela semble très naturel et il est très difficile de revenir à son éditeur habituel.
J'aimerais vous montrer comment je combine les éléments suivants Vim avec d'autres outils pour obtenir tout ce dont j'ai besoin en tant que développeur web.
Je ne suis pas un adepte du plugin lourd Vim Je n'en utilise donc que quelques-unes. Voici la liste :
NERDtree - c'est un explorateur de fichiers. Il vous permet d'effectuer facilement des opérations de base sur le système de fichiers, comme déplacer des fichiers, les renommer, en créer de nouveaux, et bien d'autres encore,
vim-endwise - Je suis un développeur Ruby, je l'utilise donc pour ajouter des fin
après si
, faire
, déf.
et plusieurs autres mots-clés,
vim-rails - c'est un Rails plugin de puissance. Il connaît la structure d'un Application Rails. Vous souhaitez vérifier la partie située sous votre curseur ? Appuyez simplement sur gf
et il l'ouvre dans votre fenêtre actuelle. Il existe de nombreuses autres options, mais c'est celle que j'utilise le plus souvent,
vim-surround - Un excellent plugin qui rend le travail avec l'environnement très facile. Avec lui, vous pouvez changer l'environnement du texte de () à [] en quelques frappes,
vim-repeat - complémentaire de Vim-surround. Il permet un changement répété de l'environnement avec .
(répéter le dernier changement dans Vim),
vimwiki- ma façon de prendre des notes,
fzf.vim+ fzf - la partie centrale de mon développement web flux de travail.
Ce sont les outils qui définissent ma façon de coder. Je me suis rendu compte qu'en général, lorsque j'effectue des tâches de codage, je passe le plus clair de mon temps à trouver comment les choses fonctionnent. Pour ce faire, j'ai besoin de vérifier rapidement différentes parties de la base de code, les définitions de méthodes, les classes et d'autres choses.
Fzf est un filtre Unix interactif pour la ligne de commande qui peut être utilisé avec n'importe quelle liste (fichiers, historique des commandes, commits git, listes de processus) ; en d'autres termes, c'est un outil de recherche flou.
Ripgrep est une alternative à grep, mais c'est le plus rapide.
Une fois combinés, ces deux éléments me permettent de trouver rapidement tout ce que je veux dans ma projet.
J'ai deux paramètres dans mon Vim pour m'aider :
nnoremap : Fichiers
nnoremap :Rg
La première me permet de trouver rapidement les fichiers corrects en utilisant la recherche floue sur les chemins d'accès aux fichiers (CTRL-P). La seconde lance la recherche floue sur tous les chemins d'accès et le contenu des fichiers de mon projet à l'aide de la commande Ripgrep (CTRL-F).
Supposons que je veuille trouver la migration à l'endroit où j'ai ajouté une colonne à la base de données utilisateurs
table. J'appuie sur CTRL-F et j'écris quelque chose comme adcolusnam
et il correspondra à add_column :users, :name, :string
.
Lorsque je cherche une définition de méthode, je lance souvent CTRL-F def nom_de_la_méthode
.
C'est très utile car cela permet de rechercher le chemin d'accès au fichier + le contenu. C'est particulièrement pratique lorsque je sais que le contenu que je recherche se trouve dans une partie spécifique du projet. Par exemple, je veux trouver l'endroit où nous avons mis à jour un nom d'utilisateur, et je me souviens que c'était quelque part dans les contrôleurs. Je clique sur CTRL-F
nom de la configuration
pour correspondre à la ligne app/controllers/users_controller : @user.update(name : new_name)
.
Si vous connaissez la structure de votre projet et de votre base de code, vous pouvez facilement construire des requêtes de recherche floue pour trouver rapidement presque tout ce que vous voulez.
Cliquez ici pour voir un court enregistrement de moi jouant avec la base de code `discourse` (440k LOC sur mon i5, 16GB desktop) et montrant comment je me déplace habituellement dans le projet.
J'espère que vous avez été intéressé par mon installation et que vous avez décidé d'y participer. Fzf un essai dans vos efforts de codage. Il a vraiment changé la façon dont j'utilise Vim en tant que code éditeur.