איך אתם מדבגים את הקוד שלכם?
-
@שואף אמר באיך אתם מדבגים את הקוד שלכם?:
@dovid אמר באיך אתם מדבגים את הקוד שלכם?:
לחפש רכב שיש בו אופציה לחיבור סוסים
אהבתי...
אבל אני שונא JS בכל נימי נשמתי. אתה לא חושב שPHP הרבה הרבה יותר נוח להכין נתונים דינמיים, מאשר הסרבול של JAVASCRIPT? לטעמי אין בכלל מה להשוותאתה יכול להכין נתונים דינמיים בנוד, אף אחד לא אמר לך לא.
רק אמרו, שהיום האופנה (או מה?) היא לעשות דפים סטטים.אתה לא עושה ajax בדפים שלך?
-
@MusiCode
אל תביא לי לינק, זה מזלזל מאוד מאוד באינטלגנציה שלי.
תגיד במה אתה משתמש שיהיה ויכוח נורמלי ואני אסביר את ההבדלים של ה"מרגיש".
אם אתה משתמש בejs (אני מניח מאוד שלא, אחרת לא היית מכנה את ההבדלים "טעם וריח"), תספר לנו על חוויותיך, וגם למשל על מקרים קצת מורכבים כמו קוד מרובה שורות שמה, אולי אני יעבור גם אני לכתוב בזה.בקשר לשגיאה, אכן באקספרס אתה צודק.
-
א. למי שלא זוכר אני מאוד משתדל לא לכתוב דברים חדשים בPHP מהסיבות שנאמרו לעיל (ועוד כמה חסרונות שלא נכנס אליהם כרגע), אלא כותב בGO, אא"כ אני צריך לכתוב איזה סקריפט קטן שיש לו כבר ספריה מוכנה וכדו'
ב. אני בעיקר רציתי לשאול, מה הדיבגרים (בכל שפה שהיא) עושים יותר מבדיקת שגיאות תחביר?
(שבGO במילא הקוד לא מתקמפל אם התחביר לא נכון ב100%, אמנם זה קצת חופר לפעמים שאפילו אם הכרזתי על משתנה בלי להשתמש בו זה לא מתקמפל)
וזה נראה שהתשובה היא שבעורך טקסט אפשר לעשות נקודות breakpoint ולראות מה היה קורה אם הייתי כותב שם פרינט
וכן אפשר לראות מאיזה משתנה הגיע הערך בלייב (לפחות בנוד)
האם יש עוד פיצרים? -
@מנצפך אמר באיך אתם מדבגים את הקוד שלכם?:
@dovid אמר באיך אתם מדבגים את הקוד שלכם?:
ב. בנוד כל שגיאה שלא בתוך try מפילה הכל.
אגב,
אני חושב שtry ל- promise, לא עוזר. ובכל מקרה יפיל את האפליקציה...וודאי לא נכון ככלל
-
טיפ חשוב שקראתי פעם (נראה לי בהקדמה של a mind for numbers|)
לפתרון בעיות לא רק בתכנות
זה פשוט לא להתקע על הבעיה מידי הרבה זמן
אלא לעבור לנושא אחר או בכלל לעזוב את המחשב והפסיק לחשוב על דברים מסובכים
לטענת הכותב המוח מנסה לפתור בעיות בצורה שונה בתת מודע וזה פותר את הבעיה הרבה פעמים בצורה יותר טובה מאשר חשיבה ישירה על הבעיה -
אגב, היתה לי בעיה עם הדיבוג המובנה של vscode שלאחרונה מצאתי את הפתרון, (חיפוש גוגל פשוט...)
אני אכתוב את הבעיה והפתרון למזכרת, אולי מישהו ייעזר מזה
הבעיה: יש ספריות logging פופולאריות כמו winston ו-morgan שהפלט שלהם לא היה מופיע בקונסול הדיבוג,
ההסבר: הספריות שולחים את הפלט (בברירת מחדל) ל-process.stdout
במקוםconsole.log
(למה? נ"ל כיconsole.log
זה לאstream
והם נבנו בצורה שאפשר לחבר להםstream
). הקונסול של הדיבוג מקבל (בברירת מחדל) רק את הפלט שלconsole.*
הפתרון: לערוך את הקובץlaunch.json
של מרחב העבודה (workspace) ולהוסיף לו:"outputCapture": "std"
שזה אומר ללכוד את הפלט של stdout/stderr