Clojure:
שימוש במנפה שגיאות

איך לעשות זאת:

Clojure נשענת על מכונת הזמן הווירטואלית של Java (JVM), לכן הרבה מהניפוי של הבאגים נעשה באמצעות כלים של Java. כלי אחד כזה הוא CIDER, חבילת על לפיתוח Clojure ב-Emacs, שיש לה יכולות ניפוי תקלות מוצקות. בואו נצלול פנימה:

;; ראשית, תתחברו לפרויקט Clojure בתוך Emacs באמצעות CIDER
M-x cider-jack-in

;; הגדרת נקודת עצירה
;; נווטו לשורה בקוד ה-Clojure שלכם שאתם רוצים לבדוק ו
;; לחצו על "C-c M-b" או בצעו:
M-x cider-debug-defun-at-point

;; כאשר הקוד רץ, תפגעו בנקודת העצירה. CIDER תציג בפניכם את האפשרויות:
;; 1. n כדי לעבור לשלב הלוגי הבא בביצוע,
;; 2. c כדי להמשיך בביצוע עד לנקודת עצירה הבאה,
;; 3. q כדי להפסיק את ניפוי התקלות.

;; בדיקת משתנים מקומיים בנקודת עצירה
;; בעת היותך בנקודת עצירה, הקלד:
locals

;; תראו רשימה של משתנים מקומיים והערכים שלהם מודפסים ב-minibuffer.

דוגמא לפלט עשויה להיראות כך:

{:x 10, :y 20, :result 200}

צלילה עמוקה

המנפה הוא כלי כמו קדמוני המחשבים במונחים של חישוב. המונח “באג” התגלה לראשונה בימים הראשונים של המחשבים, כאשר חרק בפועל גרם לשגיאה על ידי קצר במעגל במכונה.

למרות ש-CIDER מעולה לחובבי Emacs, קיימות חלופות לניפוי באגים ב-Clojure. לדוגמה, השימוש ב-IntelliJ עם התוסף Cursive יכול להציע חוויית ניפוי תקלות שמבוססת יותר על GUI. נוסף לזאת, אתם יכולים להשתמש ב-Leiningen המובנה או tools.deps כדי לשלוט על זרם התהליך בזמן הניפוי.

מאחורי הקלעים, מנפים אלו לעיתים קרובות מתעסקים בשינוי קודי בייט, ביצוע חישובים בהפעלות nREPL מוקדשות, ומציעים בדיקת עקבות קריאה. הם מנצלים את היכולות של JVM הקיימת להם מתחת למכסה, ונכנסים לעומק רובדי הניפוי של Java.

ראו גם