Wir verwenden Cookies, um unsere Webseite für Sie zu optimieren. Mit dem Besuch unserer Webseite erklären Sie sich damit einverstanden. // Our website is using cookies to improve your experience. By continuing to browse the site, you are agreeing to our use of cookies.

Weitere Informationen finden Sie in unserer Datenschutzerklärung. // For more information, please refer to our privacy policy.

Toilet Paper 7

#78 Elm

Problem

Du benötigst eine statisch typisierte, rein funktionale Programmiersprache für die Webentwicklung.

Lösung

Evan Czaplicki (@evancz) begann 2012, Elm im Rahmen seiner Masterarbeit zu entwickeln. Elm ist eine funktionale Programmiersprache mit der Zielsetzung, Seiteneffekte zu vermeiden, einfach und performant zu sein. Der Code wird nach JavaScript übersetzt. Elm beinhaltet REPL, eine Paketverwaltung, einen Time-Traveling-Debugger, einen Entwicklungsserver und hochwertige Tools. Aufgrund statisch typisierter Prüfung verspricht das Projekt, dass in der Praxis keine Runtime Exceptions auftreten. Der Compiler ist bekannt dafür, nützliche Hinweise zu geben, Typen abzuleiten und Vorschläge für Tippfehler zu machen. Alle Werte in Elm sind immutable. Die Sprache hat ihr eigenes, recht kleines Modul-Ökosystem, welches eine semantische Versionierung basierend auf Library-Schnittstellen erzwingt. Beidseitige JavaScript-Interoperabilität ist möglich.

Beispiel

Die Elm-Architektur ist ziemlich beliebt und ihr Design hat den State-Container Redux beeinflusst. Der Beispiel-Code rendert die Markdown-Inhalte des Benutzers in HTML und zeigt die typische Elm-Anwendungsstruktur mit Modell, View und Update.

  • Das Modell definiert eine Datei, die den Anwendungsstatus beinhaltet.
  • Die Ansicht ist eine Funktion, die das Modell als Input nimmt und HTML-Markup ausgibt und so den Anwendungsstatus und übersichtlich darstellt.
  • Die Update-Funktion erhält das aktuelle Modell und eine Nachricht und gibt ein neues, aktualisiertes Modell aus.

Toilet Paper #78 ELM Architecture

Die sich daraus ergebende Anwendung ist eine Endlosschleife. Neue Eingaben seitens des Benutzers erzeugen eine Änderungsnachricht mit Inhalt. Die Update-Funktion ersetzt den Inhalt des Modells. Das neue Modell wird an die Ansicht-Funktion übergeben und mithilfe einer Markdown-Library in HTML gerendert.

Toilet Paper #78 ELM

Testen Sie das Beispielprogramm online unter folgendem Link: https://ellie-app.com/43JYBXN4DQ9a1

---

Links

Elm - Das Projekt

Anleitung

ELM online testen

Kuratierte Liste

Elm-Architektur

---

Autor

Andreas Scharf, Senior Software Architect, New Business

Toilet Paper ELM

Unser MustRead Toilet Paper!