1. heinäkuuta, 2019

JavaScript kehittäjät omaksuvat funktionaalista ohjelmointia melko paljon näinä päivinä, ja on valtava puolestapuhuja kirjoittaa puhtaita toimintoja. Mitä ovat puhtaat toiminnot? Jokin aika sitten opin puhtaiden funktioiden käsitteen, ja yllätyksekseni kirjoitin jo monia puhtaita funktioita tajuamatta, että sille oli olemassa termi.

 puhtaat funktiot

mikä määritellään puhtaaksi funktioksi?

funktiota pidetään puhtaana, jos se noudattaa seuraavia sääntöjä:

  1. funktio palauttaa aina saman tuotoksen, jos samat argumentit syötetään sisään.
  2. toiminto ei aiheuta haittavaikutuksia.

meillä on kaikki kirjoitetut puhtaat funktiot menneisyydessä tietoisesti tai tietämättään.
katso alla olevaa puhdasta funktiota, joka palauttaa kahden luvun summan, joka on annettu kahdelle tuloargumentille.

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

tämän funktion ulostulo pysyy aina samana, jos samat syöttöargumentit ohitetaan. Yksinkertaista. Puhtaat toiminnot ovat yksinkertaisia rakennuspalikoita, joilla on aina ennalta arvattava käyttäytyminen. Siksi ne palauttavat aina saman ennustettavan tuotoksen ilman ulkoista vaikutusta.

tässä on yksinkertainen esimerkki siitä, miltä epäpuhdas funktio näyttää.

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

tässä funktiota pidetään epäpuhtaana, koska se ei käytä sille siirrettyä argumenttia. Sen sijaan se käyttää ulkoista arvoa, joka voi muuttua. Siksi toiminnon tekeminen epäpuhtaaksi ulkoisten häiriöiden/sivuvaikutusten vuoksi.

Okei, puhutaan sivuvaikutusten vaatimuksesta kaksi.

mitä sivuvaikutuksia?

haittavaikutuksia esiintyy aina, kun toimintosi on vuorovaikutuksessa ulkomaailman kanssa.

joitakin yleisiä haittavaikutuksia ovat:

  • API-puhelun tekeminen
  • mutatoiva data
  • konsolin lokit näytölle
  • DOM: n manipulointi
  • päivämäärä.nyt () saada nykyinen päivämäärä/aika
  • async odottavat puheluita/odottavat lupauksia ratkaista
  • matematiikka.random () tuottaa satunnaislukuja

No, voi ihmetellä, miten voimme kirjoittaa funktioita ilman sivuvaikutuksia koko ajan. On melko haastavaa välttää sivuvaikutuksia kokonaan. Sanon vain, että jotta funktio voidaan luokitella puhtaaksi, kuten nimestä voi päätellä, sillä ei pitäisi olla sivuvaikutuksia.

mitä saan kirjoittamalla puhtaita funktioita?

 puhtaat funktiot

Pic courtesy: Picpedia.Org

okei, saatiin määritelmät pois alta. Voit nyt kysyä, mitä hyötyä siitä on.

testaus on helppoa

Kuvittele, sinulla on nippu puhtaita funktioita, jotka tekevät vain yhden asian. Niillä ei ole ulkoisia sivuvaikutuksia ja ne palauttavat aina ennustettavan tuotoksen. Nämä toiminnot on niin paljon helpompi testata, kuin funktio, joka on joukko riippuvuuksia ja arvaamaton käyttäytyminen. Puhtaan, testattavan koodin kirjoittaminen auttaa parantamaan koodin laatua rajusti.

Vianetsintäkoodi ei ole kipu

puhtailla funktioilla vianetsintäkoodi ei ole suuri tuska verrattuna virheenkorjaus epäpuhtaisiin funktioihin. Jos törmäät ongelmaan tai bugiin, ja olet rajannut sen puhtaaksi toiminnoksi, voit olla varma, että sinun ei tarvitse katsoa kyseisen toiminnon soveltamisalan ulkopuolelle ongelman löytämiseksi. Siksi merkittävästi parantaa kehittäjän virheenkorjaus kokemus.

Memoointi suorituskyvyn parantamiseksi

puhtailla funktioilla on taattu saman tuotoksen palauttaminen tietylle syötölle. Tämä luo mahdollisuuden muisteluun. Kun sama tulo siirretään funktiolle, se voi vetää tulokset välimuistista, jolloin sovellus toimii nopeammin. Välimuistin tallentaminen voi säästää valtavasti resursseja ja parantaa suorituskykyä. Ja välimuistiin puhdasta toimintoja voidaan tehdä ilman huolta, koska ne ovat ennustettavissa ilman sivuvaikutuksia.

ylläpitävä koodi, helppo refaktori

tämä on ilmeinen. Koodilla, joka on niin puhdas, helppo testata ja debug, päädyt hyvin ylläpidettävissä koodi samoin. Tämä on tärkeä näkökohta, joka pitää tulevaisuuden mielessä. Vuosia / kuukausia myöhemmin, jos ohjelmisto on oltava lisäominaisuuksia, ja refactoring, koodi, joka koostuu joukko puhtaita toimintoja on erittäin intuitiivinen uudelleen tekijä. Heillä ei ole mitään ulkoisia sivuvaikutuksia, että kehittäjä olisi huolissaan. Jopa uudet kehittäjät joukkue voi tarttua tähän tehtävään helposti.

reaalimaailman esimerkki, joka käyttää puhtaita funktioita

Redux on niin suosittu ja useimmat meistä ovat joko käyttäneet sitä joissakin projekteissa tai kuulleet siitä. Reduktorit ovat Redux-kuvioon kuuluvia funktioita, joilla on ratkaiseva rooli. Redux-pelkistimien tärkein ominaisuus on, että ne ovat puhtaita toimintoja.

reduktiot ovat puhtaita funktioita, jotka ottavat tilan ja toiminnan ja palauttavat uuden tilan.

function(state, action) => newState

Redux-integraatio on suurin osa Redux-integraatiota ja pitää sisällään paljon liiketoiminnan logiikkaa. Ja koska redux pakottaa, että pelkistimien on oltava puhtaita funktioita ilman sivuvaikutuksia, päädymme hyvin elegantteihin ja yksinkertaisiin funktioihin, jotka ovat helposti ylläpidettävissä

Redux on klassinen esimerkki puhtaiden funktioiden kirjoittamisesta. Se on saanut inspiraationsa funktionaalisesta ohjelmoinnista ja on saavuttanut valtavan suosion viime vuosina. Sitä käytetään paljon nykyaikaisissa valtionhallinnon verkkosovelluksissa. Nyt tiedät syy sen menestys, t on se vaatimus kirjoittaa puhtaita toimintoja. Tämä tekee koodin testattavissa, puhdas, helpompi debug ja ylläpidettävissä.

johtopäätös

selvitimme, miten puhtaiden funktioiden kirjoittaminen voi hyödyttää sinua ja pitää koodisi yksinkertaisena ja eleganttina. Muista, että puhdas toiminnot eivät rajoitu JavaScript. Tämä käsite voidaan ottaa käyttöön millä tahansa valitsemallasi ohjelmointikielellä. Se toimii hyvin JavaScriptin ja minkä tahansa funktionaalisen ohjelmointikielen kanssa.

jos haluat parantaa JavaScript-taitojasi, suosittelen lämpimästi Mosh ’ s course on JavaScript.

Hae kaikki JavaScript-kurssit täältä: https://codewithmosh.com/p/full-stack-javascript-developer-bundle

jos pidit tästä viestistä, levitä sanaa ja jaa se. Tarkista takaisin uudelleen ennen enemmän virkaa.

Adhithi Ravichandran on Kansas Cityssä toimiva Ohjelmistokonsultti. Tällä hetkellä hän rakentaa sovelluksia React, React Native ja GraphQL. Hän on konferenssipuhuja, moniarvoinen kirjailija, bloggaaja ja Ohjelmistokonsultti. Hän on intohimoinen opettamisesta ja viihtyy edistää tech yhteisön hänen kursseja, blogikirjoituksia ja puhuminen sitoumuksia.

Tags: javascript, puhtaat funktiot

Vastaa

Sähköpostiosoitettasi ei julkaista.