Вивчення функціонального програмування зробило мене в 10 разів кращим розробником

Вивчення функціонального програмування зробило мене в 10 разів кращим розробником. Це допомогло мені навчитися писати код, який є чистим, простим в обслуговуванні та масштабованим.

Це особливо важливо в наші дні, коли програмні додатки ускладнюються. Часи створення та обслуговування простого веб-додатка минули.

Як розробник, очікування, поставлені перед вами, вищі, ніж будь-коли. Зараз нам лягає на плечі створення, тестування, підтримка та масштабування складних програм, які впливають на мільйони людей щодня. Це може бути особливо складним , як новачок , тому що ми просто отримати навик написання коду , який на самому ділі працює , НЕ кажучи вже про те , що для написання коду легко для розуміння, писати, налагоджувати, повторне використання та обслуговування.

Тут функціональне програмування змінило мене - воно допомогло мені навчитися легко кодувати, писати, налагоджувати, повторно використовувати та підтримувати. Як результат, я почуваюся набагато впевненіше у своїх можливостях кодування.

Навіть якщо ви не використовуєте функціональну мову програмування на роботі чи у своїх побічних проектах, знання основ функціонального програмування надає вам потужний набір інструментів для написання кращого коду.

У своїй новій електронній книзі я навчу вас основам функціонального програмування, щоб ви мали всі основоположні знання, необхідні для застосування принципів на роботі, під час наступної співбесіди або під час наступного побічного проекту.

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

Давайте прямо в це! ?

Що таке функціональне програмування?

Тому. Що таке "функціональне програмування"?

Функціональне програмування - це не фреймворк чи інструмент, а спосіб написання коду. У функціональному програмуванні ми робимо основний акцент на написанні коду з використанням функцій як "будівельних блоків".

Ваша програма визначається з точки зору однієї основної функції. Ця основна функція визначається з точки зору інших функцій, які, в свою чергу, визначаються з точки зору ще більшої кількості функцій - поки на нижньому рівні функції не є просто мовними примітивами, такими як "число" або "рядок".

Якщо ви читаєте цю думку, "Хм, але почекайте? Чи не кожна мова використовує функції для написання коду? " тоді добре?. Це означає, що ви звертаєте увагу.

Ви маєте рацію - кожна мова програмування має функції. Але функціональне програмування виводить його на зовсім інший рівень ?

Щоб зрозуміти, що я маю на увазі, давайте перемотаємо назад і почнемо з основ.

Кожна програма має дві речі:

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

Коли ми дізнаємося про парадигму програмування, як-от функціональне програмування, часто корисно розглянути, як парадигма підходить відповідно до поведінки та даних.

Поведінка у функціональному програмуванні обробляється виключно за допомогою функцій у функціональному програмуванні. Функції- це «самостійні» фрагменти коду, які виконують певне завдання. Вони визначають взаємозв'язок між набором можливих входів і набором можливих виходів - вони зазвичай беруть дані, обробляють їх і повертають результат. Після написання функції її можна використовувати знову і знову і знову.

Дані у функціональному програмуванні незмінні - це означає, що їх неможливо змінити. Замість того, щоб змінювати дані, які вони приймають, функції функціонального програмування беруть дані як вхідні дані та створюють нові значення як вихідні. Завжди.

Функції та незмінні дані - це єдині дві речі, з якими вам доводиться мати справу у функціональному програмуванні. Щоб зробити це ще простішим, функції обробляються не інакше, як дані.

Іншими словами, функції функціонального програмування можуть передаватися так само просто, як і дані. Ви можете посилатися на них із констант та змінних , передавати їх як параметри іншим функціям і повертати як результати з інших функцій.

Це найважливіше, що слід розуміти під час підходу до функціонального програмування.

Розглядаючи функції як ніщо особливе, ніж фрагмент даних, і використовуючи лише ті дані, які є незмінними, ми отримуємо набагато більше свободи щодо того, як ми можемо використовувати функції.

А саме, це дозволяє нам створювати невеликі незалежні функції, які можна використовувати повторно та комбінувати разом для побудови дедалі складнішої логіки. Ми можемо розбити будь-яку складну проблему на менші підзадачі, вирішити їх за допомогою функцій і, нарешті, об’єднати для вирішення більшої проблеми.

Беручи до уваги постійно зростаючу складність програмних додатків, такий підхід "будівельного блоку" робить величезну різницю у підтримці програм простими, модульними та зрозумілими. Ось чому розробники прагнуть зробити свої функції максимально загальними , щоб їх можна було поєднувати для вирішення великих, складних проблем і повторно використовувати для прискорення часу розробки наступних програм.

Зрештою, причина настільки потужних функцій у функціональному програмуванні полягає в тому, що функції відповідають певним основним принципам. Ці принципи будуть предметом мого курсу електронної пошти:

  • Функції чисті
  • Функції використовують незмінні дані
  • Функції гарантують референтну прозорість
  • Функції - це першокласні сутності

Після цього я коротко зупинюсь на тому, як функціональне програмування застосовує ці принципи, щоб спонукати нас ретельно продумати наші дані та функції, які з ними взаємодіють.

Врешті-решт, ви зможете зрозуміти, як такий підхід веде до коду, який є:

  • Легше зрозуміти (тобто "виразно")
  • Простіше повторно використовувати
  • Простіше перевірити
  • Простіше в обслуговуванні
  • Простіше рефакторировать
  • Простіше оптимізувати
  • Простіше міркувати про

Звучить захоплююче? Якщо так, то вам сподобається нова електронна книга. ?

Електронна книга вийде 13 грудня . Ви можете попередньо замовити електронну книгу всього за 49 доларів! І як спеціальну пропозицію для безкоштовного співтовариства FreeCodeCamp я пропоную знижку в розмірі 10 доларів з кодом знижки " freecodecamp ".

До зустрічі! ?? ✍️