1 iulie, 2019

dezvoltatorii JavaScript îmbrățișează destul de mult programarea funcțională în aceste zile și există o pledoarie uriașă pentru a scrie funcții Pure. Acum, ce sunt funcțiile Pure? Nu cu mult timp în urmă, am învățat conceptul de funcții Pure și, spre surprinderea mea, scriam deja multe funcții pure, fără să-mi dau seama că există un termen pentru aceasta.

funcții Pure

ce se califică drept funcție pură?

o funcție este considerată pură, dacă respectă următoarele reguli:

  1. funcția returnează întotdeauna aceeași ieșire dacă sunt transmise aceleași argumente.
  2. funcția nu produce efecte secundare.

cu toții am scris funcții pure în trecut cu bună știință sau fără să știm.
aruncați o privire la o funcție pură de mai jos, care returnează o sumă de două numere date două argumente de intrare.

function sumOfNumbers(a, b) { return a + b;}

ieșirea acestei funcții va rămâne întotdeauna aceeași, dacă sunt transmise aceleași argumente de intrare. Destul de simplu. Funcțiile Pure sunt blocuri simple care au întotdeauna un comportament previzibil. Prin urmare, ele returnează întotdeauna aceeași ieșire previzibilă, fără nici o influență externă.

Iată un exemplu simplu, despre cum arată o funcție impură.

var value = 5;function impure(arg) { return value + 2 + 3;}

aici funcția este considerată impură, deoarece nu folosește argumentul care i-a fost transmis. În schimb, folosește o valoare externă care poate fi modificată. Prin urmare, ceea ce face funcția impură din cauza interferențelor externe/efecte secundare.

bine, hai să vorbim despre cerința doi privind efectele secundare.

care sunt efectele secundare?

efectele secundare apar oricând funcția dvs. interacționează cu lumea exterioară.

câteva exemple de reacții adverse frecvente includ:

  • efectuarea unui apel API
  • date mutante
  • jurnalele consolei la ecran
  • manipularea DOM
  • Data.acum() pentru a obține data/ora curentă
  • asincron așteaptă apeluri/așteptare pentru promisiuni pentru a rezolva
  • matematica.random () pentru a genera numere aleatoare

Ei bine, vă puteți întreba cum putem scrie funcții fără efecte secundare tot timpul. Este destul de dificil pentru a evita efectele secundare cu totul. Tot ce spun este că, pentru ca o funcție să se califice drept pură, așa cum sugerează și numele, nu ar trebui să aibă efecte secundare.

ce câștig scriind funcții Pure?

funcții Pure

pic curtoazie: Picpedia.Org

bine, am luat definițiile din drum. Acum vă puteți întreba care sunt beneficiile.

testarea este ușor

Imaginați-vă, aveți o grămadă de funcții pure, care fac doar un singur lucru. Nu au efecte secundare externe și întotdeauna returnează rezultate previzibile. Aceste funcții vor fi mult mai ușor de testat, decât o funcție care are o grămadă de dependențe și comportament imprevizibil. Scrierea unui cod curat și testabil vă va ajuta să vă îmbunătățiți drastic calitatea codului.

codul de depanare nu este o durere

cu funcții pure, codul de depanare nu va fi o durere mare, în comparație cu depanarea funcțiilor impure. Dacă întâmpinați o problemă sau o eroare și ați redus-o la o funcție pură, atunci puteți fi siguri că nu trebuie să priviți în afara sferei acelei funcții pentru a găsi problema. Prin urmare, îmbunătățirea drastică a experienței de depanare a dezvoltatorului.

Memoization pentru a îmbunătăți performanța

cu funcții pure, este garantat să returneze aceeași ieșire pentru o intrare dată. Acest lucru creează posibilitatea de memoization. Când aceeași intrare este transmisă unei funcții, aceasta poate trage rezultatele dintr-o memorie cache, făcând aplicația să funcționeze mai repede. Cache-ul poate economisi tone de resurse și poate îmbunătăți performanța. Și cache funcții pure se poate face fără nici o griji, deoarece acestea sunt previzibile fără efecte secundare.

cod de întreținere, ușor de refactor

acesta este unul evident. Cu codul, care este atât de curat, ușor de testat și de depanare, veți ajunge și cu un cod foarte ușor de întreținut. Acesta este un aspect important care ține cont de viitor. Ani / luni mai târziu, dacă software-ul dvs. trebuie să aibă caracteristici suplimentare și refactorizare, codul care cuprinde o grămadă de funcții pure va fi extrem de intuitiv de re-factor. Nu vor avea efecte secundare externe de care dezvoltatorul ar trebui să-și facă griji. Chiar și dezvoltatorii noi din echipă pot prelua această sarcină cu ușurință.

un exemplu din lumea reală care folosește funcții Pure

Redux este atât de popular și majoritatea dintre noi l-am folosit fie în unele proiecte, fie am auzit de el. Reductoarele sunt funcții care fac parte din modelul Redux și joacă un rol crucial. Cea mai importantă caracteristică a Redux reductoare este că, ele sunt funcții Pure.

reductoarele sunt funcții pure care iau o stare și acționează și returnează o nouă stare.

function(state, action) => newState

reductoarele sunt partea majoră a integrării Redux și dețin o mulțime de logica de afaceri. Și din moment ce redux impune că reductoarele trebuie să fie funcții pure, fără efecte secundare, ajungem cu funcții foarte elegante și simple, ușor de întreținut

Redux este un exemplu clasic de scriere a funcțiilor pure. Se inspiră din programarea funcțională și a câștigat o popularitate imensă în ultimii ani. Este foarte utilizat în aplicațiile web moderne pentru gestionarea statului. Acum știți motivul din spatele succesului său, T este cerința de a scrie funcții pure. Acest lucru face ca Codul să fie testabil, curat, mai ușor de depanat și întreținut.

concluzie

am analizat modul în care scrierea funcțiilor Pure vă poate aduce beneficii și vă poate păstra codul simplu și elegant. Rețineți că funcțiile Pure nu se limitează la JavaScript. Acest concept poate fi adoptat în orice limbaj de programare la alegere. Acesta funcționează bine cu JavaScript și orice limbaj de programare funcțional.

dacă doriți să vă îmbunătățiți abilitățile JavaScript, vă recomand cu tărie cursul Mosh pe JavaScript.

verifică toate cursurile JavaScript aici: https://codewithmosh.com/p/full-stack-javascript-developer-bundle

dacă v-a plăcut această postare, vă rugăm să răspândiți cuvântul și să îl împărtășiți. Verificați din nou pentru mai multe postări.

Adhithi Ravichandran este un Consultant de Software cu sediul în Kansas City. În prezent lucrează la construirea de aplicații cu React, React Native și GraphQL. Este vorbitor de conferință, autor Pluralsight, Blogger și consultant Software. Este pasionată de predare și prosperă să contribuie la comunitatea tehnologică cu cursurile, postările pe blog și angajamentele de vorbire.

etichete: javascript, funcții Pure

Lasă un răspuns

Adresa ta de email nu va fi publicată.