Učenje funkcionalnog programiranja učinilo me je deset puta boljim programerom

Učenje funkcionalnog programiranja učinilo me je deset puta boljim programerom. Pomogao mi je naučiti kako pisati kod koji je čist, lak za održavanje i skalabilan.

To je osobito važno u današnje vrijeme kada se softverske aplikacije sve više kompliciraju. Dani izgradnje i održavanja jednostavne web aplikacije su prošli.

Kao programer, očekivanja koja su vam postavljena veća su nego ikad. Na naša pleća sada pada gradnja, testiranje, održavanje i skaliranje složenih aplikacija koje svakodnevno utječu na milijune ljudi. To može biti osobito zastrašujuće kao početnik, jer mi smo samo uzimajući objesiti od pisanja koda koji zapravo radi , a kamoli za pisanje koda koji je jednostavan za shvatiti, pisati, debug, ponovnu upotrebu i održavanje.

Ovdje je funkcijsko programiranje za mene učinilo razliku - pomoglo mi je naučiti kako kodirati lako razumljivo, pisati, ispravljati pogreške, ponovno koristiti i održavati. Kao rezultat toga, osjećam se puno sigurnije u svoje sposobnosti kodiranja.

Čak i ako ne koristite funkcionalni programski jezik na poslu ili na sporednim projektima, poznavanje osnova funkcionalnog programiranja opremljuje vas moćnim nizom alata za pisanje boljeg koda.

U svojoj novoj e-knjizi naučit ću vas osnovama funkcionalnog programiranja kako biste imali sva temeljna znanja koja su vam potrebna za primjenu principa na poslu, na sljedećem razgovoru za posao ili na sljedećem sporednom projektu.

Ostatak posta dat će vam jednostavno objašnjenje što je to funkcionalno programiranje, koje ćete morati znati prije nego što zaronite u e-knjigu. ?

Krenimo odmah! ?

Što je funkcionalno programiranje?

Tako. Što je točno "funkcionalno programiranje"?

Funkcionalno programiranje nije okvir ili alat, već način pisanja koda. U funkcionalnom programiranju glavni naglasak stavljamo na pisanje koda koristeći funkcije kao "gradivne blokove".

Vaš program definiran je u smislu jedne glavne funkcije. Ova glavna funkcija definirana je u smislu ostalih funkcija, koje su pak definirane u smislu još više funkcija - sve dok na donjoj razini funkcije nisu samo jezični primitivi poput "broj" ili "niz".

Ako čitate ovo razmišljajući, „Hm, ali pričekaj? Ne koristi li svaki jezik funkcije za pisanje koda? " onda dobro? Znači da obraćate pažnju.

U pravu ste - svaki programski jezik ima funkcije. Ali funkcionalno programiranje podiže ga na sasvim drugu razinu ?

Da bismo shvatili na što mislim, vratimo se unatrag i krenimo s osnovama.

Svaki softverski program ima dvije stvari:

  1. Ponašanje (što program radi)
  2. Podaci (podaci, dobro, podaci)

Kada učimo o programskoj paradigmi - poput funkcionalnog programiranja - često je korisno razmotriti kako se paradigma približava ponašanju i podacima.

Ponašanje se u funkcionalnom programiranju rješava isključivo pomoću funkcija u funkcionalnom programiranju. Funkcijesu "samostalni" dijelovi koda koji izvršavaju određeni zadatak. Oni definiraju odnos između skupa mogućih ulaza i skupa mogućih izlaza - oni obično uzimaju podatke, obrađuju ih i vraćaju rezultat. Jednom kada je funkcija napisana, može se koristiti iznova i iznova.

Podaci su u funkcionalnom programiranju nepromjenjivi - što znači da se ne mogu mijenjati. Umjesto da mijenjaju podatke koje uzimaju, funkcije funkcionalnog programiranja uzimaju podatke kao ulaz i proizvode nove vrijednosti kao izlaz. Stalno.

Funkcije i nepromjenjivi podaci jedine su dvije stvari s kojima se morate suočiti u funkcionalnom programiranju. Da bi bilo još jednostavnije, funkcije se ne tretiraju drugačije od podataka.

Drugim riječima, funkcije u funkcionalnom programiranju mogu se prenositi jednako lako kao i podaci. Možete ih uputiti iz konstanti i varijabli , proslijediti ih kao parametre drugim funkcijama i vratiti ih kao rezultate drugih funkcija.

To je najvažnije što treba razumjeti kada se pristupa funkcionalnom programiranju.

Tretirajući funkcije kao ništa posebnije od dijela podataka i koristeći samo podatke koji su nepromjenjivi, daje nam se puno više slobode u pogledu načina na koji možemo koristiti funkcije.

Naime, omogućuje nam stvaranje malih, neovisnih funkcija koje se mogu ponovno koristiti i kombinirati zajedno za izgradnju sve složenije logike. Bilo koji složeni problem možemo razbiti na manje potprobleme, riješiti ih pomoću funkcija i na kraju kombinirati da bismo riješili veći problem.

S obzirom na sve veću složenost softverskih aplikacija, ovakav pristup "građevnih blokova" čini veliku razliku u održavanju programa jednostavnim, modularnim i razumljivim. To je i razlog zašto programeri nastoje svoje funkcije učiniti što općenitijim , kako bi se mogli kombinirati za rješavanje velikih, složenih problema i ponovno koristiti za ubrzavanje vremena razvoja za sljedeće programe.

U konačnici, razlog zašto su funkcije toliko moćne u funkcionalnom programiranju jest taj što funkcije slijede određene temeljne postavke. Ta će načela biti predmet mog tečaja e-pošte:

  • Funkcije su čiste
  • Funkcije koriste nepromjenjive podatke
  • Funkcije jamče referentnu transparentnost
  • Funkcije su prvorazredne cjeline

Nakon toga ukratko ću se dotaknuti kako funkcionalno programiranje primjenjuje ove postavke potaknuvši nas da dobro razmislimo o našim podacima i funkcijama koje s njima komuniciraju.

Na kraju ćete moći razumjeti kako ovaj pristup dovodi do koda koji je:

  • Jednostavnije za razumijevanje (to jest, „izražajno“)
  • Lakša ponovna upotreba
  • Lakše testirati
  • Jednostavnije za održavanje
  • Jednostavnije za refaktoriranje
  • Jednostavnije za optimizaciju
  • Lakše je razmišljati o tome

Zvuči uzbudljivo? Ako je tako, svidjet će vam se nova e-knjiga. ?

E-knjiga će biti objavljena 13. prosinca . E-knjigu možete unaprijed naručiti za samo 49 dolara! I kao posebnu ponudu besplatnoj zajednici FreeCodeCamp, nudim 10 USD popusta s kodom za popust " freecodecamp ".

Vidimo se tamo! ?? ✍️