Elm:
Att använda en debugger

Hur man gör:

Elm har inte en inbyggd felsökare i traditionell mening som, säg, JavaScript har med webbläsarens utvecklarverktyg. Dock har Elm-gemenskapen byggt verktyg för att fylla detta gap. Så här kan du använda elm-debug-transformer för att felsöka din Elm-app:

-- Installera elm-debug-transformer (Node-paket)

1. npm install -g elm-debug-transformer

-- Använd elm-debug-transformer för att starta din app

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

När elm-debug-transformer körs, skapar den en WebSocket-anslutning för loggning. Du kommer att se felsökningsinformation i din webbläsares konsol där du kan inspektera programmets datastrukturer vid givna punkter i din applikation.

I Elm 0.19 och senare kan funktionerna i Debug-modulen såsom Debug.log och Debug.todo hjälpa dig att spåra värden och avsiktligt markera ofärdiga delar av din kod. Så här använder du Debug.log:

importera Debug

uppdatera : Msg -> Model -> ( Model, Cmd Msg )
uppdatera msg model =
    beroende på meddelandet av
        Inkrementera ->
            ( Debug.log "Inkrementering" { model | count = model.count + 1 }, Cmd.none )

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

Du kommer att se meddelanden som “Inkrementering” eller “Dekrementering” i din webbläsares konsol tillsammans med det nya tillståndet för modellen.

Fördjupning

Elms skapare, Evan Czaplicki, syftade till att skapa ett språk där vanliga buggar skulle vara omöjliga eller lätta att fånga upp. Denna filosofi är anledningen till att Elms kärna inte inkluderar traditionella felsökningsfunktioner. Elms statiska analys och typinferens bidrar massivt till att minska körningstidsfel, vilket minskar behovet av avancerad felsökning vid körningstid. Historiska alternativ inkluderade att använda den numera inaktuella elm-reactor som erbjöd tidsresande felsökning – ett sätt att spola tillbaka och spela upp åtgärder i din app.

Idag hjälper verktyg som elm-debug-transformer och användningen av Elms Debug-modul till att överbrygga gapet. Även om Debug-modulen är avsedd att användas under utveckling endast och bör tas bort före produktionsbyggen, är det ett ovärderligt verktyg för att peka ut och logga tillståndsändringar.

Tänk på att traditionella JavaScript-felsökningstekniker, såsom brytpunkter eller steg-för-steg-exekvering, inte är direkt tillämpliga i Elm på grund av dess arkitektur och Elms körtidshantering av tillståndsuppdateringar. Elm uppmuntrar dig att strukturera ditt program så att dataflödet är klart och följer strikta typer och oföränderlighet, vilket minimerar fallen där felsökning behövs.

Se även