[RUBY] Emplacement de la définition de la méthode Résumé de la vérification Lorsque défini dans le projet et Rails / Gem
Motivation
Quand j'ai rejoint un nouveau projet, j'ai eu beaucoup de mal à savoir où il était défini, plein de méthodes. Afin de rattraper rapidement le retard, j'ai senti que «la capacité d'enquêter et de comprendre rapidement» était très importante, j'ai donc demandé à des ingénieurs seniors de le résumer.
Il y a des avantages et des inconvénients à vérifier.
Pour les méthodes définies dans le projet
1. git grep -n <nom de la méthode>
- Il est plus facile à voir car il est affiché en couleur dans le terminal que la recherche plein texte de l'éditeur.
- Le numéro de ligne est ajouté avec l'option -n, donc cliquez sur Commande + Chemin pour l'ouvrir dans l'éditeur!
- Inconvénient: rechercher des chaînes de caractères. Il y a pas mal de succès. Si vous utilisez "def method name", il sera un peu réduit.
2. Entrez dans la fenêtre de recherche de Github avec un navigateur et recherchez "dans ce référentiel"
- Cette méthode donne le même résultat que 1., mais les lignes supérieure et inférieure de la pièce correspondante sont également affichées ensemble.
- Bon lorsque vous ne voulez pas utiliser l'éditeur
- Inconvénient: rechercher des chaînes de caractères. Il y a pas mal de succès. Il est réduit en entrant "nom de la méthode def" et des guillemets doubles.
3. Utilisez la fonction show-source de pry-docs
- Dans la console Rails,
$ <nom de la méthode>
OU show-source <nom de la méthode>
- Affiche de la définition à la fin de la partie définition!
- Le chemin est également affiché, vous pouvez donc l'afficher dans l'éditeur par commande + clic.
- Inconvénient: lorsque vous souhaitez vérifier user.method, vous devez créer une instance User avant de pouvoir la vérifier.
4. Utilisez la fonction "step" de Pry
- Une fois arrêté à binding.pry, vous pouvez "entrer" dans cette méthode en exécutant step.
- Vous pouvez également voir le flux de processus et les définitions de variables pour une compréhension plus approfondie.
- Vous pouvez voir des endroits profonds tels que Rails / Gem.
- Inconvénients: il est difficile de définir binding.pry et d'arrêter le processus.
Pikawaka [Rails] Explication approfondie sur Pry!
Lorsqu'il est défini en dehors du projet tel que Gem
- Dash est un outil qui permet la recherche croisée de divers documents tels que Ruby, Rails, Gem et JavaScript.
- En plus du code source, l'explication de la méthode est incluse, donc elle sera plus facile à comprendre.
- En ajoutant l'extension "Dash" à VSCode, vous pouvez passer à la recherche Dash avec la commande + H.
- Inconvénient: Parfois, il n'y a pas de gemme que vous souhaitez vérifier
2. bundle show <nom de la gemme>
- Puisque le répertoire dans lequel Gem est installé est affiché, VSCode peut être ouvert dans une fenêtre séparée par commande + clic.
- Inconvénients: git et pry ne peuvent pas être utilisés, vous devez donc trouver la méthode en effectuant une recherche croisée dans l'éditeur.
3. Utilisez la fonction "step" de Pry
- Idem que pour les méthodes définies dans le projet.
4. Entrez dans la fenêtre de recherche de Github dans le navigateur et recherchez "dans ce référentiel"
- Idem que pour les méthodes définies dans le projet.
Autre
1. Utilisez le saut de source de Rubymine
- Je ne l'ai jamais utilisé car je suis un utilisateur de VS Code. Cependant, je pense que Dash peut presque couvrir les définitions de Ruby, Rails et Gem.
- Inconvénients: cher, lent
2. Utilisez l'extension de VS Code Solargraph
- Placez simplement votre curseur sur une méthode Ruby pour voir sa documentation et ses exemples d'utilisation.
- Il y a aussi une fonction complémentaire
- Inconvénients: c'est douloureux lors de l'utilisation de Docker. Solargraph doit maintenir son serveur de langue en marche. Vous devez lancer le conteneur Solargrap et définir le port sur VS Code. Référence: Comment utiliser le solargraphe dans l'environnement Docker
finalement
- Je voudrais connaître votre "comment vérifier".
- S'il existe un autre bon moyen, merci de me le faire savoir dans les commentaires m (_ _) m