5 příkladů nejlepšího použití jazyka Ruby
Přemýšleli jste někdy o tom, co všechno můžeme dělat s Ruby? No, obloze se asi meze nekladou, ale rádi si povíme o některých více či méně známých případech...
Před několika lety jsem griloval se svými přáteli, samými vývojáři v Javě. Nejsem si jistý, jak k tomu došlo, ale začali jsme se bavit o našich kódovacích prostředích. Řekl jsem jim, že veškerý vývoj provádím pomocí Vimu a terminálů. Vyvolalo to několik vtipů a vtipných otázek, například jestli ještě používám děrné štítky 🙂.
Od té doby jsem vyzkoušel několik "opravdových" IDE, ale vždy jsem se vrátil k. Vim a terminály, protože je to velmi rychlá metoda, má všechny nástroje, které potřebuji, a jednoduše se mi líbí práce v textovém režimu.
Zde je několik podrobností o mém pracovním postupu. Stojí za zmínku, že pracuji v Linuxu, ale bez problémů si to můžete nastavit i na Macu nebo Windows.
Svůj pracovní den začínám otevřením terminálu, cd ~/Projects/XYZ a spuštěním příkazu tmux, takže začněme tam.
Co je to TMUX? Jak říkají autoři:
TMUX je terminálový multiplexor. Umožňuje snadno přepínat mezi několika programy v jednom terminálu, odpojit je (běží dál na pozadí) a znovu je připojit k jinému terminálu.
Používám ho k přepínání mezi více věcmi v jednom terminálu. Takže v jednom TMUX okno, mám Rails server běží, ve druhém mám svůj Vim a pokaždé, když potřebuji něco udělat v terminálu, například zkontrolovat trasy, spustit migraci nebo testy, prostě otevřu nové okno s položkou CTRL-A C a udělejte to.
Nepoužívám TMUX panely, pouze okna, a hodně přepínat (mám CTRL + double-A vázané na přepínání mezi posledními okny).
Další velmi výhodnou funkcí TMUX že mi umožňuje vyhledávat a kopírovat text z terminálu bez použití myši.
Je to hlavní část mého pracovního postupu. Nebudu zabíhat do podrobností o tom, co je to VIM a v čem se liší od ostatních editorů. Je o něm spousta skvělých článků a videí. Několika slovy, Vim je modální editor. Má dva režimy, režim vkládání a normální režim. Režim Insert slouží k psaní textu do dokumentu a normální režim slouží k provádění různých operací s dokumentem, jako je přesouvání kurzoru, mazání fragmentů textu, jeho změna atd. Zní to zvláštně, ale po nějaké době to působí velmi přirozeně a je velmi těžké vrátit se k běžnému editoru.
Chtěl bych vám ukázat, jak kombinuji Vim s dalšími nástroji, abych získal vše, co jako webový vývojář potřebuji.
Nejsem fanouškem těžkých zásuvných modulů Vim konfigurací, takže používám jen několik z nich. Zde je jejich seznam:
NERDtree - je to průzkumník souborů. Umožňuje snadno provádět základní operace se souborovým systémem, jako je přesouvání souborů, přejmenování, vytváření nových souborů a mnoho dalších,
vim-endwise - Jsem Ruby vývojář, takže ho používám k přidání konec po pokud, do, defa několik dalších klíčových slov,
vim-rails - je to Rails zásuvný modul napájení. Zná strukturu Aplikace Rails. Chcete zkontrolovat dílčí část pod kurzorem? Stačí stisknout gf a otevře se v aktuálním okně. Má mnoho dalších možností, ale tuhle používám nejčastěji,
vim-surround - skvělý plugin, který velmi usnadňuje práci s okolím. Pomocí něj můžete změnit okolí textu z () na [] pomocí několika stisků kláves,
vim-repeat - doplňující Vim-surround. Umožňuje opakující se změnu prostředí s . (zopakujte poslední změnu ve Vimu),
vimwiki- můj způsob, jak si dělat poznámky,
fzf.vim+ fzf - hlavní část mého vývoj webových stránek pracovní postup.

To jsou nástroje, které určují způsob, jakým kóduji. Uvědomil jsem si, že když dělám nějakou kódovací úlohu, většinu času obvykle věnuji zjišťování, jak daná věc funguje. K tomu potřebuji rychle zkontrolovat různé části kódové základny, definice metod, tříd a další věci.
Fzf je interaktivní unixový filtr pro příkazový řádek, který lze použít s libovolnými seznamy (soubory, historie příkazů, revize git, seznamy procesů); jinými slovy, je to fuzzy vyhledávač.
Ripgrep je alternativou ke grepu, ale je to ten nejrychlejší.
Po jejich spojení mohu rychle najít cokoli, co chci. projekt.
Mám dvě nastavení Vim konfigurační soubor, který mi s tím pomůže:
nnoremap :Files
nnoremap :Rg
První z nich mi umožnil rychle najít správné soubory pomocí fuzzy vyhledávání cest k souborům (CTRL-P). Druhý spustí fuzzy vyhledávání na všech cestách a obsahu souborů v mém projektu pomocí funkce Ripgrep (CTRL-F).
Řekněme, že chci najít migraci, kde jsem přidal sloupec do pole uživatelé tabulka. Stisknu CTRL-F a napíšu něco jako adcolusnam a bude odpovídat add_column :users, :name, :string.
Když hledám definici metody, často spustím CTRL-F. def název_metody.
Je velmi užitečný, protože prohledává cestu k souboru + obsah. Je to výhodné zejména tehdy, když vím, že hledaný obsah se nachází v určité části projektu. Například chci najít, kde jsme aktualizovali uživatelské jméno, a pamatuji si, že to bylo někde v ovladačích. Stisknu tlačítko CTRL-F conupdname aby odpovídala řádku app/controllers/users_controller: @user.update(name: new_name).
Pokud znáte strukturu svého projektu a kódové základny, můžete snadno sestavit fuzzy vyhledávací dotazy a rychle najít téměř cokoli, co chcete.
Klikněte zde krátký záznam, na kterém si hraji s kódovou základnou `discourse` (440k LOC na mém i5, 16GB desktopu) a ukazuji, jak se v projektu obvykle pohybuji.
Doufám, že vás zaujalo mé nastavení a rozhodli jste se dát Fzf vyzkoušet při svém kódování. Opravdu to změnilo způsob, jakým používám Vim jako kód editor.