PracticU

דיבאגינג בכרום - Client Debugging using Chrome

בלי כתוביותעם כתוביות
PracticU › קורס NodeJS › דיבאגינג בכרום - Client Debugging using Chrome
מילון מושגים:
לקוח - תוכנה או מחשב שפונים לשרת ומבקשים ממנו שירות או מידע, למשל דפדפן שמבקש דף אינטרנט.
JavaScript - שפת תכנות שרצה בעיקר בדפדפן ומוסיפה אינטראקטיביות לדפי אינטרנט. רצה גם בצד השרת באמצעות Node.js.
צד לקוח - החלק של היישום שרץ בדפדפן ומולו המשתמש מתקשר, הכולל את התצוגה והאינטראקציה.
HTML - שפת הסימון שבה בונים את מבנה ותוכן דפי האינטרנט, באמצעות תגיות שמגדירות כותרות, פסקאות, קישורים ועוד.
מערך - מבנה נתונים שמאחסן אוסף ערכים מאותו סוג ברצף, שאפשר לגשת אליהם לפי מספר מיקום (אינדקס).
דיבאג - תהליך של איתור, הבנה ותיקון תקלות בקוד, לעיתים בעזרת כלי שמאפשר לעצור ולעקוב אחר ריצת התוכנית.
כפתור - רכיב בממשק המשתמש שהמשתמש לוחץ עליו כדי להפעיל פעולה, כמו שליחת טופס או מעבר לדף אחר.
אירוע - התרחשות שהמערכת מזהה ויכולה להגיב לה, כמו לחיצת עכבר, הקשה או סיום פעולה.

דיבאגינג בכרום - Client Debugging using Chrome
ההרצאה מראה איך מדבגים קוד JavaScript של צד לקוח בעזרת כלי המפתחים של Chrome, על דף HTML פשוט שמחשב סכום חזקות של ערכי מערך.
השלבים העיקריים
1. הדף לדיבאג: לחצן מפעיל פונקציה שרצה על מערך, מחשבת חזקה לכל ערך באמצעות פונקציית עזר, סוכמת ומציגה את התוצאה ב-alert.
2. Breakpoint: פותחים F12, עוברים ללשונית Sources, פותחים את index.js ולוחצים על מספר השורה. בלחיצה על הכפתור הריצה נעצרת והדף מוצג כ-"paused in debugger".
3. חלונית Scope / Locals: מראה את המשתנים המוכרים בהיקף הנוכחי. משתנה כמו n לא מופיע ב-scope החיצוני כי הוא מקומי לפונקציה, ומערך שעוד לא אותחל מופיע כ-undefined.
4. Step over ו-Step into: step into עובר לשורה הבאה ונכנס לתוך פונקציה כשמגיעים לקריאה, וה-Locals עובר לפונקציה (למשל n שווה 12 ואז החזקה 144). step over מריץ את הפונקציה בלי להיכנס אליה.
5. חלונית Watch: מוסיפים ביטויים לבדיקה, למשל איבר מסוים במערך, ערך של i, או בדיקה אם i קטן מאורך המערך. הערכים מתעדכנים תוך כדי הריצה.
6. כפתורים נוספים: אחד מבטל את כל ה-breakpoints, אחר עוצר אוטומטית בחריגות (exceptions), והמרצה אינו בטוח לגבי פעולת step out וכפתור נוסף.
7. Call stack ו-Breakpoints: ה-call stack מראה את השרשרת מהאירוע של הלחצן לפונקציה הנוכחית, וחלונית ה-breakpoints מאפשרת לבטל אותם.
שימו לב
בפועל משתמשים בעיקר ב-step into, step over, בחלונית ה-Watch ובחלונית ה-Scope.
אפשר עכשיו להציב breakpoint ב-Chrome, להתקדם בקוד שורה אחר שורה ולעקוב אחרי ערכי המשתנים.
השיעור הבא בקורס: דיבאג בצד לקוח בתוך Visual Studio Code

פרקי ההרצאה: דיבאגינג בכרום - Client Debugging using Chrome

  1. 00:00

    תוכנית לדוגמה לדיבאגינג

  2. 01:15

    הרצת הדף ופתיחת Sources ב-F12

  3. 01:55

    יצירת Breakpoint ועצירה בדיבאגר

  4. 02:49

    חלונית המשתנים Local

  5. 03:24

    לחצני Step Over ו-Step Into

תמלול ההרצאה: דיבאגינג בכרום - Client Debugging using Chrome

הטקסט המלא של הדקות הראשונות בהרצאה «דיבאגינג בכרום - Client Debugging using Chrome» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:04

    אנחנו מגיעים לנושא הדיבאגינג. כאן אנחנו הולכים לראות איך אנחנו יכולים לדבג פרויקט שאנחנו בונים ב-JavaScript. אנחנו הולכים לראות איך אפשר לדבג גם צד לקוח וגם צד שרת, כמובן Node.js.

  2. 00:20

    ראשית, יש לנו פה תוכנית פשוטה. יש לנו כאן איזשהו לחצן שבלחיצה עליו מפעיל פונקציה כאן ב-JavaScript. זה בעצם תוכנית של צד לקוח html מפעיל JavaScript שרצה בקליינט סייד ואנחנו רוצים לדבק את זה.

  3. 00:41

    מה לחצה הנושא? יש לנו פה איזשהו מערך ויש לנו סכום, הוא רץ על המערך ומחשב את הסכום של החזקות של ערכי המערך. הנה פונקציה, אנחנו קוראים לה, שולחים את ערך המערך, היא מחשבת את החזקה, מחזירה ואנחנו סוכמים את זה.

  4. 01:02

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

  5. 01:20

    דבר ראשון, אנחנו הולכים לראות בסרטון הזה איך אנחנו יכולים לדבק את זה עם הדפדפן חרום. אנחנו מריצים את הדף html רק בכדי שהוא ירוץ.

  6. 01:33

    יש לנו, אם אנחנו לוחצים על הלחצן אנחנו רואים שהוא נותן לנו פה את הסכום, הכל עובד פרפקט. עכשיו, בואו רגע נפתח את F12 ונסתכל בדפדפן על Source, Sources.

  7. 01:55

    כאן ניכנס לאינדקס JS ואנחנו רואים את הקוד עצמו. פה אנחנו גם רואים את השורות ואנחנו יכולים לגשת לשורה ולהקליק עליה, על המספר שלה.

  8. 02:09

    ברגע שאנחנו מקליטים נוצרת לנו ברייק פוינט וזה אומר שאם אנחנו עכשיו נריץ כאן את הדפדפן את האתר שלנו לחיצה על הלחצה נניח אז ברגע שאנחנו נגיע לברייק פוינט המערכת תעצור ותיכנס למצב דיבאג ופה בצד אנחנו רואים את החלוניות של הדיבאג בואו נעשה את זה אנחנו לוחצים על Calculate

  9. 02:31

    הופה עצרנו כאן ושימו לב שהאתר כרגע paused in דיבאגר הוא כופה ואנחנו יכולים עכשיו להשתמש בדיבאגר בכדי להריץ את המערכת פקודה-פקודה ולדבק אותה.

  10. 02:44

    בשביל מה אנחנו עושים את זה? בשביל למצוא לעצמנו באגים, אם כמובן יש. חלוניות חשובות שיש פה, ראשית זה ה-local. אילו משתנים מוכרים בסקופ הנוכחי? שימו לב שהוא לא מכיר כאן משתנה n, מפני ש-n הוא לוקאלי לפונקציה power.

  11. 03:03

    הוא כן מכיר את המערך, אבל הוא עוד לא הגדיר אותו עדיין. ברגע שאנחנו מסמנים שורה היא עדיין לא רצה אז הוא אומר לנו שהמערך הזה הוא משתנה לוקאלי של הפונקציה אז הוא מכיר אותה את המערך אבל עדיין הוא undefined.

  12. 03:17

    שימו לב שהוא undefined כמובן שהוא מכיר את ה-window כי בקליינט סייד זה האובייקט הגלובלי. זה ה-locals אנחנו יכולים להתחיל לרוץ ולדבק את זה.

  13. 03:29

    יש לנו כאן את הלחצן הזה step over ויש לנו את הלחצן הזה step into שתי לחצנים נפוצים. סטפ אאוט וסטפ אם אני זוכר נכון ועד לברייק פוינט הבא אני חושב ואני לא ממש בטוח צריך

לקורס המלא: קורס NodeJS אונליין בעברית

ההרצאה הקודמת: מפות בזמן אמת של תקיפות סייבר שמתבצעות עכשיו - Cyber Maps

ההרצאה הבאה: דיבאג בצד לקוח בתוך Visual Studio Code

הרצאות קשורות מקורסים אחרים

  • ריאקט דיבאג עם Chrome - React Debugging
  • Debugging in JavaScript
  • Chrome Driver
  • Using the DDMS

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React