Elm:
Використання дебагера

Як користуватися:

Elm не має вбудованого відлагоджувача в традиційному розумінні, як, скажімо, JavaScript має зі знаряддями розробника в браузері. Однак, спільнота Elm створила інструменти, щоб заповнити цей пробіл. Ось як ви можете використовувати elm-debug-transformer для відлагодження вашої Elm-додатку:

-- Встановити elm-debug-transformer (пакет Node)

1. npm install -g elm-debug-transformer

-- Використання elm-debug-transformer для запуску вашого додатку

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

Як тільки elm-debug-transformer запущений, він створює з’єднання WebSocket для логування. Ви побачите інформацію для відлагодження у консолі вашого браузера, де ви можете інспектувати структури даних вашої програми в певних місцях вашого додатку.

У Elm 0.19 та пізніше, функції модуля Debug, такі як Debug.log та Debug.todo, можуть допомогти вам відстежувати значення та свідомо маркувати незавершені частини вашого коду. Ось як використовувати Debug.log:

import Debug

update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
    case msg of
        Increment ->
            ( Debug.log "Збільшення" { model | count = model.count + 1 }, Cmd.none )

        Decrement ->
            ( Debug.log "Зменшення" { model | count = model.count - 1 }, Cmd.none )

Ви побачите повідомлення “Збільшення” або “Зменшення” у консолі вашого браузера разом із новим станом model.

Поглиблений Розгляд

Автор Elm, Еван Цзапліцкі, прагнув створити мову, де звичайні помилки були б неможливими або легкими для виявлення. Саме тому основа Elm не включає традиційні функції відлагодження. Статичний аналіз Elm та висновок типів внесли значний внесок у зменшення помилок виконання, що знижує потребу в складному відлагодженні в реальному часі. Історичні альтернативи включали використання зараз застарілого elm-reactor, який пропонував відлагодження з можливістю перемотування часу — спосіб перемотувати назад і відтворювати дії у вашому додатку.

Сьогодні інструменти на кшталт elm-debug-transformer та використання модуля Debug Elm допомагають заповнити цей пробіл. Хоча модуль Debug призначений для використання лише під час розробки та повинен бути видалений перед створенням продакшен-білдів, він є незамінним інструментом для виявлення та логування змін стану.

Майте на увазі, що традиційні техніки відлагодження JavaScript, такі як точки зупинки або виконання крок за кроком, не застосовуються безпосередньо в Elm через його архітектуру та обробку оновлень стану Elm-середовищем виконання. Elm заохочує вас структурувати вашу програму так, щоб потік даних був чітким і слідував строгим типам та гарантіям незмінності, зводячи до мінімуму випадки, коли потрібно відлагодження.

Дивіться також