Einführung in Erlang und Elixir

Elixir ist eine schnelle, dynamische und skalierbare Sprache, die von den Startups und etablierten Unternehmen gleichermaßen für Produktionsanwendungen verwendet wird. 

Pinterest, Brightcove, Discord und Canvas, um nur einige zu nennen, laufen alle auf Elixir, was wiederum die fehlertolerante Erlang-VM mit niedriger Latenz nutzt, was den vollständigen Zugriff auf das Erlang-Ökosystem von Unternehmen wie Heroku, WhatsApp bedeutet. Klarna und Basho.

Beginnend mit diesem Tutorial erlernen Sie das grundlegende Wissen, um sich mit Erlang vertraut zu machen und mit Elixir zu programmieren.

Wie ist die Syntax??

Die Syntax ist funktional und fördert einen kurzen, schnellen Codierstil, der Benutzern eine einfache Abstraktion ihrer Daten ermöglicht:

% Benutzer Name: Name, Alter: Alter = User.get ("John Doe") Name # => "John Doe"

Wenn kombiniert mit Wachen, Wir haben eine starke Struktur:

def serve_drinks (% User Alter: Alter) Wenn Alter> = 21 ist # Code, der Getränke serviert! end serve_drinks User.get ("John Doe") # => Fehler, wenn der Benutzer unter 21 ist

Kann es skalieren?

Positiv; Elixir wurde für skalierbare, verteilte Systeme entwickelt. 

Elixir bietet eine Thread-Ausführung (als Prozesse bezeichnet) in einer Umgebung, in der mehrere Prozesse über Nachrichten miteinander kommunizieren können. 

Diese leichten Fäden können zu Hunderttausenden geführt werden gleichzeitig. Elixirs exzellenter Garbage-Collector funktioniert für jeden isolierten Thread. Er sorgt dafür, dass die Leistung systemweit optimal ist und verhindert, dass Ressourcen blockiert werden. 

Fehlertoleranz

Elixier hat Vorgesetzte Dies kann Teile Ihres Systems neu starten, wenn Probleme auftreten, und das System in einen Ausgangszustand zurückversetzen, von dem bekannt ist, dass es funktioniert.

Wie bekomme ich Elixier?

Installieren Sie Elixir auf Ihrem Computer, bevor Sie fortfahren:

Mac OS X

  • Homebrew
    • Aktualisieren Sie Ihr Homebrew auf den neuesten Stand: Brüh-Update
    • Lauf: Brühinstallationselixier
  • Macports
    • Lauf: sudo port install elixir

Unix (und Unix-like)

  • Arch Linux (Community-Repo)
    • Lauf: Pacman-Elixier
  • openSUSE (und SLES 11 SP3 +)
    • Erlang devel repo hinzufügen: zypper ar -f http://download.opensuse.org/repositories/devel:/languages:/erlang/openSUSE_Factory/ erlang
    • Lauf: Zypper im Elixier
  • Gentoo
    • Lauf: emerge --ask dev-lang / elixier
  • GNU Guix
    • Lauf: Guix-Paket -i Elixier
  • Fedora 21 (und älter)
    • Lauf: yum install elixir
  • FreeBSD
    • Von den Häfen: cd / usr / ports / lang / elixir && machen die Installation sauber
    • Von pkg: pkg install elixir
  • Ubuntu 12.04 und 14.04 / Debian 7
    • Erlang Solutions Repo hinzufügen: wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb
    • Lauf: sudo apt-get update
    • Installieren Sie die Erlang / OTP-Plattform und alle ihre Anwendungen: sudo apt-get install esl-erlang
    • Installiere Elixir: sudo apt-get install elixir

Windows

  • Webinstaller
    • Laden Sie das Installationsprogramm herunter
    • Klicken Sie auf Weiter, Weiter,…, Fertig
  • Schokoladig
    • Cinst Elixier

Interaktive Entwicklung

Elixir hat einen interaktiven Modus, auf den wir über die Eingabeaufforderung zugreifen können:

$ iex Interaktives Elixier - Drücken Sie zum Beenden die Tastenkombination Strg + C (h () ENTER). iex> c "my_file.ex" # Kompiliert eine Datei iex> t Enum # Druckt die im Modul Enum iex> h IEx.pry definierten Typen # Gibt die Dokumentation für die IEx-Pry-Funktionalität aus. Iex> i "Hallo, Welt" # Gibt Informationen zum angegebenen Datentyp aus

Windows-Benutzer müssen laufen iex.bat um auf die interaktive Konsole zuzugreifen. 

Wenn wir in diesen Modus wechseln, können wir any eingeben Elixier Code und erhalten Sie die Rückkehr sofort, so dass es gut ist, die Sprache zu lernen.

Lassen Sie uns einige grundlegende Ausdrücke machen:

dh> 2 + 2 4 ie> Runde (3,58) 4 iex> "Hallo" <> "Welt" "Hallo Welt"

Wenn wir ein Skript ausführen, machen wir das vom Shell-Terminal aus so:

$ elixir scriptName.exs

Für die Ausgabe von einem Skript an das Terminal müssen wir Folgendes verwenden IO Klasse:

IO.puts "Hallo Welt von Elixir"

Was ist mit Modulen??

Für Elixir sind Module verfügbar, sodass Entwickler die Sprache auf viele Arten erweitern können. 

Hier ist ein Beispiel für die Verwendung von Elixirs Test-Framework ExUnit:

defmodule MathTest verwendet ExUnit.Case, async: true test "kann zwei Zahlen hinzufügen". 1 + 1 == 2 Ende Ende

Sie können die Tests parallel ausführen, indem Sie festlegen async: wahr. In dieser Einstellung verwendet Elixir so viele CPU-Kerne wie möglich. 

inzwischen, behaupten kann in Ihrem Code nach Assertionsfehlern suchen. Diese Funktionen werden mithilfe von Elixir-Makros erstellt. Dadurch können vollständige neue Konstrukte hinzugefügt werden, als ob sie Teil der Elixir-Sprache wären. Dies bedeutet vollständige Anpassung an die Produktivität, die Sie benötigen.

Da kommt noch mehr!

Elixir ist eine leistungsstarke und vielseitige Sprache, die derzeit von einigen der größten Apps der Welt verwendet wird. Schnelle Kompilierzeiten, leichte Threaded-Prozesse, Erweiterbarkeit mit DSL-Modulen und Fehlertoleranz Supervisor Machen Sie es ideal für jedes seriöse Web-Entwicklungsteam. Wenn Elixir vollständig ausgenutzt ist, müssen natürlich erhebliche Gewinne erzielt werden. 

Im nächsten Teil werden wir mit den verfügbaren Datentypen von Elixir und dem Schreiben von mehr Code fortfahren, und wir werden endlich mit dem Kompilieren beginnen!