Elm Netherlands Meetup: handige Elm-tooling

Elm is een functionele programmeertaal voor de browser en groeit snel in populariteit. Tijd voor een meetup over handige tools!

Infi hostte de derde editie van de Elm Netherlands Meetup. Het is niet de eerste keer dat we bij Infi met Elm in aanraking kwamen, in oktober afgelopen jaar organiseerden we zelf ook al een Coding Dojo over Elm. Tijdens de Dojo implementeerden we een QuizApp met Elm en gebruikten we de `elm-reactor` om tijdens het developen het resultaat van onze code op onze schermen te krijgen.

De 'elm-reactor'-tool doet wat hij belooft, maar voor een serieus frontend project is bijvoorbeeld automatisch herladen van de browser na een code wijziging wel een echte must. Is er wat veranderd sinds die tijd? We hoorden het van twee sprekers tijdens de meetup.
 

Een snelle feedbackloop

De feedback die we krijgen van onze applicatie is belangrijk. Zo kunnen we beter functionaliteit bouwen en bugs voorkomen. Als developers zijn we daarom grootverbruikers van de applicaties die we bouwen. Keer op keer vullen we onze eigen gemaakte formulieren in en doorlopen we alle stappen totdat we het resultaat van onze codewijziging kunnen zien. Maak je een klein foutje dan ben je zo weer een paar minuten kwijt om op hetzelfde punt te komen. En dat is zonde.

Zaak dus om deze feedbackloop zo snel en zo kort mogelijk te krijgen. Zo testen we namelijk veel meer en diverser. Tolga Paksoy vertelde tijdens de meetup over zijn eigen frustraties en de oplossing die hij gevonden heeft in de elm-webpack-loader.

Naast het automatisch herladen van de applicatie zorgt deze tool er ook voor dat dit gebeurt zonder het verliezen van ingevulde data. In talen zoals ClojureScript kunnen developers al van dezelfde mogelijkheden gebruik maken. Elke keer uit je concentratie vallen omdat je een formulier opnieuw moet invullen is dus verleden tijd (en er zijn meer voordelen).

'Know your Code'

In een tijd waar steeds meer naar JavaScript toe gecompileerd wordt - en minder zelf geschreven - worden een hele hoop problemen al automatisch voor developers opgelost. Toch is het belangrijk om te weten wat jouw abstracties voor een effect hebben in de browser. Ook compilers maken namelijk 'foutjes' als je ze niet een beetje helpt.

Dat klinkt natuurlijk als een nobel doel, maar bij het snel opvolgen van verschillende versies is het lastig om op de hoogte te blijven van de beste manieren om je compiler te sturen en je code te schrijven. Spreker Mats Stijlaart liet ons wat 'smelly' Elm code zien en legde uit dat we als developers iets nodig hebben dat ons vertelt wat deze smells zijn.

We need something that helps us "know stuff" about our code.
- Mats Stijlaart

Net als de eerste spreker heeft ook Mats een oplossing voor het probleem, dit maal van zijn eigen hand: elm-analyse.

Deze tool doorzoekt een Elm project en komt terug met een verzameling dingen in je code die beter kunnen. Een mooie geautomatiseerde fix zou je denken, maar een 'fix all' knop is niet aanwezig. Het doel volgens Mats is het onderwijzen van de Elm developer. Deze wordt door elm-analyse gedwongen per geval te besluiten een fix toe te passen en krijgt zo directe feedback over zijn code. De gedachte is dat door deze feedbackloop de developer vanzelf 'betere' code gaat schrijven.

Zelf kijken?

Aan het einde van beide talks werden veel vragen gesteld. Het was mooi om te zien met hoeveel passie deze groep mensen met hun werk (hobby) bezig is. Ik heb zelf inmiddels elm-analyse over mijn eigen Elm code gehaald en ben weer van alles aan het leren

Wanneer je de tijd hebt: beide talks zijn gefilmd tijdens de meetup en de moeite waard!

[Matthijs is ontwikkelaar bij Infi]

Gezocht: ondernemende nerds!

› Wil jij je hersens bij ons laten kraken?

Wil je iets waarmaken met Infi?

Wil jij een eigen webapplicatie of mobiele app waarmee jij het bij anderen maakt?

Waargemaakt door de nerds van Infi.
Nerds met liefde voor softwareontwikkeling en die kunnen communiceren. En heel belangrijk: wat we doen, doen we met veel lol!

Wij willen het fixen. Laat jij van je horen?

Voor wie heb je een vraag?