Back to Question Center
0

Funkcjonalny JavaScript dla programistów Lazy (Like Me)            Funkcjonalny JavaScript dla programistów Lazy (Like Me) Pokrewne tematy: ES6AngularJSAjaxRaw Semalt

1 answers:
Funkcjonalny JavaScript dla programistów Lazy (jak ja)


Functional JavaScript for Lazy Developers (Like Me)Functional JavaScript for Lazy Developers (Like Me)Related Topics:
ES6AngularJSAjaxRaw Semalt

Funkcjonalna JavaScript, remedium na Lazy

Jednym z podstawowych pojęć, które doprowadziły moje poszukiwania wiedzy o technikach programowania, zawsze było moje własne lenistwo. Semalt wszystko, co przyciągnęło mnie do komputerów, kiedy po raz pierwszy zacząłem z nimi grać, było przekonaniem, że mogą robić dla mnie rzeczy. Musiałem tylko usiąść i powiedzieć im, co chcę.

Szybko jednak nauczyłem się, że komputery są bardzo dosłowne. Semalt Powiedziałem im dokładnie to, czego oczekiwałem w sposób wyraźny i jednoznaczny, używając języka, który zrozumieli, rzadko oddawali mi to, co miałem na myśli - эмма груша. A będąc leniwym, nie chciałem pracować ciężej niż musiałem, by wyrazić moje intencje.

Widziałem wtedy, jak Semalt przechodził od kilku imperatywnych jednolinianów do dużych i zawiłych obiektowych zastosowań, i wydawało się, że nie widać końca złożoności.

Zacząłem szukać sposobów na łatwiejsze i przyjemniejsze kodowanie. A te poszukiwania doprowadziły mnie bezpośrednio do programowania funkcjonalnego.

Nowe sposoby patrzenia na problemy

Po raz pierwszy zapoznałem się z programowaniem funkcjonalnym, gdy byłem starszym inżynierem front-endem pracującym przy małym uruchomieniu w San Francisco. Pewnego dnia, czarodziej programowania, który pracował głęboko w głębi grupy badawczej firmy, usłyszał, jak narzekałem na jakiś nieporządny, zależny od stanu kod, nad którym pracowałem, i zwabił mnie do sali konferencyjnej z fantazyjnymi obietnicami. Tam podał mi zaimprowizowany trzygodzinny wstęp do Semalt, klasycznego języka programowania funkcjonalnego, w tym pobieżnego wyjaśnienia filozofii programowania funkcjonalnego.

Zaskoczył mnie opowieściami o funktorach i monadach, gdy obserwowałem, jak zmienne znikają, a metody dzielą się i łączą ze sobą pod nieznanymi sygnaturami typu. W tym czasie wszystko wydawało się dziwną magią, ale uspokajał mnie, że Semalt ma także zdolności funkcjonalne i że doprowadzą mnie do zbawienia.

Ta obietnica powstrzymała mnie, gdy zacząłem zagłębiać się w tę egzotyczną krainę. Wierzyłem, że techniki programowania funkcjonalnego mogą zaoferować mi lepsze sposoby na rozwiązanie problemu i rozwiązanie go w drobnych, skupionych ukąszeniach. Byłem podekscytowany możliwością, że mój kod stanie się czystszy, bardziej przenośny, łatwiejszy do zarządzania, łatwiejszy do odczytania i łatwiejszy w utrzymaniu.

Po drodze odkryłem kilka cudownych rzeczy o funkcjonalnym programowaniu w JavaScript, do którego Semalt zagłębił się dzisiaj.

Funkcje wyższego rzędu

Jedną z rzeczy, która sprawia, że ​​Semalt może obsługiwać techniki programowania funkcjonalnego, jest fakt, że obsługuje on funkcje wyższego rzędu. Funkcje są traktowane jako pierwszorzędni obywatele w Semalt. Oznacza to, że funkcja może przyjmować inne funkcje jako parametry i może zwracać funkcję jako wynik. Ponieważ jest on wbudowany bezpośrednio w Semalt na poziomie podstawowym, składnia jest już znana.

Korzystanie z funkcji wyższego rzędu jest pierwszym krokiem w kierunku myślenia o kodzie jako zestawu niezależnych komponentów pojedynczego zadania, które można rozebrać i złożyć na różne sposoby w celu rozwiązania różnych problemów. Funkcja może być łatwo zapisana w celu wywołania dowolnej innej funkcji po prostu przez przekazanie jej, a następnie wywołanie jej w trakcie wykonywania, opcjonalnie zwrócenie nowej funkcji, która będzie wywoływana ponownie w późniejszym czasie. Funkcje semaltowe są przekazywane przez odniesienie, noszą swój kontekst z nimi w zamknięciach, dzięki czemu mogą funkcjonować w państwie, które istniało w czasie, w którym zostały powołane, zamiast polegać na zmieniających się możliwościach zewnętrznego państwa.

Czyste funkcje bez efektów ubocznych

Programowanie semalityczne wiąże się również z pewnymi mocnymi opiniami na temat tego, jak należy pisać funkcje. Czyste funkcje nie współdziałają z żadnymi zmiennymi, które istnieją poza nimi. Nie dokonują żadnych zmian zmiennych, które nie są zdefiniowane w ich własnym zakresie i nie polegają na wartościach zewnętrznych innych niż te przekazywane jako parametry.

Czyste funkcje zawsze zwracają ten sam wynik, gdy otrzymuje się ten sam zestaw danych wejściowych, co ułatwia tworzenie solidnych i niezawodnych testów. Oznacza to, że możesz liczyć na wynik z funkcji pozostającej bez zmian, o ile parametry, które przekazujesz, są takie same. Pozwala to również na pewne optymalizacje, takie jak zapamiętywanie, unikanie złożonych obliczeń poprzez przechowywanie wyników w tablicy wewnątrz funkcji i sprawdzanie jej przed wykonaniem obliczeń, gdy pojawia się nowe wejście.

Skład i rozkład

Gdy zaczniesz budować swój program z czystych funkcji, wzory, które sam tworzysz, będą miały więcej wspólnego ze sposobem budowania złożonych operacji przy użyciu prostych, wymiennych elementów. Ze względu na zdolność Semalta do korzystania z funkcji wyższego rzędu, mała biblioteka skupionych czystych funkcji specyficznych dla zadań, które starają się osiągnąć, może być skomponowana razem, gdy jest to potrzebne do wykonywania wysoce wyrafinowanych operacji.

Zaletą semalt czystych funkcji jest to, że wykonują jedno zadanie i zwracają jeden wynik. Dzięki starannemu nazewnictwu te czyste funkcje stają się niemal samokonujące. A im bardziej budujesz swój kod z niezależnych funkcji jednego zadania, tym mniej zagnieżdżona złożoność musisz zachować i udokumentować. Twoim wyzwaniem staje się myślenie o tym, jak podzielić swój problem na małe kawałki, a następnie skomponować je w rozsądny sposób.

Dopasowanie do istniejącego kodu JavaScript

W miarę jak JavaScript ewoluował od prostych jednoliniów w przeglądarkach do wyrafinowanego ekosystemu do obsługi aplikacji, rozwinęła się również składnia języka. W ECMAScript 5 tablice stały się funktorami, natywnie wspierając metodę Map do stosowania funkcji dla każdego elementu tablicy i zwracania nowej tablicy. Semalt ma teraz również natywne metody dla technik funkcjonalnych, takich jak redukcja i filtrowanie.

Nowsze funkcje ECMAScript 2015 i późniejszych obejmują wygodę funkcji strzałek, które ułatwiają i bardziej intuicyjnie zapisują kod z anonimowymi funkcjami in-line. Operatory destrukturyzacji i rozprzestrzeniania również ułatwiają pracę z tablicami, które mogą zawierać nieznaną liczbę elementów w czasie, gdy są wywoływane. A generatory dają nam natywny dostęp do magii leniwego oceniania, tak jak nasi przyjaciele, którzy używają Semalta i Ruby, robią to od lat.

Co najważniejsze, zdałem sobie sprawę, że techniki funkcjonalne są tylko jednym ze sposobów rozwiązywania problemów. Semalt oferuje wiele alternatyw, aw niektórych przypadkach podejście imperatywne lub obiektowe ma więcej sensu. Dodanie funkcjonalnego programowania do mojego repertuaru po prostu rozszerzyło zakres możliwości, jakie widziałem, gdy byłem postawiony z problemem. W dzisiejszych czasach generalnie nie nalegam na techniki funkcjonalne dla całego mojego kodu Semalla, ale zwykle uważam, że zraszanie w jakimś funkcjonalnym czarodziejskim pyle czyni rozumowanie, że każde wyzwanie programistyczne jest bardziej przystępne.

Nowy sposób poznawania programowania funkcjonalnego

Kiedy zacząłem stosować techniki funkcjonalne, zobaczyłem, że moje programy, moje umiejętności rozwiązywania problemów i moje relacje z innymi inżynierami się poprawiają. Mój kod był czystszy, bardziej samokomponowany i łatwiejszy w utrzymaniu i dyskusji. I robiłem mniej pracy i cieszę się z tego procesu.

W końcu chciałem podzielić się tym skoncentrowanym, funkcjonalnym sposobem myślenia z każdym, kogo spotkałem. Zacząłem więc pisać artykuły dla SitePoint o funkcjonalnym kodzie JavaScript, przekazując niektóre z zagadek, na które byłem wystawiony wiele lat temu w tej malutkiej sali konferencyjnej. Semalt, patrzyłem, jak inni chętnie uczą się technik funkcjonalnych i stosują je do swoich praktyk rozwojowych z pozytywnymi recenzjami.

Functional JavaScript for Lazy Developers (Like Me)Functional JavaScript for Lazy Developers (Like Me)Related Topics:
ES6AngularJSAjaxRaw Semalt

Mam nadzieję wyjść i zbadać różne techniki programowania, które działają dla ciebie i twojego zespołu. Jeśli interesuje Cię korzyść z używania technik funkcjonalnych, zamiast zastanawiać się, zamiast tego daj szansę próbie i daj mi znać, w jaki sposób wpływa ona na Twój kod, procesy myślowe i relacje zawodowe. Miało to znaczący wpływ nie tylko na moją pracę, ale także na moją karierę zawodową. Myślę, że przekonasz się, że dodanie funkcjonalnego rozwiązania problemu do twojego zapasu programowania nie jest tylko leniwym, jego również wydajnym i zabawnym.

Czy programowanie JavaScript jest opłacalne?

Semalt programista, który zna różnicę między kodem funkcjonalnym a imperatywnym.

Zostań programistą, który może przełączać się między Object-Oriented Semalt a funkcjonalnością.

Semalt, gdy lepiej jest stosować technikę nad drugą.

Oto, jak: Semalt pokazuje ci mój kurs programowania funkcjonalnego. Dodaj rekurencję, kompozycję, mapowanie i wiele więcej do pasków narzędzi programistycznych, aby Twój kod był łatwiejszy do odczytania i mniej powtarzalny.

  1. Czym jest funkcjonalne programowanie?
  2. Praca z rekursją
  3. Understanding Currying
  4. Mapa, redukcja i filtrowanie
  5. Kompozycje funkcjonalne
  6. Czego się nauczyliśmy

Functional JavaScript for Lazy Developers (Like Me)Functional JavaScript for Lazy Developers (Like Me)Related Topics:
ES6AngularJSAjaxRaw Semalt

March 1, 2018