5 geriausi "Ruby" naudojimo pavyzdžiai
Ar kada nors susimąstėte, ką galime padaryti su "Ruby"? Ko gero, dangus yra beribis, bet mes mielai papasakosime apie kai kuriuos daugiau ar mažiau žinomus atvejus...
Prieš kelerius metus su draugais, "Java" kūrėjais, kepiau ant grotelių. Nežinau, kaip tai atsitiko, bet pradėjome kalbėti apie savo programavimo aplinkas. Pasakiau jiems, kad visą programavimą atlieku naudodamas "Vim" ir terminalus. Tai sukėlė keletą juokelių ir juokingų klausimų, pavyzdžiui, ar vis dar naudoju perforatorius 🙂
Nuo to laiko išbandžiau keletą “tikrų” IDE, bet visada grįždavau prie Vim ir terminalus, nes tai labai greitas metodas, turi visus man reikalingus įrankius ir man tiesiog patinka dirbti teksto režimu.
Štai keletas detalių apie mano darbo eigą. Verta paminėti, kad dirbu "Linux", tačiau be problemų galite jį įdiegti "Mac" arba "Windows".
Darbo dieną pradedu nuo terminalo atidarymo, cd ~/Projects/XYZ ir paleidžiu tmux, todėl pradėkime nuo to.
Kas yra TMUX? Kaip teigia autoriai:
TMUX yra galinis multiplekseris. Jis leidžia lengvai perjungti kelias programas viename terminale, jas atjungti (jos veikia fone) ir vėl prijungti prie kito terminalo.
Jį naudoju norėdamas perjungti kelis dalykus viename terminale. Taigi, viename TMUX langą, turiu Bėgiai veikia serveris, antrajame aš turiu savo Vim ir kiekvieną kartą, kai reikia ką nors atlikti terminale, pavyzdžiui, patikrinti maršrutus, paleisti migraciją ar testus, tiesiog atidarau naują langą su CTRL-A C ir atlikite šį darbą.
Aš nenaudoju TMUX tik langus ir daug perjunginėti (CTRL + dviguba A susieta su perjungimu tarp paskutinių langų).
Kita labai patogi funkcija TMUX tai, kad juo galima rasti ir kopijuoti tekstą iš terminalo nenaudojant pelės.
Tai pagrindinė mano darbo eigos dalis. Nesigilinsiu į detales apie tai, kas VIM ir kuo jis skiriasi nuo kitų redaktorių. Apie jį yra daug puikių straipsnių ir vaizdo įrašų. Keliais žodžiais, Vim yra modalinis redaktorius. Jame yra du režimai: įterpimo režimas ir įprastas režimas. Įterpimo režimu į dokumentą įvedamas tekstas, o įprastuoju - atliekamos įvairios operacijos su dokumentu, pavyzdžiui, žymeklio perkėlimas, teksto fragmentų ištrynimas, keitimas ir pan. Skamba keistai, bet po kurio laiko tai atrodo labai natūralu ir labai sunku grįžti prie įprasto redaktoriaus.
Norėčiau jums parodyti, kaip derinu Vim su kitais įrankiais, kad gautumėte viską, ko man reikia kaip žiniatinklio svetainė kūrėjas.
Nesu sunkiųjų įskiepių gerbėjas Vim konfigūracijų, todėl naudoju tik kelias. Štai sąrašas:
NERDtree - tai failų tyrinėtojas. Juo galima lengvai atlikti kai kurias pagrindines failų sistemos operacijas, pavyzdžiui, perkelti failus, pervadinti, kurti naujus failus ir daugelį kitų,
vim-endwise - Aš esu Ruby kūrėjas, todėl jį naudoju norėdamas pridėti pabaiga po jei, daryti, def, ir keletą kitų raktažodžių,
vim-rails - tai Bėgiai galios įskiepis. Jis žino struktūrą Rails programa. Norite patikrinti po žymekliu esantį dalinį? Tiesiog paspauskite gf ir jis bus atidarytas dabartiniame lange. Yra daug kitų parinkčių, bet šią naudoju dažniausiai,
vim-surround - puikus įskiepis, kuris labai palengvina darbą su aplinka. Naudodami jį galite keliais klavišų paspaudimais pakeisti teksto aplinką iš () į [],
vim-repeat - papildo "Vim-surround". Jis leidžia kartoti aplinkos keitimą su . (pakartokite paskutinį pakeitimą "Vim"),
vimwiki- mano būdas užsirašyti,
fzf.vim+ fzf - pagrindinė mano žiniatinklio kūrimas darbo eiga.

Tai įrankiai, kurie lemia mano kodavimo būdą. Supratau, kad paprastai, atlikdamas tam tikras kodavimo užduotis, didžiąją laiko dalį praleidžiu ieškodamas, kaip viskas veikia. Kad tai padaryčiau, turiu greitai patikrinti įvairias kodų bazės dalis, metodų apibrėžtis, klases ir kitus dalykus.
Fzf tai interaktyvus "Unix" komandinės eilutės filtras, kurį galima naudoti su bet kokiais sąrašais (failais, komandų istorija, "git commits", procesų sąrašais); kitaip tariant, tai išplaukusi paieškos priemonė.
Ripgrep yra grep alternatyva, tačiau ji yra labai greita.
Sujungus šias dvi priemones, galiu greitai rasti bet ką, ko noriu savo projektas.
Turiu du nustatymus Vim konfigūracijos failą, kuris padėtų man tai padaryti:
nnoremap :Files
nnoremap :Rg
Pirmasis leido greitai surasti tinkamus failus naudojant neaiškią paiešką pagal failų kelius (CTRL-P). Antrasis paleidžia neaiškią paiešką visiems mano projekto failų keliams ir turiniui, naudodamas Ripgrep (CTRL-F).
Tarkime, noriu surasti migraciją, kai prie stulpelio vartotojai lentelė. Paspaudžiu CTRL-F ir parašau kažką panašaus į adcolusnam ir jis atitiks add_column :users, :name, :string.
Kai ieškau metodo apibrėžties, dažnai paleidžiu CTRL-F def method_name.
Tai labai naudinga, nes ieškoma pagal failo kelią + turinį. Tai ypač patogu, kai žinau, kad ieškomas turinys yra konkrečioje projekto dalyje. Pavyzdžiui, noriu rasti, kur atnaujinome vartotojo vardą, ir prisimenu, kad jis buvo kažkur valdikliuose. Paspaudžiu CTRL-F conupdname kad atitiktų eilutę app/controllers/users_controller: @user.update(name: new_name).
Jei žinote savo projekto ir kodų bazės struktūrą, galite nesunkiai sudaryti neaiškias paieškos užklausas ir greitai rasti beveik viską, ko norite.
Spauskite čia norėdami pamatyti trumpą įrašą, kuriame aš žaidžiu su `discourse` kodų baze (440k LOC mano i5, 16GB darbalaukyje) ir parodau, kaip paprastai judu projekte.
Tikiuosi, kad jus sudomino mano sąranka ir nusprendėte duoti Fzf pabandykite išbandyti savo kodavimo pastangas. Tai tikrai pakeitė mano naudojimosi būdą Vim kaip kodas redaktorius.