Regândirea morții javascript pentru, savepearlharbor

Buclele pentru noi ne-au servit bine, dar sunt depășite și trebuie să renunțe la tehnicile de programare mai noi și mai funcționale.

Din fericire, acest fapt nu necesită să fii un maestru al programării funcționale, mai mult, acest lucru este ceva pe care îl poți folosi în proiectele tale actuale chiar acum.

Proiectarea bucla pentru forță impune mutații ale stării și folosirea efectelor secundare, care sunt surse potențiale de bug-uri și comportament de cod imprevizibil.

Am auzit cu toții că statul global este rău și că trebuie să-l evităm. Cu toate acestea, statul local are aceleași probleme ca cel global. noi nu le facem față atât de des, deoarece apar la o scară mai mică. De fapt, nu am rezolvat problema, ci doar am redus-o la minim.

Odată ce, folosind o stare mișcătoare, valoarea variabilei aleatoare se va schimba dintr-un motiv necunoscut și veți petrece ore de depanare și găsirea cauzei modificării. Părul meu pe capul meu se află pe capăt, doar dintr-un gând despre el.

Aș dori să vorbesc puțin despre efectele secundare. Aceste cuvinte chiar sună groaznic, efecte secundare. Sunt gunoi. Vrei efecte secundare în programele tale? Nu, nu vreau efecte secundare în programele mele!

Dar ce sunt efectele secundare?

Se crede că funcția are efecte secundare dacă modifică ceva dincolo de domeniul său de aplicare. Aceasta poate fi o schimbare variabilă, intrarea utilizatorului, interogarea la api, scrierea datelor pe disc, înregistrarea la consola etc.

Efectele secundare sunt un instrument foarte puternic, dar cu mare putere vine o mare responsabilitate.

Mai puține cuvinte, mai multe coduri. Să ne uităm la o bucla tipică. pe care probabil că ați văzut de sute de ori.

Voi reface acest cod pas cu pas, astfel încât să puteți observa cum să transformați cu ușurință propriul cod în ceva mai frumos.

În primul rând, extrag expresia condiționată într-o funcție separată:

A face condiții este, în general, o practică bună. Schimbarea filtrării de la "mai puțin de 7 luni" la "dacă un pisoi" este un mare pas înainte. Acum codul ne transmite intențiile noastre mult mai bine. De ce luăm pisici de până la 7 luni? Nu este clar. Vrem să găsim pisoi, așa că spuneți codul!

Un alt avantaj este faptul că Kitten poate fi reutilizat acum și știm cu toții că reutilizarea codului ar trebui să fie întotdeauna scopul nostru.

Următoarea modificare este extragerea transformării (sau cartografierii) pisicii într-un nume. Această schimbare va fi mai ușor de înțeles mai târziu, iar acum aveți încredere în mine.

Observați că am scăpat de kittens.push (.). Nu mai există mutații ale afecțiunii și nu var.

Preferința de cod pentru const înainte de var și să pară destul de atrăgătoare

Desigur, am putea folosi const încă de la început, deoarece nu face obiectul propriu-zis imun (mai mult despre asta), dar acesta este un exemplu fictiv, nu stai jos!

Și ultima modificare, aș sugera, de asemenea, extragerea filtrării și cartografierii în funcție (pentru reutilizarea completă a codului).

teme pentru acasă

Examinați extragerea metodelor de filtrare și de hartă din obiectele lor.
Quest cu un asterisc: explorați compoziția funcțiilor.

Ce zici de pauză

concluzie