Elixir is een snelle, dynamische en schaalbare taal die snel in gebruik wordt genomen door de startup-crowd en gevestigde bedrijven voor productietoepassingen.
Pinterest, Brightcove, Discord en Canvas, om er een paar te noemen, allemaal draaien op Elixir, die op zijn beurt gebruik maakt van de lage latentie, fouttolerante Erlang VM, wat volledige toegang tot het Erlang-ecosysteem betekent dat wordt gebruikt door bedrijven zoals Heroku, WhatsApp, Klarna en Basho.
Vanaf deze tutorial leer je de fundamentele kennis om jezelf op gang te helpen in Erlang en te coderen met Elixir.
De syntaxis is functioneel en promoot een korte, snelle codeerstijl, waarmee gebruikers eenvoudig hun gegevens kunnen onttrekken:
% Gebruiker name: name, age: age = User.get ("John Doe") name # => "John Doe"
In combinatie met bewakers, we hebben een krachtige structuur:
def serve_drinks (% Gebruiker leeftijd: leeftijd) wanneer leeftijd> = 21 do # Code die drankjes serveert! end serve_drinks User.get ("John Doe") # => mislukt als de gebruiker jonger is dan 21 jaar
Bevestigend; Elixir is gebouwd met schaalbare, gedistribueerde systemen in gedachten.
Elixir biedt threaded uitvoering (processen genoemd) in een omgeving waarin meerdere processen via berichten met elkaar kunnen communiceren.
Deze lichtgewicht threads kunnen worden uitgevoerd in de honderdduizenden gelijktijdig. De uitstekende garbagecollector van Elixir werkt voor elke geïsoleerde thread, zodat de prestaties optimaal zijn voor het hele systeem en het blokkeren van bronnen wordt voorkomen.
Elixir heeft supervisors
die delen van uw systeem opnieuw kan starten als er iets misgaat en uw systeem terugzet naar een oorspronkelijke staat waarvan bekend is dat deze werkt.
Installeer Elixir op uw computer voordat we verder gaan:
brouw update
zet elixer aan
sudo port install elixir
pacman -S elixer
zypper ar -f http://download.opensuse.org/repositories/devel:/languages:/erlang/openSUSE_Factory/ erlang
zypper in elixer
emerge --ask dev-lang / elixir
guix-pakket -i elixer
yum installeer elixer
cd / usr / ports / lang / elixir && make install clean
pkg installeer elixer
wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb
sudo apt-get update
sudo apt-get install esl-erlang
sudo apt-get install elixer
cinst elixer
Elixir heeft een interactieve modus, waartoe we via de prompt van de opdrachtregel toegang hebben:
$ iex Interactive Elixir - druk op Ctrl + C om te verlaten (typ h () ENTER voor hulp) iex> c "my_file.ex" # Compileert een bestand iex> t Enum # Printsoorten gedefinieerd in de module Enum iex> h IEx.pry # Drukt de documentatie af voor IEx-wrikfunctie iex> i "Hallo, Wereld" # Drukt informatie over het gegeven gegevenstype af
Windows-gebruikers moeten uitvoeren iex.bat
om toegang te krijgen tot de interactieve console.
Wanneer we deze modus openen, kunnen we elk type typen Elixer
code en krijg meteen de terugkeer, dus het is goed om te beginnen met het leren van de taal.
Laten we enkele standaarduitdrukkingen doen:
ie> 2 + 2 4 ie> rond (3.58) 4 iex> "hallo" <> "wereld" "hallo wereld"
Wanneer we een script uitvoeren, doen we dat vanaf de shell-terminal als volgt:
$ elixir scriptName.exs
Voor de uitvoer van een script naar de terminal moeten we het volgende gebruiken IO
klasse:
IO.puts "Hallo wereld van Elixir"
Modules zijn beschikbaar voor Elixir, zodat ontwikkelaars de taal op verschillende manieren kunnen uitbreiden.
Hier is een voorbeeld van het gebruik van Elixir's testraamwerk ExUnit:
defmodule MathTest gebruikt ExUnit.Case, async: ware test "kan twee getallen toevoegen" beweer 1 + 1 == 2 einde einde
U kunt de tests parallel uitvoeren door in te stellen async: waar
. In deze instelling gebruikt Elixir zoveel mogelijk CPU-kernen.
Ondertussen, beweren
kan controleren op assertiefouten in uw code. Deze functies zijn gebouwd met behulp van Elixir-macro's, waardoor het mogelijk is om geheel nieuwe constructies toe te voegen alsof ze deel uitmaken van de Elixir-taal zelf, wat totale aanpassing betekent voor welke productiviteit dan ook (test van eenheden in dit geval) die u mogelijk nodig hebt.
Elixir is een krachtige en veelzijdige taal die momenteel wordt gebruikt door enkele van de grootste apps ter wereld. De snelle compileertijden, lichtgewicht schroefdraadprocessen, uitbreidbaarheid met DSL-modules en fouttolerantie geleverd met Leidinggevende
maak het ideaal voor elk serieus webontwikkelingsteam. Het is duidelijk dat wanneer Elixir volledig benut wordt, er enorme winst te behalen valt.
In het volgende deel gaan we verder met de beschikbare gegevenstypen van Elixir en hoe we meer code kunnen schrijven, en we komen er uiteindelijk op neer om het te compileren!