Kódolási oktatóként kötelességem a programozókat új módon gondolkodni. A gondolkodás jelentős elmozdulása akkor következik be, amikor az imperatívról a deklaratív programozásra váltunk.
Miután tanítványaim megtanulták az alapvető JavaScript-et, áttekintjük a funkcionális programozást és a deklaratív kódolási stílusban használt tömb módszereket. Itt kezdődik az agyuk pattogása, sistergése és olvadása, mint a pillecukor a tűz felett.

Mi az elengedhetetlen programozás?
Kezdőként valószínűleg többnyire imperatív stílusban kódoltál: megadod a számítógépnek a követendő utasításokat, és a számítógép könnyen követhető sorrendben megteszi, amit akar.
Képzelje el, hogy van egy listánk a világon leggyakrabban használt jelszavakról:
const passwords = [ "123456", "password", "admin", "freecodecamp", "mypassword123", ];
Alkalmazásunk ellenőrizni fogja a felhasználó jelszavát a regisztráció során, és nem engedi meg nekik, hogy ebből a listából származó jelszót hozzanak létre.
De mielőtt ezt megtennénk, finomítani szeretnénk ezt a listát. Már rendelkezünk olyan kóddal, amely nem teszi lehetővé a felhasználó számára, hogy 9 karakternél rövidebb jelszóval regisztráljon. Tehát ezt a listát csak 9 karakteres vagy annál hosszabb jelszavakra csökkenthetjük, hogy felgyorsítsuk az ellenőrzésünket.
Feltétlenül azt írnánk:
// using the passwords constant from above let longPasswords = []; for (let i = 0; i = 9) { longPasswords.push(password); } } console.log(longPasswords); // logs ["freecodecamp", "mypassword123"];
- Létrehozunk egy üres listát
longPasswords
. - Ezután írunk egy ciklust, amely annyiszor fog futni, ahány jelszó van az eredeti
passwords
listában. - Ezután megkapjuk a jelszót abban a ciklus-iterációban, amelyen jelenleg vagyunk.
- Ezután ellenőrizzük, hogy ez a jelszó nagyobb-e vagy egyenlő-e 9 karakterrel.
- Ha igen, akkor felvesszük a
longPasswords
listába.
A programozás egyik elengedhetetlen tényezője az a tény, hogy könnyen érvelni lehet vele. A számítógéphez hasonlóan lépésről lépésre követhetjük végig.

Mi az a deklaratív programozás?
De van egy másik gondolkodásmód is a kódolásról - mint arról, hogy folyamatosan meghatározzuk a dolgokat. Ezt deklaratív programozásnak nevezzük.
Az imperatív és deklaratív programozás ugyanazokat a célokat éri el. Csak különböző módon gondolkodnak a kódról. Vannak előnyeik és hátrányaik, és van alkalom mindkettő használatára.
Bár az imperatív programozás a kezdők számára könnyebben indokolható, a deklaratív programozás lehetővé teszi számunkra, hogy olvashatóbb kódot írjunk, amely tükrözi azt, amit pontosan látni akarunk. Jó változónevekkel kombinálva hatékony eszköz lehet.
Tehát ahelyett, hogy lépésről lépésre adnánk a számítógépet, kijelentjük, hogy mit akarunk, és ezt hozzárendeljük valamilyen folyamat eredményéhez.
// using the passwords constant from above const longPasswords = passwords.filter(password => password.length >= 9); console.log(longPasswords); // logs ["freecodecamp", "mypassword123"];
A listát csak 9 karakternél nagyobb vagy azzal egyenlő jelszavak szűrt longPasswords
listájaként definiálják (vagy deklarálják) passwords
.
A JavaScript funkcionális programozási módszerei lehetővé teszik a dolgok tiszta deklarálását.
- Ez a jelszavak listája.
- Ez csak a hosszú jelszavak listája. (Futás után
filter
.) - Ez egy azonosítókkal ellátott jelszavak listája. (Futás után
map
.) - Ez egyetlen jelszó. (Futás után
find
.)
A deklaratív programozás egyik erőssége, hogy arra kényszerít minket, hogy először kérdezzük meg, mit akarunk. Ezeknek az új dolgoknak a megnevezésében válik kódunk kifejezővé és egyértelművé.
És amikor fejlesztőtársaink jönnek és megnézik a kódunkat, könnyebben megtalálhatják a hibákat:
"Ezt a változót" indexnek "hívod, ami számomra számít, de úgy látom, ennek az eredménye filter
egy tömb. Mi van ezzel?

Arra biztatom a tanulókat, hogy a lehető leggyakrabban írják meg a deklaratív kódot, folyamatosan meghatározva (és újrafogalmazva az újradefiniálást), hogy mi a helyzet.
Ahelyett, hogy egy teljes imperatív folyamatot tartana a fejében, kézzelfoghatóbb dolgot tarthat a fejében, világos meghatározással.
Mike Zetlow a 10x Code Camp vezető oktatója .