Github Copilot Essentials – מעבדת מבוא

תוכן עניינים

מטרת תרגול זה היא לתת לכם היכרות מעשית עם הישויות השונות והאפשרויות השונות ב‑GitHub Copilot ב‑VS Code.

 

בכל פרק תבצעו בעצמכם תרחישים ספציפיים, להיכרות עם מושגים שונים העומדים בבסיס של Copilot. תו״כ התרגול נשאל – מה לפתוח? מה לשאול? אילו פקודות להקליד ואיך לשפר את התוצאה. התרגילים אינם תלויים בשפת פיתוח מסוימת; כאשר Copilot צריך לייצר קוד, ציינו את השפה (למשל Python, JavaScript או C#) והקפידו לבנות אפליקציית קונסולה פשוטה.

 

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

 

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

 

בהצלחה!


1. התקנה וסטטוס ראשוני

  1. בדקו את ההתקנה:
    • פתחו את VS Code. בחפשו את הרחבת GitHub Copilot בלשונית Extensions (קיצור Ctrl+Shift+X).
    • אם ההרחבה לא מותקנת, התקינו אותה ולחצו על אייקון Copilot בצד שמאל כדי להתחבר לחשבון GitHub שלכם.
    • בשורת המשימות בתחתית הממשק של VS Code, לחצו על לחצן Copilot Status ( ). חלונית הסטטוס תוצג, שם תראו את מכסת הבקשות החודשית, קבצים שבהם Completions מופעלים ואפשרות לכבות את ההשלמות לכמה דקות.
      .

      חלונית Copilot Status
  2. תרגיל:
    • ודאו שה‑Completions מופעלות לקבצים בעלי סיומת של השפה שתבחרו.
    • כבו את ההשלמות ל-5 דקות ובדקו שהן לא מופיעות בזמן שאתם כותבים, ואז הפעילו אותן מחדש.

2. תרגול Completions (השלמות קוד)


יצירת קובץ:
צרו קובץ חדש בשם exercise עם הסיומת המתאימה לשפתכם (לדוגמה exercise.py או exercise.js).

 

  1. תרגיל 1 – השלמה פשוטה:
    • בראש הקובץ כתבו הערה באנגלית:
      
      # write a function that returns the maximum of three numbers
      
    • צפו כיצד Copilot מציע שלד פונקציה ואף בדיקה בסיסית.
    • לחצו Tab כדי לקבל את כל ההצעה או Ctrl+Tab כדי לקבל רק את החלק הראשון.
  2. תרגיל 2 – פיתוח בלוק:
    • כתבו חתימה ריקה של פונקציה:
      
      def calculate_mean(numbers: list) -> float:
      
    • Copilot אמור להציע השלמת בלוק שמחשב ממוצע ויחזור גם עם בדיקות קצרות.
  3. תרגיל 3 – תיעוד אוטומטי:
    • התחילו לכתוב Docstring:
      
      """
      
    • Copilot יציע תיעוד באנגלית לפונקציה.
    • קבלו אותו, בדקו שהוא מדויק, וערכו במידת הצורך.
  4. תרגיל 4 – Boilerplate:
    • צרו קובץ חדש בשם settings.yml ורשמו בו שורה אחת.
    • Copilot אמור להציע שלד מלא של קובץ YML – קבלו אותו.
  5. השוואת שיטות קבלה:
    • נסו לקבל חלק מההשלמה (למשל רק את ההצהרה הראשונה) באמצעות Ctrl+Tab, ואז לסרב לשאר.
  6. התבוננות:
    התחילו לכתוב קוד (פונקציה כלשהי בשפה המוכרת לכם), ובדקו:
    .

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

3. תרגול Inline

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

 

  1. תרגיל 1 – השלמת קוד בסיסית:
    • בראש הקובץ כתבו הערה באנגלית:
      
      # Calculate the sum of the integers from 1 to 10
      
    • עמדו מעל ההערה ופתחו Inline ע״י Ctrl+I (או Cmd+I במאק).
    • בשורה שנפתחה בקשו:
      Implement

       

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

      
      # Calculate the sum of the integers from 1 to 10, without an iteration
      
  2. תרגיל 2 – בקשת עזרה תוך כדי כתיבה:
    • כתבו קוד לא שלם, לדוגמא:
    • פתחו Inline, וכתבו:
      How to reverse a string without an iteration?

       

    • Copilot ישיב מתחת לשורה עם הסבר או קוד.
  3. תרגיל 3 – הסבר על קוד קיים
    • כתבו את הפונקציה הזו:
      
      def factorial(n):
          if n == 0:
              return 1
          return n * factorial(n - 1)
      
    • סמנו את הפונקציה ופתחו Inline.
    • כתבו
      Explain this function

       

    • קראו את ההסבר ובדקו אם Copilot מתייחס רק לרמת הלוגיקה, או גם לשפת הקוד.
  4. תרגיל 4 – בקשת שיפור Inline
    • השתמשו שוב בפונקציית factorial.
    • סמנו אותה ופתחו Inline
    • כתבו
      Optimize this function for performance

       

    • קבלו את ההצעה החדשה במקום הקוד הישן. מעוניינים לדחות את ההצעה? נסו לדייק את הפרומפט.

 


4. תרגול Commands במצב Inline

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

 

  1. פקודת explain:
    • סמנו את פונקציית reverse_string שלכם:
    • פתחו Inline ע״י Ctrl+I (או Cmd+I במאק).
    • בשורה שנפתחה כתבו:
      /explain

       

    • Copilot יציג הסבר קצר מיד בתוך הקובץ.
  2. פקודת fix:
      • הכניסו קטע קוד חדש:
        
        def add_numbers(a, b)
            return a + b
    • פתחו Inline וכתבו:
      /fix

       

    • Copilot יציע תיקון אוטומטי לשגיאת ה Syntax.
  3. פקודת doc:
    • סמנו את אחת הפונקציות שלכם:
    • פתחו Inline וכתבו:
    • /doc

       

    • Copilot יוסיף Docstring או הערת תיעוד תואמת.
  4. Inline Unit Tests:
    • סמנו את אחת הפונקציות שלכם (למשל factorial):
    • פתחו Inline וכתבו:
      /test

       

    • Copilot ייצור בדיקות. הריצו אותן ובדקו אם כולן עוברות.

5. תרגול Ask Mode

Ask Mode משמש לשאלות והסברים. התרגול הבא מלמד כיצד להפוך שאלה כללית לשאלה מדויקת:

הכנה: פתחו את Chat View ובחרו במצב Ask.

מצב Ask

 

  1. תרגיל 1 – שאלה לא מדויקת:
        • הקלידו בצ'אט:
          How do you write a function to capture words in a sentence?

           

        • Copilot יחזיר תשובה כללית. לרוב התשובה תכלול הסבר וקוד בשפה שהוא מנחש.
  2. תרגיל 2 – שיפור השאלה:
      • עכשיו נסחו מחדש:
        Write a python console function that receives a string and returns a list of comma-separated words

         

      • השוואה זו מדגימה איך ניסוח מפורש של שפה, סוג אפליקציה ונתונים מביא תשובה מדויקת יותר.
  3. תרגיל 3 – שימוש בהקשר:
    • בתוך קובץ הקוד, כתבו פונקציה שעושה חיתוך בין שני מערכים. לא יודעים איך? כתבו הערה מתאימה ומדויקת, והשתמשו ב Completions או Inline להצעת מימוש.
    • סמנו את הפונקציה, ובחלון הצ׳אט, ליד לחצן ה Add Context, ודאו שהקטע המסומן מוצע כהקשר:

      קוד מסומן כ Context
    • כעת שאלו בחלון הצ׳אט:
      What is the time complexity of the function, and what can be improved?
    • Copilot יסביר ויציע גרסה יעילה יותר.
  4. תרגיל 4 – שילוב Participants:
    • ב-Chat Mode, שאלו לפי הדוגמאות הבאות:
    • @vs code how to duplicate a single line downwards?

       

    • @terminal What's the git command for checking status?

       

    • @workspace Show usages of the 'result' variable?

       

  5. תרגיל 5 – שימוש ב-Slash Commands בצ׳אט:
    • כתבו פונקציה שמחזירה את סכום הסדרה החשבונית:
       
      def arithmetic_sum(a1, n, d): 
          return n / 2 * (2 * a1 + (n - 1) * d)
    • סמנו את הפונקציה וב-Chat הקלידו:
      /explain

       

    • Copilot יסביר את הקוד.
    • לאחר מכן הקלידו:
      /doc

       

    • Copilot ייצור Docstring באנגלית.
    • לסיום, הקלידו:
      /fix

       

    • על פונקציה שגויה (למשל, פונקציה המחלקת במספר שעלול להיות אפס). Copilot יציע תיקון.

6. תרגול Edit Mode

ב-Edit Mode ניתן לערוך קוד ישירות לפי הוראות טקסטואליות בצ'אט.

 

  1. תרגיל 1 – שינוי שמות והוספת טיפול בשגיאה:
    • כתבו פונקציה שמקבלת שם משתמש ומחזירה הודעת ברכה, לדוגמה:
      
      def greet(name): 
          return f"Hello, {name}"
    • סמנו את הפונקציה ולחצו Add Context.
    • ב-Edit Mode הקלידו:
      rename the variable name to userName and add handling for the case when name is empty.

       

    • בדקו את השינוי ובחרו אם לקבלו או לדחותו.
  2. תרגיל 2 – הוספת Unit Tests:
    • השתמשו באותה פונקציה.
    • ב-Edit Mode הקלידו (בהתאם לשפת הפיתוח בשימושכם):
      add unit tests for this function in Python using pytest.

       

    • Copilot יציג קובץ בדיקות – לחצו Accept כדי ליצור אותו.
  3. תרגיל 3 – Refactor (פיצול פונקציות):
      • כתבו קוד שמחשב ממוצע וחציון יחד:
     
    def analyze(numbers): 
        mean = sum(numbers) / len(numbers) 
        median = sorted(numbers)[len(numbers) // 2] 
        return mean, median

     

  4. ב-Edit Mode הקלידו:
    פצל את הפונקציה לשתי פונקציות: אחת לחישוב ממוצע ואחת לחישוב חציון. החזר את התוצאה כאובייקט.

     

  5. השוו בין הקוד הישן לחדש וחשבו מה היתרונות במבנה החדש.

7. תרגול Agent Mode

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

הפעלת הסוכן:

פתחו את חלונית Chat ובחרו Agent.

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

  1. תרגיל 1 – בניית יישום:
    • בחלון ה־Chat כתבו:
      Build a JavaScript console app that takes numbers and returns their mean, median, and mode

       

    • השתמשו בכלי Edit כדי ליצור את קבצי הפרויקט הנדרשים.
    • Copilot יכין תוכנית פעולה – יצירת קובץ, הוספת פונקציות והצעת הרצת בדיקות.
    • אשרו את הפעולות אם הן מתאימות למבנה ולדרישות שלכם.
  2. תרגיל 2 – Refactor across files:
    • בחלון ה־Chat כתבו:
      Find all calls to the function printMessage and rename it to displayMessage

       

    • Copilot יפעיל חיפוש, יפתח את הקבצים הרלוונטיים, יבצע את ההחלפות ויבקש את אישורכם לפני כל שינוי.
    • השוו את הרשימה של Copilot עם הסימולציה או הקוד שלכם כדי לוודא שכל ההחלפות בוצעו נכון.
  3. תרגיל 3 – Custom Toolsets
    בפרוייקטים גדולים, סוכן עם הרשאות נרחבות מדי עשוי להיות מסוכן בכך שהוא מסוגל לשבש דברים על פני מרחבים גדולים מדי בפרויקט.
    כעת ניצור סט כלים משלנו בהתאם להרשאות שאנו מעוניינים לתת לסוכן.
    .
    .

    • בראש חלון הצ׳אט לחצו על Settings (גלגל שיניים).
    • בחרו Tool Sets
    • באפשרויות שנפתחו בחרו Create new tool sets file
    • כעת נפתח עורך טקסט על קובץ JSON המגדיר סטים שונים של כלים. בכל סט שניצור – נוכל ״לארוז״ יחדיו סטים מתוך מאגר הכלים ש VSCode מציע לשימוש של סוכן Copilot.
    • העניקו שם חדש לסט הכלים שלכם, ותחת tools הוסיפו ערכים נוספים. כאשר תתחילו לכתוב שם של כלי – תקבלו רשימת אפשרויות, מאגר הכלים של VSCode.
    • שמרו את הקובץ וסגרו אותו
    • כעת בלחיצה נוספת על Tools, נוכל לבחור את סט הכלים החדש שהגדרנו

8. תרגול פתוח

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

 

  1. השוואת מודלים
    • בחלון ה Chat תחת תפריט המודלים – התנסו בתשובות שמתקבלות ממודלים שונים.

      בחירת מודלי Github Copilot
    • באמצעות Manage Models, נסו להוסיף מודלים משלכם (בהתאם לרישוי המקובל בארגון)
  2. התנסות בהקשרים שונים – Context
    • בחלון הצ׳אט, פתחו פרומפט חדש עם סימון #, וסקרו את ההקשרים המובנים השונים ש Copilot מציע. ניתן לשלב הקשרים מרובים בפרומפט יחיד.
    • נסו להעלות תמונה לגוף הצ׳אט ולבקש מ Agent Chat ליצור לכם ממשק משתמש דומה, תוך פירוט ה tech stack.
  3. היכרות עם מאגר המשתתפים – Participants
    • צ׳אט Copilot מתקשר עם כמה סוכנים, כ״משתתפים״. כל סוכן מביא איתו מומחיות יחודית, בהתאם לבסיס הידע שלו.
    • התנסו בשיחה עם participants שונים, וראו מה היתרונות שאלו מביאים.
    • שימו לב: ניתן לתקשר רק עם Participant אחד בפרומפט אחד. כן ניתן להוסיף מספר הקשרים (contexts)