Elm:
การพิมพ์ผลลัพธ์การแก้ไขโค้ด
วิธีการ:
Elm ไม่มีฟังก์ชั่น print
ภายในตัวเหมือนภาษาอื่นบางภาษา แต่คุณสามารถใช้โมดูล Debug
สำหรับผลลัพธ์คอนโซลได้:
import Debug
update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
model
|> Debug.log "model before update"
|> actualUpdateFunction msg
|> Debug.log "model after update"
คุณจะเห็นผลลัพธ์อย่างนี้ในคอนโซลของเบราว์เซอร์:
model before update: { ... ข้อมูลโมเดลบางส่วน ... }
model after update: { ... ข้อมูลโมเดลที่อัปเดตแล้วบางส่วน ... }
จำไว้ว่าฟังก์ชั่น Debug.log
มีประโยชน์ แต่อย่าปล่อยโค้ดของคุณออกมาพร้อมกับมัน Elm จะเตือนคุณให้ลบข้อความการแก้ไขข้อผิดพลาดก่อนที่คุณจะสร้างบิลด์รุ่นผลิตภัณฑ์ได้
การดำดิ่งลึก
Debug.log
เป็นส่วนหนึ่งของโมดูล Debug
ของ Elm ซึ่งออกแบบมาเพื่อสนับสนุนการพัฒนาเท่านั้น ตามประวัติศาสตร์ Elm ได้เน้นความสำคัญไปที่การบำรุงรักษาและการจัดการข้อผิดพลาด ทำให้โมดูล Debug
เรียบง่ายโดยตั้งใจ เรียบง่ายนี้มั่นใจว่านักพัฒนาจะจดจ่ออยู่กับผลลัพธ์ที่มีความหมายมากกว่าที่จะหลงทางไปในชุดการแก้ไขข้อผิดพลาดขนาดใหญ่
ฟังก์ชั่น Debug.log
ของ Elm รับสองอาร์กิวเมนต์: แท็กสตริงและข้อมูลที่จะบันทึกออก ผลลัพธ์จะถูกพิมพ์ออกมาที่คอนโซลเบราว์เซอร์ ทางเลือกของวิธีการนี้จะเป็น:
- การบันทึกคอนโซลแบบดั้งเดิม: Elm ไม่สนับสนุนการบันทึกคอนโซลโดยตรงเนื่องจากสถาปัตยกรรมของ Elm มุ่งเน้นไปที่การรับประกันศูนย์ข้อผิดพลาดระหว่างการทำงาน และการบันทึกโดยตรงอาจทำให้การรับประกันนี้พังทลาย.
- Time-Traveling Debugger ของ Elm: เครื่องมือนี้ช่วยให้คุณสามารถมองเห็นสถานะของแอปพลิเคชันของคุณได้ตลอดเวลาโดยไม่ต้องใช้บันทึกคอนโซลและเป็นวิธีที่ทรงพลังในการแก้ไขแอปที่ซับซ้อน
ในการนำไปใช้ ฟังก์ชั่น Debug.log
จะห่อข้อมูลของคุณด้วยแท็กตัวระบุ ซึ่งมีประโยชน์ในการแยกความแตกต่างของจุดข้อมูลต่างๆ ในรุ่นผลิตภัณฑ์ ตัวคอมไพเลอร์ของ Elm จะทำเครื่องหมายการใช้งาน Debug.log
ใดๆ ทำให้คุณเก็บโค้ดผลิตภัณฑ์ของคุณให้สะอาดจากผลิตภัณฑ์การแก้ไขข้อผิดพลาด
ดูเพิ่มเติม
- คู่มือการแก้ไขข้อผิดพลาดอย่างเป็นทางการของ Elm: https://guide.elm-lang.org/debugging/
- การแนะนำ Time-Traveling Debugger: https://elm-lang.org/news/the-perfect-bug-report
- เอกสารโมดูล Elm Debug: https://package.elm-lang.org/packages/elm/core/latest/Debug