de IObert

Acesta este motivul pentru care citirea-eval-print-loop este atât de uimitoare

Unul dintre lucrurile care fac comunitatea tehnologică atât de specială este că suntem mereu în căutarea unor modalități de a lucra mai eficient. Toată lumea are setul său preferat de instrumente, ceea ce îi face să ruleze mai bine. În calitate de dezvoltator de interfață profesională, Chrome DevTools și Node.js read-eval-print-loop (REPL) au devenit instrumentele mele preferate încă de la început. Am observat că mi-au permis să lucrez mai eficient și mi-au permis să învăț lucruri noi mai repede.

Acesta este motivul pentru care citirea eval print loop este atat de uimitoare
Cele trei faze ale procesului REPL

De fapt, acest lucru m-a făcut curios să investighez de ce acest instrument este atât de util. Aș putea găsi cu ușurință o mulțime de postări pe blog care explică ce REPL-urile sunt și Cum să le folosim, de exemplu Aici sau Aici. Dar acest post aici este dedicat De ce (ca și de ce sunt REPL-urile un instrument atât de grozav pentru dezvoltatori).

„Motivul numărul unu pentru care școlile se îndepărtează de Java, ca limbă de predare, sunt obstacolele în calea programelor Hello-world”.

– Stuart Halloway

Ce este un REPL?

REPL înseamnă citire-evaluare-tipărire-buclă și acesta este practic tot ceea ce există.

Runtime-ul aplicației dvs. se află într-o stare specifică, iar REPL vă ajută să interacționați cu acesta. REPL va citit și a evalua comenzile și imprimare rezultatul și apoi reveniți la început pentru a citi următoarea intrare. a evalua step ar putea să vă schimbe timpul de rulare. Acest proces poate fi văzut ca un interviu cu aplicația dvs. pentru a interoga starea sa actuală.

Cu alte cuvinte, REPL vă face timpul de rulare mai tangibil și vă permite să testează ipoteze despre.

Potrivit lui Stuart Halloway, absența unui REPL în Java este cel mai semnificativ motiv pentru care școlile au început să se mute în alte limbi pentru a preda programarea. Unii oameni folosesc chiar și REPL scrieți teste unitare mai bune.

Folosesc deja un REPL (-like tool) astăzi?

Această explicație de bază ar fi putut să vă amintească de câteva instrumente pe care le utilizați în fiecare zi. Dacă cunoașteți și utilizați unul dintre următoarele instrumente, răspunsul este „da”:

  • Instrumentele de dezvoltare ale browserului dvs. (cum ar fi Chrome DevTools)
  • Terminalul / shell-ul dvs.
  • Caiete Jupyter
  • Procesul REPL în Clojure
  • Repl.it, jsfiddle.net sau jsbin.com
  • Validatori regex online

De ce este atât de util REPL?

Această întrebare m-a ținut sus noaptea pentru că nu am înțeles ce ne face ineficienți în primul rând. Am început să cercetez unele efecte psihologice comune și am încercat să le leg de interacțiunile mele zilnice cu REPL. Iată primele mele trei ipoteze:

Fiind în flux

Fluxul este starea mentală de funcționare în care o persoană care desfășoară o activitate este pe deplin scufundată într-un sentiment de concentrare energizată, implicare deplină și plăcere în procesul activității. (sursă)

Cred că toți suntem familiarizați cu această stare, ne face extrem de productivi și timpul zboara pe scurt. Din păcate, este destul de ușor să „pierzi” fluxul, de exemplu când ești întrerupt sau când trebuie să aștepți o perioadă. Am aflat că acest lucru se poate întâmpla foarte repede: Cercetătorii au aflat că o secundă este legată de limita ca fluxul de gândire al utilizatorului să rămână neîntrerupt.

REPL nu trebuie să compileze sau să implementeze codul dvs. Acest lucru duce la un timp de răspuns foarte scurt (<100ms). Astfel, vă puteți testa ipotezele fără a pierde fluxul.

Acesta este motivul pentru care citirea eval print loop este atat de uimitoare
Aceasta este ceea ce vrem să evităm (sursa: XKCD)

Armare pozitivă

Întărirea pozitivă implică adăugarea unui stimul de întărire în urma unui comportament care face mai probabil ca comportamentul să apară din nou. (sursă)

Acesta este efectul care mă atrage cel mai mult. Creierul tău învață să favorizeze anumite acțiuni atunci când au fost recompensate în trecut. Această recompensă ar putea fi un bonus de la șeful tău după o lună restantă sau un simplu „Super job!” de la instructorul tău de schi.

De fiecare dată când experimentul REPL reușește și ai rezolvat un puzzle / problemă, creierul tău se simte recompensat și! Acest lucru are loc și atunci când codificați într-un IDE comun. Dar REPL răspunde mult mai repede și vă permite să iterați mai des. Deci, mai multe experimente duc la mai multă întărire. Acest efect te face să folosești REPL mai des și îți urmărește mingea (în loc să te distragi prin verificarea e-mailurilor).

Amnezie digitală

Tendința de a uita informațiile care pot fi găsite ușor online utilizând motoare de căutare pe Internet. (sursă)

Trebuie să recunosc, amestec deseori sintaxa Java, Python și JavaScript, deoarece aceste informații pot fi găsite pe tot internetul. M-aș întreba „Trebuie să folosesc adăuga(), adăuga() sau Apăsați() pentru a adăuga un element nou la o matrice în JavaScript? ”. Astfel, pentru mine, un exemplu al acestui efect este amintirea denumirilor metodelor API și referințelor lingvistice.

În REPL, pot vedea funcțiile disponibile imediat cu completare automată:

Acesta este motivul pentru care citirea eval print loop este atat de uimitoare
Funcția de completare a codului din Node.js REPL

Marele lucru este că acest lucru funcționează dincolo de obiectele standard ale limbajelor de programare. Acest lucru funcționează pentru toate cadrele și modulele, ceea ce face ca REPL să fie mai puternic decât IDE-ul tău! Nu mai este nevoie să comparați numerele de versiuni ale modulelor și referințele API:

„Adevărul poate fi găsit doar într-un singur loc: codul.”

– Robert C. Martin, Clean Code

1612171147 900 Acesta este motivul pentru care citirea eval print loop este atat de uimitoare
sursă: arungupta.me

Sper că acest articol te-a ajutat să înțelegi cum funcționează creierul tău și cum REPL te poate ajuta să fii mai productiv.

Sunt curios să văd dacă sunteți de acord cu ipotezele mele sau dacă cunoașteți mai multe instrumente pentru a fi un dezvoltator mai eficient.

Actualizare 13.02.2019:

Am scris și eu o postare pe blog despre utilizarea REPL-urilor în medii Cloud Foundry.

Verifică acest video de DJ Adams dacă doriți să vedeți REPL în acțiune 🙂