אוקיי, אז ChatGPT פתר את הבאגים שהיו בקוד שלי. ברצינות.

1-debugging(1).png

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

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

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

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

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

בדיקת תכנון בעולם האמיתי של ChatGPT

השבוע, עברתי על שלוש משימות קידוד עבור התוכנה שאני תחזק. שתי המשימות היו תיקונים לבאגים שדיווחו עליהם משתמשים. משימה אחת הייתה קידוד חדש כדי להוסיף תכונה חדשה. זה היה עבודת תכנות רגילה ויומיומית עבורי. זה היה חלק מזמני העבודה הרגיל.

גם:כיצד פועל ChatGPT

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

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

אז, עם זאת, בואו נסתכל על מטלות אלה ונראה כיצד ChatGPT ביצע.

שינוי קוד ביטויים רגולריים

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

גם:אני משתמש ב־ChatGPT כדי לעזור לי לתקן קוד במהירות, אך באיזו מחיר?

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

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

תמונת 2-regex-q.jpg

והנה תשובת המודע המוצגת בצורה מאוד יפה (לחץ על הריבוע הקטן כדי להגדיל):

3-regex-a.jpg

הכנתי את קוד ChatGPT לתוך הפונקציה שלי, וזה עבד. במקום 2-4 שעות של גרירת שיער, לקח כחמישה דקות ליצור את התרגיל ולקבל תשובה מ-ChatGPT.

מעצבן מערך

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

גם:כיצד להביא ל-ChatGPT לספק מקורות וציטוטים

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

לאחר כשעה של זה, התייאשתי ושבתי לטכניקה הרגילה שלי לחקור דרך Github ו-StackExchange כדי לראות אם יש דוגמאות למה שהניסיתי לעשות, ולאחר מכן לכתוב קוד משלי.

עד כה, יש ניצחון אחד והפסד אחד עבור חוויית ChatGPT. אך עכשיו אני הולך להעלות את האתגר.

בעצם מציאת השגיאה בקוד שלי

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

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

הבעיה הייתה, כי המשךיעית קיבלתי הודעת שגיאה.

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

גם: איך להשתמש ב-ChatGPT כדי לסכם ספר, מאמר או מחקר

מה בחרא?

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

4-untitled.jpg

הצגתי לו את שורת הקוד שביצעה את הקריאה, הצגתי לו את הפונקציה עצמה והצגתי לו את המטפל, קטע קוד קטן שמפעיל את הפונקציה הקרויה מתוך הוק בתוכנית הראשית שלי.

תוך שניות, ה-ChatGPT הגיב והציג את זה (לחץ על הריבוע הקטן להגדלה):

5-error-with-apply-filters-in-wordpress.jpg

כשם שהוצע, עדכנתי את הפרמטר הרביעי של הפונקציה add_filter() ל־2 וזה עבד!

ChatGPT לקח קטעי קוד, ניתח את הקטעים האלה, וסיפק לי אבחנה. כדי להבהיר, כדי להגיע להמלצה, הוא היה צריך להבין את הפרטים הפנימיים של הדרך שבה וורדפרס מתמודדת עם hooks (זה מה שהפונקציה add_filter עושה) ואיך הפונקציות האלה מתרגמות להתנהגות של שורות הקוד שמתקיימות קריאה וביצוע.

גם: שאלתי את ChatGPT לכתוב תוסף לוורדפרס שהייתי צריך. הוא עשה זאת תוך פחות מ-5 דקות

אני חייב לסמן את זה כמדהים, ללא ספק "חיים בעתיד" מדהים.

מה כל זה אומר?

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

גם: מומחים אלו מתמודדים כבר במאמץ מרוץ כדי להגן על ההתמודדות האינטיליגנטית מהפורצים

אבל כשאתה תקוע, קשה לפעמים לקבל עזרה. זה קורה מכיוון שאף ײז בן עקרוב לא מכיר את כל טו סביבת הקוד שאתה בפתרון בעיות בה. התכנית שאני עובד עליה מורכבת מ-153,259 שורות קוד ומ-563 קבצים -- וביחס לתוכניות כאלה, זו מועטה.

אז, אם הייתי רוצה לקבל עזרה מקולגה, הייתי צריך לבנות בקשה כמעט באותה דיוק דרך ששלחתי ל־ChatGPT.

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

גם: השיחוצים הטובים ביותר של AI לנסות

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

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

מבט על העתיד (אולי דיסטופי)

אני רואה עתיד מעניין מאוד, שבו יהיה ניתן להזין ל-ChatGPT את כל 153 אלף השורות של הקוד ולשאול אותו לספר לך מה לתקן. מיקרוסופט (שבבעלותה של גיטהאב) כבר עובדת על כלי "copilot" לגיטהאב, שיעזור למתכנתים לבנות קוד. מיקרוסופט השקיעה גם מיליארדים של דולרים ב-OpenAI, יצרנית ChatGPT.

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

בנוסף: שאלתי את ChatGPT לכתוב פרק קטן של סדרת סטאר טרק. ובפועל הצליח

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

וכאן אני לוקח את השיחה הזו למקום מאוד אפל.

דמיינו שאתם יכולים לבקש מ־ChatGPT לבדוק את המאגר שלכם ב-Github עבור פרויקט מסוים ולתקן באגים. דרך אחת היא שהמערכת תציג לכם כל באג שהיא מוצאת לאישורכם, כדי שתוכלו לבצע את התיקונים.

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

גם: Bard נגד ChatGPT: האם Bard יכול לסייע לך בקידוד?

ומה עם המצב בו AI יעוזר בכושר עצום יש לו גישה לכמעט כל הקוד במאגרי Github של העולם? מה הוא יכול להסתיר בכל הקוד הזה? איזו רשענות רעית אפשר יכול הקוד מול תשתיות העולם אם הוא רואה את כל הקוד שלנו?

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

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

גם: איך להשתמש ב-ChatGPT לכתיבת נוסחאות ב-Excel

במה שמתבקש ממני, אני הולך לנסות שלא לחשוב יותר מדי על זה. אני לא רוצה לבלות את שארית שנות ה-2020 מתפשט על הרצפה במעמד עגול, במצב עקום. במקום זאת, אני אשתמש ב-ChatGPT מדי פעם כדי לעזור לי לכתוב ולתקן רגעים קטנים, אני אחזיק את ראשי למטה ואני מקווה שדורות העתיד של בינה מלאכותית לא יהרגו אותנו כולנו במאמץ "לא לאפשר לבן אדם להיפגע".

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

כתבות קשורות

הצג עוד >>

פתח את הכוח של AI עם HIX.AI!