Pair Programming עם Copilot
Copilot מכונה לעיתים "המתכנת הזוגי מבוסס הבינה המלאכותית שלך". הרעיון הוא שבמקום לשבת עם קולגה ליד המחשב ולתכנת בזוג, Copilot מהווה בן-זוג וירטואלי שתמיד זמין. אך כדי להפיק את המירב מ"השותף" הזה, כדאי לאמץ אסטרטגיות עבודה מתאימות.
ראשית, יש להבין ש-Copilot, למרות שמו, אינו "הטייס הראשי" אלא יותר כנווט או יועץ. אתם הנהגים של הקוד. מומלץ לגשת ל-Copilot בדומה למתכנת זוטר או מתמחה שיושב לידכם: הוא יציע רעיונות – חלקם טובים, חלקם דורשים תיקון – ואתם בתור המומחים מחליטים מה לקבל, מה לדחות ומה לערוך. יחס כזה יעזור לשמור על מעורבות ופיקוח מלא שלכם בקוד, וימנע מלכודת של הסתמכות עיוורת.
מתן הקשר וכוונה: ממש כמו בעבודת צוות, תקשורת ברורה משפרת תוצאות. Copilot "קורא" את מה שאתם כותבים. לכן, אם תקדימו לכתוב הערת קומנט שמתארת את המטרה, Copilot יבין טוב יותר מה נדרש. למשל, אם תכתבו: # מקבלת רשימת מספרים ומחזירה רשימה ממוינת ללא כפילויות ומיד לאחר מכן תתחילו להגדיר פונקציה, Copilot כנראה יציע מימוש שעושה מיון וסינון כפילויות. בדומה, שם פונקציה תיאורי יכול להכווין אותו. למשל פונקציה בשם calculate_triangle_area תגרור השלמה אוטומטית פנימית לחישוב שטח משולש לפי נוסחה מתאימה. ככל שהכוונה שלכם תובהר בקוד (דרך שמות משתנים, פונקציות ותגובות), כך Copilot יהיה מתואם יותר איתכם.
דפוס שימוש נפוץ הוא כתיבת סקיצה תחילה: להתחיל לכתוב שלד של הפונקציה, אולי כמה קריאות לפונקציות עזר שטרם נוצרו, ופשוט לעצור. לעיתים קרובות Copilot ישלים את מה שחסר. למשל:
בדוגמה לעיל, ייתכן מאוד שלא היינו צריכים לכתוב את כל גוף הפונקציה – מספיק לרשום את הכותרת והדוק-סטרינג, ו-Copilot כבר ימשיך משם (השלמת הלולאה וכד'). למעשה, משתמשים רבים אימצו הרגל: כתוב הערה או חתימת פונקציה, המתן לראות את ההצעה, ואם היא נראית טובה – פשוט לחץ <kbd>TAB</kbd> כדי לקבל אותה. אם לא – דחה אותה (<kbd>Esc</kbd> או המשך להקליד ידנית) ונסה לנסח אחרת. זרימה זו מאפשרת למפתחים להישאר "בפוקוס" על הבעיה הגבוהה, בזמן ש-Copilot מתמודד עם פרטי המימוש השגרתיים. מפתחים מעידים ש-Copilot לעיתים "קורא את המחשבות" ומציע בדיוק את מה שהתכוונו לכתוב GitHub. Blog – דבר שיכול לחסוך זמן חיפוש בגוגל או בעלעול בתיעוד. כפי שתיאר זאת אחד המשתמשים: "מרשים אותי איך Copilot בדיוק יודע מה רציתי להקליד בהמשך, לפעמים הוא אפילו מציע קוד שהתכוונתי לגגל"GitHub. Blog.
תיקון ושיפור בזמן אמת
בעבודה עם Copilot, חשוב להישאר פעיל. אם Copilot מציע קוד שאינו מושלם, תוכלו מיד לערוך אותו – לעיתים התיקון שלכם ילמד את Copilot להבא במהלך הסשן. למשל, נניח ש-Copilot הציע לולאה מסובכת, אבל אתם יודעים שאפשר לעשות זאת בפייתון ברשומה (list comprehension). תוכלו לשנות את הקוד בהתאם. בהמשך הקובץ, Copilot כנראה יאמץ את הסגנון שלכם ויציע רשומות במקום לולאות מפורטות. אם הוא מציע שם משתנה לא ברור, שנה אותו לשם משמעותי; Copilot יתפוס את הרמז. חשבו על זה כדיאלוג: אתם ו-Copilot "כותבים יחד" את הקוד, וכל אחד מושפע מהשני. זו חוויית pair programming במלוא מובן המילה – רק שאחד הצדדים הוא AI שלמד מהמוני מפתחים אחרים.
ניהול הקשר וזמן
בעבודה בצוות אנושי, בני הזוג מתחלפים בתפקידים ("טייס" ו"נווט"). עם Copilot, אתם תמיד הטייס, אך אפשר לנצל את היכולת שלו לנווט על-ידי בקשת עזרה ממוקדת. אם אתם נתקעים במימוש חלק מסוים, אפשר לכתוב הערה # FIXME: כאן צריך לטפל במקרה X ולהשאיר אותו רגע – Copilot עשוי בהמשך כשתחזרו לחלק הזה להעלות פתרון. כמו כן, אל תהססו לחלק משימות לחלקים קטנים. Copilot עובד הכי טוב כשהבעיות ממוקדות. עדיף לכתוב פונקציה שעושה דבר אחד ברור ולתת ל-Copilot למלא אותה, מאשר לנסות לגרום לו לכתוב 200 שורות בבת אחת. Pair programming אפקטיבי מתאפיין בהרבה אינטראקציות קצרות – אותו דבר נכון כאן: תנו ל-Copilot בעיה קטנה-יחסית בכל פעם.
ביקורתיות ולמידה
לבסוף, שמרו על ביקורתיות ולמידה. העבודה עם Copilot יכולה ללמד אתכם טריקים חדשים – אולי הוא ישתמש בספרייה או שיטה שלא הכרתם. אם הוא מציע משהו לא מוכר, קראו את הקוד ונסו להבין. זהו יתרון בעבודה בזוג: אפשר ללמוד מהשותף. מנגד, אל תקבלו אוטומטית כל הצעה. היו במודעות, במיוחד כשנוגעים לקוד עדין. אם הרגשתם ש-Copilot מסיט אתכם לכיוון לא נכון, ייתכן שכדאי פשוט לכבותו לרגע (יש כפתור ייעודי ב-IDE להשעיית Copilot) ולכתוב את החלק הזה בעצמכם, ואז להפעיל שוב. שילוב נכון בין יכולות ה-AI לחשיבת המפתח יניב את התוצאה הטובה ביותר.
תירגול מוצע
בחרו פיצ’ר קטן לממש – למשל, כתבו פונקציה שממירה מילים לטייטל קייס (uppercase לכל האותיות הראשונות). השתמשו ב-Copilot כזוג: התחילו מלכתוב את שם הפונקציה ותיאור קצר בתגובה, ותנו ל-Copilot להמשיך. קבלו או דחו הצעות לפי הצורך. לאחר מכן, בצעו refactor: אם הקוד המוצע מסורבל, תקנו אותו ידנית. שימו לב אם Copilot מציע שיפורים בעצמו (לפעמים אחרי שינויים הוא יציע refactoring אוטומטי). באמצעות תרגול כזה תפתחו תחושה כיצד לעבוד בהרמוניה עם Copilot – מתי לתת לו להוביל ומתי לקחת פיקוד ולהכווין את הפתרון.