Изучаването на функционално програмиране ме направи 10 пъти по-добър разработчик

Изучаването на функционално програмиране ме направи 10 пъти по-добър разработчик. Помогна ми да науча как да пиша код, който е чист, лесен за поддръжка и мащабируем.

Това е особено важно в наши дни, когато софтуерните приложения продължават да се усложняват. Дните на изграждане и поддържане на просто уеб приложение отминаха.

Като разработчик, очакванията към вас са по-високи от всякога. Сега ни пада върху плещите да изграждаме, тестваме, поддържаме и мащабираме сложни приложения, които въздействат на милиони хора ежедневно. Това може да бъде особено обезсърчително като начинаещ, защото ние просто се хващаме да пишем код, който всъщност работи , да не говорим за писане на код, който е лесен за разбиране, писане, отстраняване на грешки, повторна употреба и поддръжка.

Това е мястото, където функционалното програмиране направи разлика за мен - помогна ми да се науча как да кодирам лесно за разбиране, писане, отстраняване на грешки, повторна употреба и поддръжка. В резултат на това се чувствам много по-уверен в своите кодиращи способности.

Дори да не използвате функционален език за програмиране по време на работа или в странични проекти, познаването на основите на функционалното програмиране ви предоставя мощен набор от инструменти за писане на по-добър код.

В новата си електронна книга ще ви науча на основите на функционалното програмиране, така че да имате всички основни знания, от които се нуждаете, за да приложите принципите в работата, на следващото си интервю за работа или в следващия си страничен проект.

Останалата част от публикацията ще ви даде просто обяснение какво е функционално програмиране, което трябва да знаете, преди да се потопите в електронната книга. ?

Нека да влезем направо в него! ?

Какво е функционално програмиране?

Така. Какво точно е „функционално програмиране“?

Функционалното програмиране не е рамка или инструмент, а начин за писане на код. Във функционалното програмиране ние поставяме основен акцент върху писането на код, използвайки функции като „градивни елементи“.

Вашата програма е дефинирана от гледна точка на една основна функция. Тази основна функция е дефинирана от гледна точка на други функции, които от своя страна са дефинирани по отношение на още повече функции - докато на долното ниво функциите не са само езикови примитиви като „число“ или „низ“.

Ако четете това мислене, „Хм, но изчакайте? Всеки език не използва ли функции за писане на код? “ тогава добре? Това означава, че обръщате внимание.

Прав си - всеки език за програмиране има функции. Но функционалното програмиране го извежда на съвсем друго ниво ?

За да разберете какво имам предвид, нека да се върнем назад и да започнем с основите.

Всяка софтуерна програма има две неща:

  1. Поведение (какво прави програмата)
  2. Данни (данни, добре, данни)

Когато научаваме за програмна парадигма - подобно на функционалното програмиране - често е полезно да обмислим как парадигмата подхожда съответно към поведението и данните.

Поведението във функционалното програмиране се обработва чисто с помощта на функции във функционалното програмиране. Функцииса „самостоятелни“ парчета код, които изпълняват определена задача. Те определят връзката между набор от възможни входове и набор от възможни изходи - те обикновено приемат данни, обработват ги и връщат резултат. След като една функция е написана, тя може да се използва отново и отново и отново.

Данните във функционалното програмиране са неизменни - което означава, че не могат да бъдат променяни. Вместо да променят данните, които приемат, функциите във функционалното програмиране приемат данните като вход и създават нови стойности като изход. Винаги.

Функциите и неизменните данни са единствените две неща, с които трябва да се справяте някога във функционалното програмиране. За да бъде още по-просто, функциите се третират не по-различно от данните.

Казано по друг начин, функциите във функционалното програмиране могат да се предават толкова лесно, колкото и данните. Можете да ги препращате от константи и променливи , да ги предавате като параметри на други функции и да ги връщате като резултати от други функции.

Това е най-важното нещо, което трябва да разберете при подхода към функционалното програмиране.

Като третираме функциите като нищо по-специално от част от данните и като използваме само данни, които са неизменни, ние получаваме много повече свобода по отношение на това как можем да използваме функциите.

А именно, тя ни позволява да създаваме малки, независими функции, които могат да бъдат използвани повторно и комбинирани заедно, за да изградим все по-сложна логика. Можем да разделим всеки сложен проблем на по-малки подпроблеми, да ги решим с помощта на функции и накрая да ги комбинираме заедно, за да решим по-големия проблем.

Като се има предвид непрекъснато нарастващата сложност на софтуерните приложения, този вид "градивен блок" прави огромна разлика в поддържането на програмите прости, модулни и разбираеми. Ето защо разработчиците се стремят да направят функциите си възможно най- общо , така че да могат да се комбинират за решаване на големи, сложни проблеми и да се използват повторно, за да ускорят времето за разработка на следващите програми.

В крайна сметка причината, поради която функциите са толкова мощни във функционалното програмиране, е, че функциите следват определени основни принципи. Тези принципи ще бъдат предмет на моя имейл курс:

  • Функциите са чисти
  • Функциите използват неизменяеми данни
  • Функциите гарантират референтна прозрачност
  • Функциите са първокласни обекти

След това накратко ще засегна как функционалното програмиране прилага тези принципи, за да ни насърчи да обмислим внимателно нашите данни и функциите, които взаимодействат с тях.

В края ще можете да разберете как този подход води до код, който е:

  • По-лесно за разбиране (т.е. „изразително“)
  • По-лесно за повторно използване
  • По-лесно за тестване
  • По-лесно се поддържа
  • По-лесно се рефакторира
  • По-лесно за оптимизиране
  • По-лесно да се разсъждава за

Звучи вълнуващо? Ако е така, ще ви хареса новата електронна книга. ?

Електронната книга ще излезе на 13 декември . Вече можете да поръчате електронната книга само за $ 49! И като специална оферта за безплатната общност FreeCodeCamp предлагам 10 $ отстъпка с кода за отстъпка " freecodecamp ".

Ще се видим там! ?? ✍️