În calitate de instructor de codificare, este de datoria mea să trimit programatori în lume gândind în moduri noi. O schimbare majoră în gândire are loc atunci când trecem de la programarea imperativă la cea declarativă.

Odată ce elevii mei au învățat JavaScript de bază, trecem peste programarea funcțională și metodele matrice utilizate într-un stil de codare declarativ. Aici creierul lor începe să iasă și să se sfărâme și să se topească ca niște marshmallows pe foc.

Programarea imperativa vs declarativa diferenta explicata in engleza simpla

Ce este programarea imperativă?

Ca începător, probabil că ați codificat în mare parte un stil imperativ: dați computerului un set de instrucțiuni de urmat și computerul face ceea ce doriți într-o secvență ușor de urmat.

Imaginați-vă că avem o listă cu cele mai utilizate parole din lume:

const passwords = [
   "123456",
   "password",
   "admin",
   "freecodecamp",
   "mypassword123",
];

Aplicația noastră va verifica parola utilizatorului la înscriere și nu le va permite să creeze o parolă din această listă.

Dar, înainte de a face asta, vrem să rafinăm această listă. Avem deja cod care nu permite utilizatorului să se înscrie cu o parolă mai mică de 9 caractere. Așadar, putem reduce această listă doar la parole care au cel puțin 9 caractere pentru a ne accelera verificarea.

Imperativ, am scrie:

// using the passwords constant from above

let longPasswords = [];
for (let i = 0; i < passwords.length; i++) {
   const password = passwords[i];
   if (password.length >= 9) {
      longPasswords.push(password);
   }
}

console.log(longPasswords); // logs ["freecodecamp", "mypassword123"];
  1. Creăm o listă goală numită longPasswords.
  2. Apoi scriem o buclă care va rula de câte ori există parole în original passwords listă.
  3. Apoi obținem parola la indexul iterației de buclă pe care ne aflăm în prezent.
  4. Apoi verificăm dacă acea parolă are o lungime mai mare sau egală cu 9 caractere.
  5. Dacă este, îl punem în longPasswords listă.

Unul dintre punctele forte ale programării imperative este faptul că este ușor de raționat. La fel ca un computer, putem urmări pas cu pas.

1611617944 501 Programarea imperativa vs declarativa diferenta explicata in engleza simpla

Ce este programarea declarativă?

Dar există un alt mod de a gândi despre codificare – ca un proces de definire constantă a lucrurilor. Aceasta este denumită programare declarativă.

Programarea imperativă și declarativă atinge aceleași obiective. Sunt doar moduri diferite de a gândi codul. Au avantajele și dezavantajele lor și există momente în care să le folosim pe amândouă.

Deși programarea imperativă este mai ușor de argumentat pentru începători, programarea declarativă ne permite să scriem un cod mai lizibil care reflectă exact ceea ce vrem să vedem. Combinat cu nume variabile bune, poate fi un instrument puternic.

Deci, în loc să dăm instrucțiuni computerului pas cu pas, declarăm ce vrem și atribuim acest lucru rezultatului unui proces.

// using the passwords constant from above

const longPasswords = passwords.filter(password => password.length >= 9);

console.log(longPasswords); // logs ["freecodecamp", "mypassword123"];

Lista de longPasswords este definit (sau declarat) ca lista de passwords filtrat numai pentru parole mai mari sau egale cu 9 caractere.

Metodele funcționale de programare din JavaScript ne permit să declarăm lucrurile în mod curat.

  • Aceasta este o listă de parole.
  • Aceasta este o listă cu doar parole lungi. (După alergare filter.)
  • Aceasta este o listă de parole cu ID-uri. (După alergare map.)
  • Aceasta este o singură parolă. (După alergare find.)

Unul dintre punctele forte ale programării declarative este că ne obligă să întrebăm ce vrem mai întâi. Codul nostru devine expresiv și explicit în denumirea acestor lucruri noi.

Și când colegii noștri dezvoltatori vin și analizează codul nostru, ei pot găsi erori mai ușor:

„Numiți această variabilă„ index ”ceea ce mă face să mă aștept la un număr, dar văd că este rezultatul filter care returnează o matrice. Ce-i cu aia?”

1611617944 245 Programarea imperativa vs declarativa diferenta explicata in engleza simpla

Îi încurajez pe cursanți să scrie cod declarativ cât mai des posibil, definind în mod constant (și refactorizând pentru a redefini) ce sunt lucrurile.

Mai degrabă decât să țineți un întreg proces imperativ în capul dvs., puteți ține un mai tangibil lucru în capul tău cu o definiție clară.

Mike Zetlow este instructorul principal la 10x Cod tabără.