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 заохочує вас структурувати вашу програму так, щоб потік даних був чітким і слідував строгим типам та гарантіям незмінності, зводячи до мінімуму випадки, коли потрібно відлагодження.
Дивіться також
- Офіційний посібник Elm про обробку виключень під час виконання: https://guide.elm-lang.org/error_handling/
- GitHub репозиторій
elm-debug-transformer
: https://github.com/kraklin/elm-debug-transformer - Гілка на форумі Elm, де обговорюють стратегії відлагодження: https://discourse.elm-lang.org/c/show-and-tell/debugging
- Документація модуля
Debug
Elm: https://package.elm-lang.org/packages/elm/core/latest/Debug