שפות סקריפט (Perl,Python) ודיבוג

S h a r k 1 8

New member
שפות סקריפט (Perl,Python) ודיבוג

אלה מכם שכותבים סקריפטים בשפת Perl - האם אתם משתמשים בדיבאגר? למיטב ידיעתי בפרל יש דיבאגר מובנה בתוך מערכת ההפעלה יוניקס ואפשר להשתמש ב eclipse כ- IDE (ואז אפשר לשים BP ולדבג). מצד שני, כל האנשים שדיברתי איתם עד עכשיו אמרו לי שהם לא ממש משתמשים באופציות האלה, והם מדבגים פשוט ע"י הדפסות על המסך. ממה שאתם מכירים, בשפות סקריפט באמת לא נהוג לעבוד עם debugger, אלא פשוט לכתוב באיזשהו text editor ולראות איך זה זורם....

בפיתון, לעומת זאת, יש IDE שמאפשר דיבוג, Pycharm, למשל. מצד שני, ה IDLE של Python לא מכיל ממש דיבאגר גראפי (כזה שאפשר לשים בו BP)... איך זה עובד בפייתון? מתי נהוג להשתמש ב debugger שמובנה ב IDE ומתי פשוט כותבים קובץ טקסט ומריצים?

דבר נוסף - כשעובדים עם IDE שמאפשר לדבג, לרוב נפתחת סביבת עבודה, שהיא תיקייה עם מספר תתי ספריות וקבצים שנוצרים מאותו קובץ בעל סיומת .pl או .py. האם יש אפשרות להשתמש בדיבאגר גרפי על קובץ פרל או פייתון מבלי לפתוח תיקייה לסביבת העבודה, שהיא כאמור מסורבלת ומקשה מאד על פנייה לקבצים באמצעות relative path.
 

פרסאוס

New member
הדיבאגר לא קשור לIDE

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

S h a r k 1 8

New member
שאלות...

1. למה הכוונה "תיעוד של דיבאגר" ?
2. האם זה נכון שכאשר כותבים סקריפט בד"כ לא נהוג לפתוח IDE, ולכן הכתיבה מתבצעת באמצעות קובץ טקסט והדיבוג הוא ע"י הדפסות למסך ולא ע"י דיבאגר אמיתי?
&nbsp
 

פרסאוס

New member
תשובות

1.תיעוד של דיבאגר מתאים, לא של דיבאגר. לכל שפה יש אפשרויות דיבוג.
גוגל ייתן לך תשובות מיידיות.
2. לא. לכל אחד יש את הדרך בה הוא אוהב לעבוד. זו יכולה להיות טרחה לפתוח פרוייקט, אבל לא בכל סביבה חייבים.
&nbsp
 

S h a r k 1 8

New member
למשל, איזה דיבאגר גראפי יש לפרל

חוץ מאשר הדיבאגר של יוניקס?
לא הצלחתי למצוא...
&nbsp
העניין של "לפתוח פרויקט" הוא לפתוח תיקיית סביבת עבודה שבעצם מנתקת את הסקריפט מהתיקייה שבה הוא פועל. אני צודק? זה עלול להקשות מאד במקרה של פנייה לקבצים חיצוניים באמצעות relative path. לא כך?
ממה שיצא לך לראות, סקריפטים בד"כ לא כותבים כפרויקט, אלא כמו שאמרתי, ע"י כתיבת הקוד בקובץ טקסט?
&nbsp
 

S h a r k 1 8

New member
שאלה אחרת:

האם כדי להשתמש בדיבאגר, חייב להיפתח פרוייקט, כלומר חייבת להיפתח סביבת עבודה (הספרייה המורכבת הזאת עם כל מיני קבצים שאני לא כ"כ מבין מה הם עושים) ?
&nbsp
 

BravoMan

Active member
חוששני שלא הבנת:

אינני מכיר את Perl את את הכלים שלה, אבל יש כמה עקרונות בסיסיים שנכונים לכל השפות:
&nbsp
1. הדיבגר הוא יישום עצמאי. אפשר להפעיל אותו מתוך IDE, או משורת פקודה, או בכל דרך אחרת שמפעילים יישום.
כדי לדעת איך לעשות את כל זה צריך לקרוא את מסמכי העזרה של התוכנה שבה אתה משתמש (אין דבר כזה "דיבאגר של UNIX", צריך להיות שם נורמלי למה שאתה משתמש בו).
&nbsp
בלי לדעת באיזו תוכנה אתה משתמש, אף אחד לא יוכל אפילו לכוון אותך למסמכים הרלוונטיים.
&nbsp
2. IDE הוא בסה"כ עורך טקס ואוסף כלים נוספים שאמורים להקל על עבודת הפיתוח.
אפשר לוותר עליו, ולעבוד בעורך טקסט רגיל.
כל מתכנת בוחר מה שנוח לו.
&nbsp
3. סידור הקוד הוא באחריות המתכנת ותלוי בצרכי הפרויקט.
אם כל מה שאתה כותב זה סקריפט פשוט שיעשה פעולה מסוימת, לא תשתמש מן הסתם במבנה תיקיות.
עם אתה כותב פרויקט רציני המורכב מהרבה קבצי קוד, מודולים וכו', לא תרצה לזרוק את כולם באותו מקום כי זה יצור בלגן.
&nbsp
סביבות IDE בד"כ מייצרות מבנה קבוע מסוים, שמבוסס על ראיון גינרי של סוג הפרויקט.
אינך חייב להיצמד למקרה זה.
&nbsp
4. תזהר עם נתיבים יחסיים!
אם אתה כותב סקריפט לשימוש עצמי, זה בסדר, אבל אם אתה מייצר משהו ל-production קח בחשבון שאתה לא יודע מי יריץ את הסקריפט ומה תהיה "תיקיית העבודה" שלו.
לכן, אתה צריך לטפל בזהירות בנתיבי קבצים שהסקריפט ניגש עליהם.
&nbsp
ברוב השפות יש כלים שיעזרו לך.
&nbsp
בהצלחה!
 
למעלה