Elm:
Debuggerin käyttö

Kuinka:

Elm ei sisällä kääntäjään sisään rakennettua vianjäljitintä perinteisessä mielessä, kuten esimerkiksi JavaScript tarjoaa selaimen kehittäjätyökaluissa. Kuitenkin Elm-yhteisö on rakentanut työkaluja tämän aukon täyttämiseksi. Näin voit käyttää elm-debug-transformer -työkalua Elm-sovelluksesi vianjäljitykseen:

-- Asenna elm-debug-transformer (Node-paketti)

1. npm install -g elm-debug-transformer

-- Käytä elm-debug-transformer -työkalua sovelluksesi käynnistämiseen

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

Kun elm-debug-transformer on käynnissä, se luo WebSocket-yhteyden lokiin kirjaamista varten. Näet selaimen konsolissa vianjäljitystietoja, joista voit tarkastella ohjelmasi tietorakenteita sovelluksesi eri vaiheissa.

Elmissä 0.19 ja uudemmissa, Debug-moduulin funktiot, kuten Debug.log ja Debug.todo, voivat auttaa arvojen jäljityksessä ja koodin tarkoituksella keskeneräisiksi merkittyjen osien ilmoittamisessa. Näin käytät Debug.log:

import Debug

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

        Decrement ->
            ( Debug.log "Vähentämässä" { model | count = model.count - 1 }, Cmd.none )

Näet selaimen konsolissa viestit “Lisäämässä” tai “Vähentämässä” yhdessä modelin uuden tilan kanssa.

Syväsukellus

Elmin luojan, Evan Czaplickin, tavoitteena oli luoda kieli, jossa yleiset virheet olisivat mahdottomia tai helppoja havaita. Tämä filosofia on syy siihen, miksi Elmin ydin ei sisällä perinteisiä vianjäljitystoimintoja. Elmin statiikan analyysi ja tyyppipäätteleminen vähentävät valtavasti ajonaikaisia virheitä, mikä vähentää kehittyneiden ajonaikaisten vianjäljitystyökalujen tarvetta. Aikaisempi vaihtoehto oli nyt vanhentunut elm-reactor, joka tarjosi aikamatkavianjäljitystä – tapa kelata ja toistaa toimintoja sovelluksessasi.

Nykyään työkalut kuten elm-debug-transformer ja Elmin Debug-moduulin käyttö auttavat paikkaamaan tätä aukkoa. Vaikka Debug-moduuli on tarkoitettu vain kehitysvaiheen käyttöön ja se tulisi poistaa ennen tuotantoversioiden rakentamista, se on korvaamaton väline tilan muutosten tarkkaan määrittämiseen ja kirjaamiseen.

Pidä mielessä, että perinteiset JavaScript-vianjäljitystekniikat, kuten katkaisupisteet tai askel askeleelta suorittaminen, eivät ole suoraan sovellettavissa Elmissä johtuen sen arkkitehtuurista ja Elm-ajonaikaisen tilan päivitysten käsittelystä. Elm rohkaisee sinua rakentamaan ohjelmasi niin, että datan kulku on selkeää ja seuraa tiukkoja tyyppi- ja muuttumattomuustakuita, minimoimalla tilanteet, joissa vianjäljitystä tarvitaan.

Katso myös