Introduction à Erlang et à Elixir

Elixir est un langage rapide, dynamique et évolutif qui est de plus en plus adopté par les start-ups et les entreprises bien établies pour les applications de production.. 

Pinterest, Brightcove, Discord et Canvas, pour ne citer que quelques-uns, fonctionnent tous sur Elixir, qui exploite à son tour la VM VM Erlang à faible temps de latence et tolérante aux pannes, ce qui signifie un accès complet à l'écosystème Erlang utilisé par des sociétés telles que Heroku, WhatsApp, Klarna et Basho.

À partir de ce didacticiel, vous apprendrez les connaissances de base pour bien démarrer à Erlang et coder avec Elixir..

Comment est la syntaxe?

La syntaxe est fonctionnelle et favorise un style de codage court et rapide, qui permet aux utilisateurs d’abstraction facile de leurs données:

% Utilisateur nom: nom, âge: âge = utilisateur.get ("John Doe") nom # => "John Doe"

Quand combiné avec gardes, nous avons une structure puissante:

def serve_drinks (% User age: age) quand age> = 21 do # Code qui sert des boissons! end serve_drinks User.get ("John Doe") # => Échec si l'utilisateur a moins de 21 ans

Peut-il échelle?

Affirmative; Elixir a été conçu pour les systèmes évolutifs et distribués.. 

Elixir propose une exécution filetée (appelée processus) dans un environnement dans lequel plusieurs processus peuvent communiquer entre eux via des messages.. 

Ces fils légers peuvent être utilisés par centaines de milliers en même temps. L'élégant ramasse-miettes d'Elixir fonctionne pour chaque thread isolé, garantissant ainsi des performances optimales à l'échelle du système et empêchant le blocage des ressources.. 

Tolérance aux pannes

Elixir a Les superviseurs qui peut redémarrer des parties de votre système en cas de problème et rétablir votre système dans un état initial connu pour fonctionner.

Comment obtenir de l'élixir

Installez Elixir sur votre machine avant de continuer:

Mac OS X

  • Homebrew
    • Mettez à jour votre homebrew au plus tard: mise à jour de la bière
    • Courir: brasser installer elixir
  • Macports
    • Courir: port sudo installez elixir

Unix (et Unix-like)

  • Arch Linux (rapport de communauté)
    • Courir: pacman -S elixir
  • openSUSE (et SLES 11 SP3 +)
    • Ajouter Erlang devel repo: zypper ar -f http://download.opensuse.org/repositories/devel:/languages:/erlang/openSUSE_Factory/ erlang
    • Courir: zypper en élixir
  • Gentoo
    • Courir: emerge --ask dev-lang / elixir
  • GNU Guix
    • Courir: forfait guix -i élixir
  • Fedora 21 (et plus ancien)
    • Courir: miam installer elixir
  • FreeBSD
    • Depuis les ports: cd / usr / ports / lang / elixir && make install clean
    • De pkg: pkg installer elixir
  • Ubuntu 12.04 et 14.04 / Debian 7
    • Ajouter Erlang Solutions repo: wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb
    • Courir: sudo apt-get update
    • Installez la plate-forme Erlang / OTP et toutes ses applications: sudo apt-get install esl-erlang
    • Installez Elixir: sudo apt-get install elixir

les fenêtres

  • Installateur Web
    • Télécharger l'installateur
    • Cliquez sur suivant, suivant,…, terminez
  • Chocolaté
    • élixir de cinst

Développement interactif

Elixir a un mode interactif, auquel nous pouvons accéder via l’invite de ligne de commande comme suit:

$ iex Interactive Elixir - appuyez sur Ctrl + C pour quitter (tapez h () pour obtenir de l'aide) iex> c "mon_fichier.ex" # Compile un fichier iex> t Enum # Imprime les types définis dans le module Enum iex> h IEx.pry # Imprime la documentation sur la fonctionnalité de levier IEx iex> i "Hello, World" # Imprime des informations sur le type de données donné.

Les utilisateurs Windows devront exécuter iex.bat accéder à la console interactive. 

Lorsque nous entrons dans ce mode, nous pouvons taper n’importe Élixir Code et obtenir le retour instantanément, il est donc bon pour commencer à apprendre la langue.

Faisons quelques expressions de base:

c'est-à-dire> 2 + 2 4 c'est à dire> rond (3.58) 4 iex> "bonjour" <> "monde" "bonjour monde"

Lorsque nous exécutons un script, nous le faisons depuis le terminal shell de la manière suivante:

$ elixir scriptName.exs

Pour sortir un script du terminal, il faut utiliser le code suivant IO classe:

IO.puts "Bonjour le monde d'Elixir"

Qu'en est-il des modules?

Des modules sont disponibles pour Elixir afin que les développeurs puissent développer le langage de nombreuses façons.. 

Voici un exemple d'utilisation du framework de test Elixir ExUnit:

defmodule MathTest utilise ExUnit.Case, async: true test "peut ajouter deux nombres" assert 1 + 1 == 2 end end

Vous pouvez exécuter les tests en parallèle en définissant async: true. Dans ce paramètre, Elixir utilise autant de cœurs de processeur que possible.. 

pendant ce temps, affirmer pouvez vérifier les échecs d'assertion dans votre code. Ces fonctionnalités sont construites à l'aide de macros Elixir, ce qui permet d'ajouter de nouvelles constructions entières comme si elles faisaient partie du langage Elixir lui-même, ce qui signifie une personnalisation totale quelle que soit la productivité (test unitaire dans ce cas) dont vous pourriez avoir besoin..

Plus à venir!

Elixir est un langage puissant et polyvalent utilisé par certaines des plus grandes applications du monde actuellement. Ses temps de compilation rapides, ses processus filetés légers, son extensibilité avec les modules DSL et sa tolérance aux pannes fournies avec Superviseur faites-le idéal pour toute équipe de développement web sérieuse. De toute évidence, lorsque l’Elixir sera pleinement utilisé, il y aura d’énormes gains à réaliser.. 

Dans la prochaine partie, nous continuerons sur les types de données disponibles d’Elixir et sur la façon d’écrire plus de code, et nous nous attacherons enfin à le compiler.!