5 Beispiele für die beste Verwendung von Ruby
Haben Sie sich jemals gefragt, was wir mit Ruby alles machen können? Nun, der Himmel ist wahrscheinlich die Grenze, aber wir sprechen gerne über einige mehr oder weniger bekannte Fälle...
Vor ein paar Jahren habe ich mit einigen meiner Freunde, alles Java-Entwickler, gegrillt. Ich weiß nicht, wie es dazu kam, aber wir fingen an, über unsere Programmierumgebungen zu sprechen. Ich erzählte ihnen, dass ich meine gesamte Entwicklung mit Vim und Terminals durchführe. Das löste einige Witze und lustige Fragen aus, z. B. ob ich immer noch mit Lochkarten arbeite 🙂 .
Seitdem habe ich einige "echte" IDEs ausprobiert, bin aber immer wieder zu Vim und Terminals, weil es eine sehr schnelle Methode ist, alle Werkzeuge hat, die ich brauche, und ich einfach gerne im Textmodus arbeite.
Hier sind einige Details zu meinem Arbeitsablauf. Es ist erwähnenswert, dass ich unter Linux arbeite, aber Sie können es ohne Probleme auf Mac oder Windows einrichten.
Ich beginne meinen Arbeitstag mit dem Öffnen eines Terminals, cd ~/Projects/XYZ, und dem Ausführen von tmuxalso fangen wir dort an.
Was ist TMUX? Wie die Autoren sagen:
TMUX ist ein Terminal-Multiplexer. Er ermöglicht es Ihnen, einfach zwischen mehreren Programmen in einem Terminal zu wechseln, sie zu trennen (sie laufen im Hintergrund weiter) und sie in einem anderen Terminal wieder zu verbinden.
Ich benutze es, um zwischen mehreren Dingen in einem Terminal zu wechseln. Also, in einem TMUX Fenster, habe ich die Schiene Server läuft, im zweiten habe ich meine Vim geöffnet, und jedes Mal, wenn ich etwas im Terminal tun muss, z. B. Routen prüfen, Migrationen oder Tests durchführen, öffne ich einfach ein neues Fenster mit CTRL-A C
und die Sache durchziehen.
Ich benutze keine TMUX Fenster, nur Fenster, und schalten viel um (ich habe CTRL + Doppel-A gebunden, um zwischen den letzten Fenstern zu schalten).
Eine weitere sehr praktische Funktion von TMUX ist, dass ich damit Text in einem Terminal suchen und kopieren kann, ohne eine Maus zu benutzen.
Das ist der wichtigste Teil meines Arbeitsablaufs. Ich werde nicht ins Detail gehen, was VIM ist und wie es sich von anderen Editoren unterscheidet. Es gibt eine Menge toller Artikel und Videos darüber. In ein paar Worten, Vim ist ein modaler Editor. Er hat zwei Modi, den Einfügemodus und den normalen Modus. Im Einfügemodus kann man Text in ein Dokument eingeben, während man im normalen Modus verschiedene Operationen mit dem Dokument durchführen kann, z. B. den Cursor bewegen, Textfragmente löschen, den Text ändern usw. Es klingt seltsam, aber nach einiger Zeit fühlt es sich sehr natürlich an und es ist sehr schwer, zu Ihrem normalen Editor zurückzukehren.
Was ich Ihnen zeigen möchte, ist die Art und Weise, wie ich die Vim mit anderen Tools, um alles zu bekommen, was ich als Webentwickler brauche.
Ich bin kein Fan von schweren Plugins Vim Konfigs, daher verwende ich nur einige wenige. Hier ist die Liste:
NERDtree - Es ist ein Datei-Explorer. Mit ihm können Sie ganz einfach einige grundlegende Dateisystemoperationen durchführen, z. B. Dateien verschieben, umbenennen, neue Dateien erstellen und vieles mehr,
vim-endwise - Ich bin ein Ruby-Entwickler und benutze es, um Ende
nach wenn
, tun
, def
und mehrere andere Schlüsselwörter,
vim-rails - Es ist ein Schiene Power-Plugin. Es kennt die Struktur eines Rails-Anwendung. Möchten Sie den Teilbereich unter Ihrem Cursor überprüfen? Drücken Sie einfach gf
und es öffnet sich in Ihrem aktuellen Fenster. Es gibt noch viele andere Optionen, aber das ist die, die ich am häufigsten benutze,
vim-surround - tolles Plugin, das die Arbeit mit Umgebungen sehr einfach macht. Mit ihm können Sie die Umgebung des Textes von () zu [] in ein paar Tastenanschlägen ändern,
vim-wiederholen - komplementär zu Vim-surround. Es ermöglicht einen sich wiederholenden Umgebungswechsel mit .
(letzte Änderung in Vim wiederholen),
vimwiki- meine Art, Notizen zu machen,
fzf.vim+ fzf - das Kernstück meiner Web-Entwicklung Arbeitsablauf.
Dies sind die Werkzeuge, die meine Art der Programmierung bestimmen. Mir ist klar geworden, dass ich bei der Erledigung von Programmieraufgaben die meiste Zeit damit verbringe, herauszufinden, wie die Dinge funktionieren. Dazu muss ich verschiedene Teile der Codebasis, Methodendefinitionen, Klassen und andere Dinge schnell überprüfen.
Fzf ist ein interaktiver Unix-Filter für die Kommandozeile, der mit beliebigen Listen (Dateien, Befehlshistorie, Git-Commits, Prozesslisten) verwendet werden kann; mit anderen Worten, es ist ein Fuzzy-Finder.
Ripgrep ist eine Alternative zu grep, aber es ist die schnellste.
Mit dieser Kombination kann ich alles, was ich suche, schnell in meiner Datenbank finden. Projekt.
Ich habe zwei Einstellungen in meinem Vim Konfigurationsdatei, um mir dabei zu helfen:
nnoremap :Dateien
nnoremap :Rg
Mit der ersten kann ich schnell die richtigen Dateien finden, indem ich die unscharfe Suche auf Dateipfaden verwende (STRG-P). Die zweite führt die unscharfe Suche für alle Pfade und Inhalte der Dateien in meinem Projekt aus, indem sie Ripgrep (CTRL-F).
Sagen wir, ich möchte die Migration finden, bei der ich eine Spalte zur Benutzer
Tabelle. Ich drücke CTRL-F und schreibe etwas wie adcolusnam
und es wird übereinstimmen mit add_column :benutzer, :name, :string
.
Wenn ich nach einer Methodendefinition suche, führe ich oft CTRL-F def methoden_name
.
Es ist sehr nützlich, da es den Dateipfad und den Inhalt durchsucht. Es ist besonders praktisch, wenn ich weiß, dass sich der gesuchte Inhalt in einem bestimmten Teil des Projekts befindet. Ich möchte zum Beispiel herausfinden, wo wir einen Benutzernamen aktualisiert haben, und ich erinnere mich, dass es irgendwo in den Controllern war. Ich drücke CTRL-F
conupdname
zur Zeile passen app/controllers/users_controller: @user.update(name: new_name)
.
Wenn Sie die Struktur Ihres Projekts und Ihrer Codebasis kennen, können Sie problemlos unscharfe Suchabfragen erstellen, um fast alles zu finden, was Sie suchen.
Klicken Sie hier um eine kurze Aufnahme von mir zu sehen, wie ich mit der "Discourse"-Codebasis (440k LOC auf meinem i5, 16GB Desktop) herumspiele und zeige, wie ich mich normalerweise im Projekt bewege.
Ich hoffe, Sie haben sich für meine Einrichtung interessiert und sich entschlossen, den Fzf bei Ihren Codierungsbemühungen ausprobieren. Es hat wirklich die Art und Weise verändert, wie ich Vim als Code Herausgeber.