5 esimerkkiä Rubyn parhaasta käytöstä
Oletko koskaan miettinyt, mitä voimme tehdä Rubylla? No, taivas on luultavasti rajana, mutta puhumme mielellämme muutamista enemmän tai vähemmän tunnetuista tapauksista....
Muutama vuosi sitten grillailin ystävieni kanssa, jotka olivat kaikki Java-kehittäjiä. En ole varma, miten asia tuli puheeksi, mutta aloimme puhua koodausympäristöistämme. Kerroin heille, että teen kaiken kehitystyöni Vimillä ja terminaaleilla. Se herätti vitsejä ja hauskoja kysymyksiä, kuten käytänkö yhä reikäkortteja 🙂 .
Sen jälkeen olen kokeillut joitakin "oikeita" IDE-ohjelmia, mutta palasin aina takaisin Vim ja terminaalit, koska se on erittäin nopea menetelmä, siinä on kaikki tarvitsemani työkalut ja pidän yksinkertaisesti työskentelystä tekstimoodissa.
Seuraavassa on joitakin yksityiskohtia työnkulustani. On syytä mainita, että työskentelen Linuxilla, mutta voit asentaa sen Macilla tai Windowsilla ilman ongelmia.
Aloitan työpäiväni avaamalla terminaalin, cd ~/Projektit/XYZ ja suorittamalla seuraavan komennon tmux, joten aloitetaan siitä.
Mikä on TMUX? Kuten kirjoittajat sanovat:
TMUX on terminaalimultiplekseri. Sen avulla voit helposti vaihtaa useiden ohjelmien välillä yhdessä päätelaitteessa, irrottaa ne (ne pysyvät käynnissä taustalla) ja liittää ne uudelleen toiseen päätelaitteeseen.
Käytän sitä vaihtaakseni useiden asioiden välillä yhdessä päätelaitteessa. Joten yhdessä TMUX ikkunassa, minulla on Kiskot palvelin käynnissä, toisessa minulla on minun Vim avattu, ja aina kun minun täytyy tehdä jotain terminaalissa, kuten tarkistaa reittejä, suorittaa migraatioita tai testejä, avaan vain uuden ikkunan, jossa lukee CTRL-A C
ja tee se.
En käytä TMUX ikkunat, vain ikkunat, ja vaihda paljon (minulla on CTRL + double-A sidottu vaihtamaan viimeisten ikkunoiden välillä).
Toinen erittäin kätevä ominaisuus TMUX on se, että sen avulla voin etsiä ja kopioida tekstiä päätelaitteesta ilman hiirtä.
Se on tärkein osa työnkulkuani. En aio mennä yksityiskohtiin siitä, mitä tapahtuu. VIM on ja miten se eroaa muista editoreista. Siitä on paljon hyviä artikkeleita ja videoita. Muutamalla sanalla, Vim on modaalinen editori. Siinä on kaksi tilaa, insert-tila ja normaali tila. Insert-tilassa voit kirjoittaa tekstiä asiakirjaan, ja normaalitilassa voit suorittaa asiakirjalle erilaisia toimintoja, kuten siirtää kursoria, poistaa tekstikappaleita, muuttaa tekstiä ja niin edelleen. Se kuulostaa oudolta, mutta jonkin ajan kuluttua se tuntuu hyvin luonnolliselta, ja on hyvin vaikea palata takaisin tavalliseen editoriin.
Haluan näyttää teille, miten yhdistän - Vim muiden työkalujen kanssa saadakseni kaiken, mitä tarvitsen web-kehittäjänä.
En pidä raskaista lisäosista Vim konfiguraatioita, joten käytän vain muutamia. Tässä on luettelo:
NERDtree - se on tiedostojen etsintäohjelma. Sen avulla voit helposti tehdä joitakin tiedostojärjestelmän perustoimintoja, kuten siirtää tiedostoja, nimetä niitä uudelleen, luoda uusia tiedostoja ja monia muita,
vim-endwise - Olen Ruby-kehittäjä, joten käytän sitä lisäämään end
jälkeen jos
, tee
, def
ja useita muita avainsanoja,
vim-rails - se on Kiskot virtaliitäntä. Se tuntee rakenteen Rails-sovellus. Haluatko tarkistaa kursorin alla olevan osittaisen? Paina vain gf
ja se avautuu nykyiseen ikkunaan. Siinä on monia muitakin vaihtoehtoja, mutta käytän sitä useimmiten,
vim-surround - loistava lisäosa, joka tekee työskentelystä ympäristön kanssa erittäin helppoa. Sen avulla voit vaihtaa tekstin ympäristön ():sta []:ksi muutamalla näppäimen painalluksella,
vim-repeat - täydentää Vim-surroundia. Se mahdollistaa toistuvan ympäröivän muutoksen .
(toista viimeinen muutos Vimissä),
vimwiki- tapani tehdä muistiinpanoja,
fzf.vim+ fzf - keskeinen osa minun web-kehitys työnkulku.
Nämä ovat työkaluja, jotka määrittelevät tapani tehdä koodausta. Tajusin, että yleensä kun teen koodaustehtäviä, käytän suurimman osan ajastani siihen, että selvitän, miten asiat toimivat. Tätä varten minun on tarkistettava nopeasti koodipohjan eri osat, metodimääritykset, luokat ja muut asiat.
Fzf on interaktiivinen Unix-suodatin komentoriville, jota voidaan käyttää minkä tahansa luettelon kanssa (tiedostot, komentohistoria, git-kommitit, prosessiluettelot); toisin sanoen se on sumea etsijä.
Ripgrep on vaihtoehto grep:lle, mutta se on se kaikkein nopein.
Kun nämä kaksi yhdistetään, löydän nopeasti kaiken haluamani omasta projekti.
Minulla on kaksi asetusta Vim config-tiedosto auttaa minua tässä:
nnoremap :Files
nnoremap :Rg
Ensimmäisen avulla löysin nopeasti oikeat tiedostot käyttämällä tiedostopolkujen sumeaa hakua (CTRL-P). Toinen käyttää sumeaa etsimistä kaikkiin projektini tiedostopolkuihin ja tiedostojen sisältöön käyttämällä seuraavia komentoja Ripgrep (CTRL-F).
Sanotaan, että haluan etsiä muuttoliikettä, jossa lisäsin sarakkeen sarakkeeseen käyttäjät
pöytä. Painan CTRL-F-näppäintä ja kirjoitan jotain seuraavanlaista adcolusnam
ja se vastaa add_column :users, :name, :string
.
Kun etsin metodin määritelmää, käytän usein CTRL-F-merkkiä def metodin_nimi
.
Se on erittäin hyödyllinen, koska se etsii tiedostopolun + sisällön kautta. Se on erityisen kätevää, kun tiedän, että etsimäni sisältö on tietyssä projektin osassa. Haluan esimerkiksi löytää, missä päivitimme käyttäjätunnuksen, ja muistan sen olleen jossain ohjaimissa. Painan CTRL-F
conupdname
vastaamaan riviä app/controllers/users_controller: @user.update(nimi: uusi_nimi): @user.update(nimi: uusi_nimi)
.
Jos tunnet projektisi ja koodipohjasi rakenteen, voit helposti laatia sumeat hakukyselyt, joiden avulla voit löytää nopeasti lähes mitä tahansa haluamaasi.
Klikkaa tästä nähdäksesi lyhyen nauhoituksen, jossa leikittelen `discourse`-koodipohjan kanssa (440k LOC i5:llä, 16GB:n työpöydällä) ja näytän, miten yleensä liikun projektissa.
Toivottavasti olet kiinnostunut minun setup ja päätti antaa Fzf kokeilla koodauspyrkimyksiäsi. Se todella muutti tapaa, jolla käytän Vim kuin koodi toimittaja.