Ramda Style Thinking: Fazit

1. Erste Schritte
2. Kombinieren Sie die Funktionen
3. Teilweise Verwendung (Currying)
4. Deklarative Programmierung
5. Grundlegende Notation
6. Unveränderlichkeit und Gegenstände
7. Unveränderlichkeit und Arrays
8. Objektive
9. Fazit


Dieser Beitrag vervollständigt eine Reihe von Artikeln zur funktionalen Programmierung mit dem Titel Ramda Style Thinking.


In den letzten acht Beiträgen haben wir über die Ramda-JavaScript-Bibliothek gesprochen, die Funktionen für die Arbeit mit JavaScript in einem funktionalen, deklarativen und unveränderlichen Stil bietet.


In dieser Artikelserie haben wir erfahren, dass Ramda einige Grundprinzipien hat, denen seine API folgt:


  • Die Daten kommen zuletzt: Fast alle Funktionen akzeptieren einen Parameter mit den Daten als letztem Argument.
  • Currying: Fast jede Funktion in Ramda ist Curry. Das heißt, Sie können eine Funktion mit nur einem Teil der erforderlichen Argumente aufrufen und eine neue Funktion abrufen, die auf die verbleibenden Argumente wartet. Sobald alle Argumente angegeben sind, wird die ursprüngliche Funktion aufgerufen.

Diese beiden Prinzipien ermöglichen es uns, sehr sauberen Funktionscode zu schreiben, der die Grundbausteine ​​in leistungsfähigere Operationen integriert.


Zusammenfassung


Als Referenz finden Sie hier eine kurze Zusammenfassung einer Reihe von Artikeln.


  • Die ersten Schritte werden uns durch die Idee von Funktionen, reinen Funktionen und Unveränderlichkeit präsentiert. Anschließend führt sie uns in Sammlungsiterationsfunktionen wie map , filter und reduce .
  • Das Kombinieren von Funktionen zeigt uns, wie wir unsere Funktionen auf verschiedene Arten kombinieren können, indem wir Werkzeuge wie pipe und compose .
  • Die teilweise Verwendung (Currying) hilft uns zu verstehen, wann und wie es nützlich sein kann, einige Argumente für eine Funktion bereitzustellen und den Rest später bereitzustellen. Wir verwenden partial und curry , um uns dabei zu helfen und etwas über flip und Platzhalter zu lernen ( __ ).
  • Die deklarative Programmierung lehrt uns den Unterschied zwischen imperativer und deklarativer Programmierung. Wir werden lernen, wie man deklarative Ramda-Substitute für Arithmetik, Vergleiche, Logik und Bedingungen verwendet.
  • Die ahnungslose Notation führt die Idee eines ahnungslosen Stils ein, der auch als "stille Programmierung" bekannt ist. In einem sinnlosen Stil sehen wir keine Argumente mit den Daten, mit denen wir arbeiten, dies geschieht implizit. Unsere Programme bestehen aus kleinen einfachen Blöcken, die zusammenkommen, um das zu tun, was wir brauchen. Erst ganz am Ende wenden wir unsere zusammengesetzten Funktionen auf relevante Daten an.
  • Unveränderlichkeit und Objekte bringen uns zurück zu der Idee, deklarativ zu arbeiten. Dies ist die Zeit, um die Werkzeuge zu erhalten, die wir zum Lesen, Aktualisieren, Ändern, Löschen und Transformieren der Eigenschaften von Objekten benötigen.
  • Unveränderlichkeit und Arrays setzen das Thema fort und zeigen uns, wie ähnliche Operationen mit Arrays ausgeführt werden.
  • Objektive vervollständigen die Serie und führen das Konzept der Objektive ein, mit dem wir uns auf kleine Teile großer Datenstrukturen konzentrieren können. Mithilfe der Funktionen zum view , set und Überschreiben können wir den Wert lesen, aktualisieren und transformieren, auf den sich das Objektiv im Kontext großer Datenstrukturen konzentriert.

Was weiter?


Wir haben in dieser Artikelserie nicht alle Feinheiten von Ramda behandelt. Insbesondere haben wir nicht über String-Funktionen und nicht über komplexere Konzepte wie Wandler gesprochen .


Um mehr darüber zu erfahren, was Ramda kann, empfehle ich Ihnen, die Dokumentation zu lesen. Es gibt eine Fülle von Informationen. Alle Funktionen sind nach dem Datentyp gruppiert, mit dem sie arbeiten, obwohl es einige Überlappungen gibt. Einige Funktionen zum Arbeiten mit Arrays funktionieren beispielsweise auch mit Zeichenfolgen, und map funktioniert sowohl mit Arrays als auch mit Objekten.


Wenn Sie an komplexeren funktionalen Themen interessiert sind, können Sie folgende Orte besuchen:


  • Wandler: Hier können Sie einen guten Einführungsartikel zum Parsen von Protokollen mit Wandlern lesen.
  • Algebraische Datentypen: Wenn Sie genug über funktionale Programmierung gelesen haben, haben Sie von algebraischen Typen und Begriffen wie „Functor“, „Applicator“ und „Monad“ gehört. Wenn Sie diese Ideen im Kontext von Ramda untersuchen möchten , lesen Sie das Ramda-Fantasy- Projekt, das einige Datentypen implementiert, die der Fantasy Land-Spezifikation (oder der algebraischen JavaScript-Spezifikation) entsprechen.



Vom Autor der Artikelübersetzungen: Wenn es dem Herrn gefällt, werde ich weiterhin Artikel über Ramda übersetzen. Insbesondere möchte ich einen Artikel über die Verwendung von Ramda mit Redux , einen Artikel über Funktionskomponenten mit reaktionslosen Funktionen und Ramda , einen Artikel über modulare Reduzierer und Selektoren , übersetzen. und wahrscheinlich ein Artikel über die Globalisierung von Redux-Selektoren .

Source: https://habr.com/ru/post/de415037/


All Articles