משתנים וסוגי נתונים
הסכום שהציג 55
אליס, שמכרה נרות בעבודת יד וכבר פעם אחת נתקלה בסכומים שהשתבשו, ביקשה מ־AI להוסיף לאתר מחשבון הזמנות קטן. לקוח הזמין חמישה נרות ואז עוד חמישה בשורה שנייה. העמוד הראה סכום של 55. שלוש הזמנות הבדיקה הבאות הראו אותה תוצאה מוזרה. היא הסתכלה בקוד ש־AI כתב וראתה שורה של תוויות וערכים שכולם נראו לה כמו מספרים. למה 5 ו־5 לא נותנים 10, תהתה.
- משתנה הוא שם לערך, כמו total או customerName. הערך יכול להשתנות, והשם נשאר.
- לערכים יש סוגים: מספרים, טקסט (מחרוזות) ואמת או שקר (ערכים בוליאניים). המחשב מטפל בכל סוג בדרך משלו.
- המספרים 5 ו־5 מסתכמים ל־10, אבל הטקסטים 5 ו־5 מתחברים ל־55.
- ערך שנוצר בתוך פונקציה או בקשה בדרך כלל נעלם כשהן מסתיימות. כל דבר שנדרש אחרי הפעלה מחדש של האפליקציה שייך לאחסון מתמשך, כמו מסד נתונים.
הטקסט '5' ו־'5' אינו נותן את המספר 10
עשה ואל תעשה
- כשסכום נראה שגוי, שאלו את ה־AI מה הסוג של כל ערך.
- שאלו אם סכום נשמר כטקסט.
- שמרו במסד נתונים כל דבר שחייב לשרוד הפעלה מחדש.
- אל תניחו שערך שנראה כמספר הוא מספר.
- אל תשמרו נתונים חשובים במשתנה רגיל שנעלם בהפעלה מחדש.
- שלוש צנצנות, לכל אחת תווית. בכל צנצנת נשמר ערך אחד.
- נוסף פריט שמחירו $30: בצנצנת total נשמר עכשיו הערך 30.
- נוסף פריט שמחירו $25: באותה צנצנת נשמר עכשיו ערך חדש, 55.
- התשלום עובר: isPaid מתחלף מ־false ל־true.
שם לערך
הקוד מתייחס לערך לפי שם, למשל total או customerName. הערך יכול להשתנות כשהאפליקציה רצה. השם נשאר.
סוגי ערכים
מספר הוא לספירה ולחישוב. טקסט, שמתכנתים קוראים לו string, הוא כל דבר בתוך מרכאות. ערך true או false, שנקרא boolean, עונה על שאלת כן או לא, כמו isPaid. המחשב מתייחס לכל סוג אחרת. דוגמה: 5 + 5 → 10; "5" + "5" → "55". כשה־AI אומר "הסכום נשמר כטקסט", זה הבאג שהוא מתכוון אליו.
כמה זמן ערך חי
ערך שנוצר בתוך בלוק קטן של קוד, למשל פונקציה (פונקציות מוסברות בנושא בהמשך), בדרך כלל נעלם כשהבלוק נגמר. הסוגריים המסולסלים { } מראים איפה הבלוק מתחיל ואיפה הוא נגמר. ערך שנוצר במהלך ביקור אחד בעמוד נעלם כשהביקור נגמר. ערך שהאפליקציה הרצה מחזיקה נשאר עד שהיא עולה מחדש. מה שצריך אחרי הפעלה מחדש שייך לאחסון קבוע, כמו מסד נתונים.
מה לחפש בשינוי של AI
כל דבר שמגיע מטופס, מקובץ או ממערכת אחרת מגיע כטקסט, עד שמשהו ממיר אותו. דוגמה: שאלו "האם price הוא מספר או הטקסט '19.99'?" ותנו ל־AI להצביע על שורת ההמרה. שאלו את ה־AI: "אילו מהערכים האלה הם טקסט, ואיפה הם הופכים למספרים לפני שמחברים או משווים אותם?"
חפשו בפרויקט שלי מקומות שבהם מספר מגיע כטקסט. רשמו כל אחד עם הקובץ והשורה. הראו לי איך הייתם ממירים אותו למספר לפני כל חישוב.
הדביקו את ההנחיות לסוכן מתוך תיקיית פרויקט. כשההנחיה אומרת "הפרויקט הזה", הכוונה לאפליקציה שבונים בתרגול או לאפליקציה שכבר יש לכם. עדיין אין פרויקט? קראו עכשיו והדביקו אחר כך, בתרגול.
תסתכלו על Deal בפרויקט הזה. רשמו כל שדה עם הסוג שלו (מספר, טקסט או true/false) ותגידו מה היה משתבש אם אחד מהם היה נשמר בסוג הלא נכון.
מצאו מקום אחד שבו מספר שבא מטופס נכנס לחישוב. תגידו לי אם הוא מומר קודם מטקסט למספר, ותראו את השורה.
הסבירו במילים פשוטות מה ההבדל בין ערך שחי במשתנה לבין ערך שחי במסד הנתונים. השתמשו בשם של איש קשר כדוגמה.