Powered by AppSignal & Oban Pro
Would you like to see your link here? Contact us

Start

src/livebook/start.livemd

Start

Introduktion

Velkommen til en rejse igennem programmeringssproget Elixir‘s landskab. Elixir er et sprog der er designet til at bygge kritiske produktionssystemer. Det er funktionsorienteret og benytter actor modellen. Hvad betyder dette?

  • Funktionsorienteret: Dette er et programmeringsparadigme (en måde at tilgå programmeringsopgaver på). På SDUs software uddannelser (og det Danske arbejdsmarket) er det dét objektorienterede paradigme der dominerer.
  • Actormodellen: Dette er nok den model der gør det lettest at arbejde med samtidighed (en: concurrency) i software.

Vi kommer til at arbejde med Elixir igennem Livebook. Der er andre måder at skrive Elixirkode (hvor man ikke benytter en browser), men denne har nogle attraktive muligheder med hensyn til at få et overblik over hvad der foregår og til at visualisere data.

Først skal Livebook installeres), og dernæst skal den konfiureres:

  1. Åben hovedsiden i en ny tab. Det kan gøres via Livebook logoet øverst til venstre.
  2. Klik i denne tab på Settings i menyen til vestre.
  3. Under Code editor skal Render ligatures slås til.

Herefter skal du vælge én af tre sværhedsgrader:

  1. Beginner: Hvis du aldrig har programmeret før starter du her.
  2. Intermediate: Hvis du føler at du har lidt erfaring med at programmere men godt vil have lidt støttehjul til et sprog du ikke har set før, så skal du beslutte om du hopper på begynder sporet eller det avancerede spor.
  3. Advanced: Hvis du føler at du har godt styr på mindst ét programmeringssprog, så starter du her.

Dette valg sender jer igennem følgende materiale:

%%{init: {"flowchart": {"htmlLabels": false}} }%%
graph TD;
  Beginner1["`**Begynder 1:**
Værdier, tupler og pattern matching`"];
  Beginner2["`**Begynder 2:**
Booleans, if, strenge og case`"];
  Beginner3["`**Begynder 3:**
Funktioner`"];
  Beginner4["`**Begynder 4:**
Lister, højereordensfunktioner, pipelining og moduler`"];
  Beginner5["`**Begynder 5:**
Maps`"];
  Beginner6["`**Begynder 6:**
Farver`"];
  
  Advanced1["`**Avanceret 1:**
Cirkler`"];
  Advanced2["`**Avanceret 2:**
Fibonacci sekvensen`"];
  Advanced3["`**Avanceret 3:**
Concurrency`"];
  
  Start-->Beginner1-->Beginner2-->Beginner3-->Beginner4-->Beginner5-->Beginner6-->Advanced1;
  Start-->Advanced1-->Advanced2-->Advanced3;

Hvis dette er interessant for jer, så kan I se noget livecoding med José Valim (skaberen af Elixir) her.