Revision 457: Funktionale Programmierung mit Tobi Timm

Published: Dec. 29, 2020, 9 a.m.

b'Developer und Speaker Tobi Timm, Senior Product Engineer bei SinnerSchrader,\\nKoorganisator bei Nodeschool MUX/AUX\\xa0und React Munich,\\xa0erz\\xe4hlte Stefan, Schepp\\nund Vanessa \\xfcber funktionale Programmierung und endliche Zustandsmaschinen in\\nJavaScript.\\n\\n\\nSCHAUNOTIZEN\\n\\n[00:00:29] FUNKTIONALE PROGRAMMIERUNG EN VOGUE\\n\\nDurch die immer h\\xf6here Popularit\\xe4t von progressiven Frontend-Frameworks wie\\nReact.js und Vue.js, die jeweils Ans\\xe4tze der Funktionalen Programmierung (FP)\\naufweisen, erlaubt die FP an sich einen Aufschwung in der Web Entwicklung. Neben\\nElm, ein von Haskell inspiriertes Framework, gibt es f\\xfcr JavaScript-Entwickler\\nund -Entwicklerinnen die Bibliothek Ramda.js. F\\xfcr ESLint steht das Plugin\\neslint-plugin-functional zur Verf\\xfcgung.\\xa0Das wohl wichtigste Paradigma der\\nFunktionalen Programmierung besteht daraus, das ausschlie\\xdflich Funktionen\\ngeschrieben werden. Die Konzepte kommen von Haskell, LISP, OCaml oder auch\\nScheme, einem Vorg\\xe4nger von Javascript. Funktionen gelten als \\u201eFirst Class\\nCitizen\\u201c und werden dabei auch \\u201ePure Functions\\u201c genannt.\\xa0Diese generieren bei\\ngleichem Input immer den gleichen Output und verwenden keine Variablen au\\xdferhalb\\nihres Scopes. Ein Vorteil von Funktionaler Programmierung ist dadurch, dass\\nNebenl\\xe4ufigkeiten verhindert werden und der Code weniger fehleranf\\xe4llig ist.\\nGetestet werden m\\xfcssen dann Werte von au\\xdferhalb, wie z.B. Nutzereingaben oder\\nAntworten von APIs. F\\xfcr den Einstieg in die FP in einer bestehenden Codebase,\\nempfiehlt Tobi z.B. For-Schleifen durch Funktionen wie .map(), .filter() und\\n.reduce() zu ersetzen. Zum Lernen empfehlen wir die Videos von\\xa0Dr. Boolean.\\n\\nFINITE STATE MACHINES\\n\\nEtwas, das \\xe4hnliche Effekte wie die FP erzeugt, sind State Machines und State\\nCharts. XState von David Khourshid\\xa0ist hier das Framework f\\xfcr pure Javascript\\nEntwicklung. Wie auch bei der FP ist die Lernkurve allerdings etwas h\\xf6her, doch\\nes scheint sich zu lohnen, sich mit diesem Thema zu befassen.'