At lære funktionel programmering gjorde mig til en 10x bedre udvikler

At lære funktionel programmering gjorde mig til en 10x bedre udvikler. Det hjalp mig med at lære, hvordan jeg skriver kode, der er ren, nem at vedligeholde og skalerbar.

Dette er især vigtigt i dag og tid, hvor softwareapplikationer bliver mere komplicerede. Dagen for opbygning og vedligeholdelse af en simpel webapp er forbi.

Som udvikler er forventningerne til dig højere end nogensinde. Det falder nu på vores skuldre at opbygge, teste, vedligeholde og skalere komplekse applikationer, der påvirker millioner af mennesker dagligt. Dette kan være særligt skræmmende som nybegynder, fordi vi bare får fat i at skrive kode, der rent faktisk fungerer , endsige at skrive kode, der er let at forstå, skrive, debug, genbruge og vedligeholde.

Det var her, funktionel programmering gjorde en forskel for mig - det hjalp mig med at lære at kode, der er let at forstå, skrive, debug, genbruge og vedligeholde. Som et resultat føler jeg mig meget mere selvsikker på mine kodningsevner.

Selvom du ikke bruger et funktionelt programmeringssprog på arbejdspladsen eller på dine sideprojekter, kender du det grundlæggende i funktionel programmering dig med et kraftfuldt sæt værktøjer til at skrive bedre kode.

I min nye e-bog vil jeg lære dig de grundlæggende funktioner i funktionel programmering, så du har al den grundlæggende viden, du har brug for til at anvende principperne på arbejdspladsen, i dit næste jobinterview eller på dit næste sideprojekt.

Resten af ​​indlægget giver dig en enkel forklaring på, hvad funktionel programmering er, som du skal vide, før du dykker ned i e-bogen. ?

Lad os komme lige ind i det! ?

Hvad er funktionel programmering?

Så. Hvad er "funktionel programmering" nøjagtigt?

Funktionel programmering er ikke en ramme eller et værktøj, men en måde at skrive kode på. I funktionel programmering lægger vi stor vægt på at skrive kode ved hjælp af funktioner som "byggesten".

Dit program er defineret i form af en hovedfunktion. Denne hovedfunktion er defineret i form af andre funktioner, som igen defineres i form af endnu flere funktioner - indtil funktionerne på bundniveauet kun er sprogprimitiver som “nummer” eller “streng”.

Hvis du læser denne tankegang, “Hmm, men vent? Bruger ikke hvert sprog funktioner til at skrive kode? ” så godt?. Det betyder, at du er opmærksom.

Du har ret - hvert programmeringssprog har funktioner. Men funktionel programmering tager det til et helt andet niveau ?

For at forstå hvad jeg mener, lad os spole tilbage og starte med det grundlæggende.

Hvert softwareprogram har to ting:

  1. Adfærd (hvad programmet gør)
  2. Data (data, er godt, data)

Når vi lærer om et programmeringsparadigme - som funktionel programmering - er det ofte nyttigt at overveje, hvordan paradigmet nærmer sig henholdsvis adfærd og data.

Adfærd i funktionel programmering håndteres udelukkende ved hjælp af funktioner i funktionel programmering. Funktionerer "selvstændige" kodestykker, der udfører en bestemt opgave. De definerer et forhold mellem et sæt mulige input og et sæt mulige output - de tager normalt data ind, behandler dem og returnerer et resultat. Når en funktion er skrevet, kan den bruges igen og igen og igen.

Data i funktionel programmering er uforanderlige - hvilket betyder, at de ikke kan ændres. I stedet for at ændre data, de tager i, modtager funktioner i funktionel programmering data som input og producerer nye værdier som output. Altid.

Funktioner og uforanderlige data er de eneste to ting, du nogensinde har brug for at håndtere i funktionel programmering. For at gøre det endnu enklere behandles funktioner ikke anderledes end data.

Sagt på en anden måde, funktioner i funktionel programmering kan videregives lige så let som data. Du kan henvise til dem fra konstanter og variabler , videregive dem som parametre til andre funktioner og returnere dem som resultater fra andre funktioner.

Dette er den vigtigste ting at forstå, når man nærmer sig funktionel programmering.

Ved at behandle funktioner som intet mere specielt end et stykke data og kun bruge data, der er uforanderlige, får vi meget mere frihed med hensyn til, hvordan vi kan bruge funktioner.

Det giver os nemlig mulighed for at oprette små uafhængige funktioner, der kan genbruges og kombineres sammen for at opbygge mere og mere kompleks logik. Vi kan opdele ethvert komplekst problem i mindre delproblemer, løse dem ved hjælp af funktioner og til sidst kombinere dem sammen for at løse det større problem.

I betragtning af den stadigt voksende kompleksitet af softwareapplikationer gør denne form for "byggesten" en enorm forskel i at holde programmer enkle, modulære og forståelige. Dette er også grunden til, at udviklere stræber efter at gøre deres funktioner så generelle formål som muligt, så de kan kombineres for at løse store, komplekse problemer og genbruges for at fremskynde udviklingstiden til efterfølgende programmer.

I sidste ende er grunden til, at funktioner er så stærke i funktionel programmering, fordi funktionerne følger visse grundlæggende principper. Disse principper vil være genstand for mit e-mail-kursus:

  • Funktioner er rene
  • Funktioner bruger uforanderlige data
  • Funktioner garanterer henvisning til gennemsigtighed
  • Funktioner er førsteklasses enheder

Derefter vil jeg kort berøre, hvordan funktionel programmering anvender disse principper for at tilskynde os til at tænke nøje om vores data og de funktioner, der interagerer med det.

I slutningen vil du være i stand til at forstå, hvordan denne tilgang fører til kode, der er:

  • Lettere at forstå (dvs. "udtryksfuld")
  • Lettere at genbruge
  • Lettere at teste
  • Lettere at vedligeholde
  • Lettere at refaktorere
  • Lettere at optimere
  • Lettere at ræsonnere om

Lyder spændende? I så fald vil du elske den nye e-bog. ?

E-bogen frigives den 13. december . Du kan forudbestille e-bogen nu for kun $ 49! Og som et særtilbud til det gratis FreeCodeCamp-samfund, tilbyder jeg $ 10 i rabat med rabatkoden " freecodecamp ".

Vi ses derinde! ?? ✍️