Elm:
Å bruke en feilsøker

Hvordan:

Elm har ikke en innebygd feilsøker i tradisjonell forstand som, si, JavaScript gjør med nettleserutviklingsverktøy. Imidlertid har Elm-samfunnet utviklet verktøy for å fylle dette gapet. Slik kan du bruke elm-debug-transformer for å feilsøke Elm-appen din:

-- Installer elm-debug-transformer (Node-pakke)

1. npm install -g elm-debug-transformer

-- Bruk elm-debug-transformer for å starte appen din

2. elm-debug-transformer --port=8000 dittHovedElmFiler.elm 

Når elm-debug-transformer kjører, oppretter den en WebSocket-tilkobling for logging. Du vil se feilsøkingsinformasjon i nettleserens konsoll der du kan inspisere programmets datastrukturer på gitte punkter i applikasjonen din.

I Elm 0.19 og senere kan funksjoner fra Debug-modulen som Debug.log og Debug.todo hjelpe deg med å spore verdier og bevisst merke uferdige deler av koden din. Slik bruker du Debug.log:

import Debug

update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
    case msg of
        Increment ->
            ( Debug.log "Øker" { model | count = model.count + 1 }, Cmd.none )

        Decrement ->
            ( Debug.log "Minker" { model | count = model.count - 1 }, Cmd.none )

Du vil se “Øker” eller “Minker” meldinger i nettleserens konsoll sammen med den nye tilstanden til model.

Dypdykk

Elms skaper, Evan Czaplicki, hadde som mål å lage et språk der vanlige feil ville være umulige eller enkle å fange opp. Denne filosofien er grunnen til at Elms kjerne ikke inkluderer tradisjonelle feilsøkingsfunksjoner. Elms statiske analyse og typeinferens bidrar massivt til å redusere kjøretidsfeil, noe som reduserer behovet for avansert feilsøking under kjøretid. Historiske alternativer inkluderte bruk av den nå avviklede elm-reactor som tilbød feilsøking med tidsreise - en måte å spole tilbake og gjenspille handlinger i appen din.

I dag hjelper verktøy som elm-debug-transformer og bruken av Elms Debug-modul til å bro over gapet. Selv om Debug-modulen er ment for bruk under utvikling kun og bør fjernes før produksjonsbygg, er den et uvurderlig verktøy for å identifisere og logge tilstandsforandringer.

Husk at tradisjonelle JavaScript-feilsøkingsteknikker, som punktstopp eller trinn-for-trinn-utførelse, ikke er direkte anvendelige i Elm på grunn av dens arkitektur og Elm runtime-håndtering av tilstandsoppdateringer. Elm oppmuntrer deg til å strukturere programmet ditt slik at dataflyten er klar og følger strenge typer og immutabilitetsgarantier, noe som minimerer tilfellene der feilsøking er nødvendig.

Se Også