במהלך השנתיים האחרונות, הצוות שלי ב-Work & Co ואני בדקנו ומשלבים בהדרגה כלי קידוד AI כמו Copilot, Cursor, Claude ו-ChatGPT כדי לעזור לנו לשלוח חוויות אינטרנט המשמשות את ההמונים. יש להודות, לאחר קצת ספקנות ראשונית וכמה רגעי אהה, כלים שונים של AI מצאו את דרכם לשימוש היומיומי שלי. עם הזמן, רשימת היישומים שבהם מצאנו שהגיוני לתת לבינה מלאכותית להשתלט התחילה לצמוח, אז החלטתי לשתף כמה מקרי שימוש מעשיים עבור כלי בינה מלאכותית עבור מה שאני מכנה "המפתח האחראי". למה אני מתכוון במפתח אחראי? עלינו לוודא שאנו מספקים קוד איכותי כפי שמצפים מבעלי העניין והלקוחות שלנו. התרומות שלנו (כלומר, בקשות למשוך) לא אמורות להפוך לנטל על עמיתינו שיצטרכו לבדוק ולבדוק את העבודה שלנו. כמו כן, במקרה שאתה עובד בחברה: הכלים בהם אנו משתמשים צריכים להיות מאושרים על ידי המעסיק שלנו. יש לטפל בהיבטים רגישים כמו אבטחה ופרטיות כראוי: אל תדביק סודות, נתוני לקוחות (PII) או קוד קנייני בכלים ללא אישור מדיניות. התייחס לזה כמו קוד מאדם זר באינטרנט. תמיד לבדוק ולאמת. הערה: מאמר זה מניח היכרות בסיסית מאוד עם כלי קידוד AI כמו Copilot בתוך VSCode או Cursor. אם כל זה נשמע לך חדש לגמרי ולא מוכר לך, מדריכי הווידאו של Github Copilot יכולים להיות נקודת התחלה נהדרת עבורך.
יישומים מועילים של כלי קידוד AI הערה: הדוגמאות הבאות יתמקדו בעיקר בעבודה ביישומי אינטרנט מבוססי JavaScript כמו React, Vue, Svelte או Angular. הבנה של בסיס קוד לא מוכר זה לא נדיר לעבוד על בסיסי קוד מבוססים, והצטרפות לבסיס קוד גדול מדור קודם יכולה להיות מאיימת. פשוט פתח את הפרויקט שלך ואת סוכן ה-AI שלך (במקרה שלי, Copilot Chat ב- VSCode) והתחיל לשאול שאלות בדיוק כמו שהיית שואל עמית. באופן כללי, אני אוהב לדבר עם כל סוכן בינה מלאכותית בדיוק כפי שהייתי מדבר עם אדם אחר. הנה הנחיה דוגמה מעודנת יותר: "תן לי סקירה כללית של ארכיטקטורה ברמה גבוהה: נקודות כניסה, ניתוב, אישור, שכבת נתונים, כלי בנייה. לאחר מכן רשום 5 קבצים לקריאה לפי הסדר. התייחס להסברים כהשערות ואשר על ידי קפיצה לקבצים שהפניה אליהם."
אתה יכול להמשיך לשאול שאלות המשך כמו "איך הניתוב עובד בפירוט?" או "דבר איתי על תהליך האימות והשיטות" וזה יוביל אותך לכיוונים מועילים להאיר קצת אור בחושך של בסיס קוד לא מוכר. הפעלת שינויים שוברים בעת שדרוג תלות עדכון חבילות npm, במיוחד כשהן מגיעות עם שינויים פורצים, יכול להיות עבודה מייגעת וגוזלת זמן, ולגרום לך לנפות באגים בכמות לא מבוטלת של רגרסיות. לאחרונה נאלצתי לשדרג את ספריית הדמיית הנתונים plotly.js לגרסה אחת מרכזית מגרסה 2 ל-3, וכתוצאה מכך, תיוג הציר בחלק מהגרפים הפסיק לעבוד. המשכתי לשאול את ChatGPT: "עדכנתי את פרויקט ה-Angular שלי שמשתמש ב-Plotly. עדכנתי את חבילת plotly.js - חבילת dist מגרסה 2.35.2 ל-3.1.0 - ועכשיו התוויות על ציר ה-x וה-y נעלמו. מה קרה?"
הסוכן חזר עם פתרון מיידי (ראה בעצמך למטה). הערה: עדיין אימתתי את ההסבר מול מדריך ההגירה הרשמי לפני שליחת התיקון.
שכפול Refactors בבטחה על פני קבצים בסיסי קוד גדלים בהחלט חושפים הזדמנויות לאיחוד קוד. לדוגמה, אתה מבחין בשכפול קוד בין קבצים שניתן לחלץ לפונקציה או רכיב בודד. כתוצאה מכך, אתה מחליט ליצור רכיב משותף שניתן לכלול במקום ולבצע מחדש את זה בקובץ אחד. כעת, במקום לבצע באופן ידני את השינויים האלה בקבצים הנותרים שלך, אתה מבקש מהסוכן שלך להפעיל עבורך את הרפקטור. סוכנים מאפשרים לך לבחור קבצים מרובים כהקשר. לאחר סיום ה-refactor עבור קובץ אחד, אני יכול להוסיף גם את הקבצים המחודשים וגם את הקבצים שלא נגעו בהקשר ולבקש מהסוכן להפעיל את השינויים לקבצים אחרים כך: "שכפל את השינויים שעשיתי בקובץ A גם לקובץ B". יישום תכונות בטכנולוגיות לא מוכרות אחד מרגעי האהא האהובים עלי באמצעות כלי קידוד AI היה כאשר זה עזר לי ליצור אנימציה מורכבת למדי של הדרגתיות ב-GLSL, שפה שדי לא הכרתי. בפרויקט שנערך לאחרונה, המעצבים שלנו הגיעו עם שיפוע מונפש כמצב טעינה על אובייקט תלת מימדי. מאוד אהבתי את הקונספט ורציתי לספק משהו ייחודי ומרגש ללקוחות שלנו. הבעיה: היו לי רק יומיים ליישם את זה, ול-GLSL יש עקומת למידה די תלולה. שוב, כלי בינה מלאכותית (במקרה הזה, ChatGPT) היה שימושי, והתחלתי להנחות אותו בפשטות ליצור עבורי קובץ HTML עצמאי שמציג קנבס ושיפוע צבע מונפש פשוט מאוד. שלב אחר שלב, הנחיתי את הבינה המלאכותית להוסיף לו עוד עדינות עד שהגעתי לתוצאה הגונה כדי שאוכל להתחיל לשלב את ההצללה בבסיס הקוד האמיתי שלי. התוצאה הסופית: הלקוחות שלנו היו סופר מרוצים, וסיפקנו תכונה מורכבת תוך זמן קצר הודות ל-AI. כתיבת מבחנים מניסיוני, לעתים רחוקות יש מספיק זמן בפרויקטים כדי לכתוב ולתחזק חבילה נכונה של מבחני יחידה ואינטגרציה, ובנוסף לכך, מפתחים רבים לא ממש נהנים ממשימת כתיבת המבחנים. הנחיה לעוזר הבינה המלאכותית שלך להגדיר ולכתוב עבורך מבחנים אפשרי לחלוטין וניתן לעשות זאת תוך פרק זמן קצר. כמובן, אתה, כמפתח, עדיין צריך לוודא שהבדיקות שלך אכן יסתכלו על החלקים הקריטיים של האפליקציה שלך ויפעלו לפי עקרונות בדיקה הגיוניים, אבל אתה יכול "במיקור חוץ" את כתיבת הבדיקות לעוזר הבינה המלאכותית שלנו. הנחיה לדוגמה: "כתוב בדיקות יחידה עבור הפונקציה הזו באמצעות Jest. כסה נתיב שמח, מקרי קצה ומצבי כשל. הסבירו מדוע כל מבחן קיים."
אתה יכול אפילו להעביר את שיטות הבדיקות המומלצות של גורו הבדיקות קנט סי. דודס כהנחיות לסוכן שלך, כמו להלן:
כלי עבודה פנימיים קצת דומה לדוגמת ההצללה שהוזכרה קודם לכן, לאחרונה הוטל עלי לנתח שכפול קוד בבסיס קוד ולהשוות לפני ואחרי רפקטור. בהחלט לא משימה טריוויאלית אם אתה לא רוצה ללכת בדרך שלוקחת זמן של השוואה ידנית של קבצים. בעזרת Copilot יצרתי סקריפט שניתח עבורי שכפול קוד, סידרתי והזמנתי את הפלט בטבלה וייצאתי לאקסל. ואז לקחתי את זה צעד קדימה. לאחר שחזר הקוד שלנו הושלם, הנחיתי את הסוכן לקחת את גיליון האקסל הקיים שלי כבסיס, להוסיף את המצב הנוכחי של כפילות בעמודות נפרדות ולחשב את הדלתא. עדכון קוד שנכתב לפני זמן רב לאחרונה, לקוח ותיק שלי פגע בי, שכן במשך הזמן, כמה פיצ'רים כבר לא פעלו כמו שצריך באתר שלו. הקאץ': האתר נבנה לפני כמעט עשר שנים, וה-JavaScript וה-SCSS השתמשו בכלי קומפילציה ישנים למדי כמו requireJS, וההגדרה דרשה גרסה ישנה יותר של Node.js שאפילו לא תרוץ על ה-MacBook 2025 שלי. עדכון כל תהליך הבנייה ידנית היה לוקח לי ימים, אז החלטתי להנחות את סוכן הבינה המלאכותית, "האם אתה יכול לעדכן את תהליך הבנייה של JS ו-SCSS למחסנית רזה של 2025 כמו Vite?" זה בהחלט קרה, ואחרי כשעה של חידוד עם הסוכן, התחלפתי את ה-SCSS וה-JS שלי ל-Vite, והצלחתי להתמקד בתיקון באגים בפועל. רק הקפד לאמת כראוי את הפלט והקבצים הקומפיליים בעת ביצוע שינויים אינטגרליים כאלה בתהליך הבנייה שלך. סיכום וניסוח האם תרצה לסכם את כל שינויי הקוד האחרונים שלך במשפט אחד עבור הודעת commit, או שיש לך רשימה ארוכה של commits וברצונך לסכם אותם בשלוש נקודות תבליטים? אין בעיה, תן ל-AI לטפל בזה, אבל אנא הקפד לבצע הגהה. הנחיה לדוגמה היא פשוטה כמו שליחת הודעה לאדם אחר: "נא לסכם את השינויים האחרונים שלי בנקודות תמציתיות". העצה שלי כאן היא להשתמש ב-GPT לכתיבה בזהירות, וכמו בקוד, אנא בדוק את הפלט לפני השליחה או השליחה. המלצות ושיטות עבודה מומלצות הנחיה אחד היתרונות הלא כל כך ברורים של שימוש בבינה מלאכותית הוא שככל שההנחיות שלך ספציפיות ומותאמות יותר, כך התפוקה טובה יותר. התהליך של הנחיה לסוכן AI מאלץ אותנו לנסח את הדרישות שלנו בצורה ספציפית ככל האפשר לפני שאנחנו כותבים ומקודדים. זו הסיבה, ככלל, אני ממליץ בחום להיות ספציפי ככל האפשר עם ההנחיה שלך. ריאן פלורנס, מחבר שותף של Remix, מציע דרך פשוטה אך רבת עוצמה לשפר את התהליך הזה על ידי סיום ההנחיה הראשונית שלך במשפט: "לפני שנתחיל, יש לך שאלות אליי?"
בשלב זה, ה-AI בדרך כלל חוזר עם שאלות מועילות שבהן אתה יכול להבהיר את הכוונה הספציפית שלך, להנחות את הסוכן לספק לך גישה מותאמת יותר למשימה שלך.
השתמש בבקרת גרסה ועבוד בנתחים ניתנים לעיכול שימוש בבקרת גרסאות כמו git לא רק שימושי כאשר משתפים פעולה כצוות על בסיס קוד יחיד, אלא גם כדי לספק לך כתורם בודד עם נקודות יציבות שאפשר לחזור אליהן במקרה חירום. בשל האופי הלא-דטרמיניסטי שלו, AI יכול לפעמים להשתולל ולבצע שינויים שפשוט לא מועילים למה שאתה מנסה להשיג ובסופו של דבר לשבור דברים ללא תקנה. פיצול העבודה שלך למספר מחויבות יעזור לך ליצור נקודות יציבות שתוכל לחזור אליהן למקרה שהדברים ילכו הצידה. וחבריך לצוות יודו לך גם כן, מכיוון שיהיה להם קל יותר לסקור את הקוד שלך כאשר הוא יחולק לנתחים מובנים היטב מבחינה סמנטית. סקור ביסודיות זו יותר שיטת עבודה כללית מומלצת, אבל לדעתי, היא הופכת חשובה עוד יותר בעת שימוש בכלי AI לעבודת פיתוח: היה המבקר הביקורתי הראשון של הקוד שלך. הקפד להקדיש זמן כדי לעבור על השינויים שלך שורה אחר שורה, בדיוק כמו שהיית בודקת את הקוד של מישהו אחר, ושלח את העבודה שלך רק לאחר שהיא עוברת את הבדיקה העצמית שלך. "שני דברים שניהם נכונים לי כרגע: סוכני בינה מלאכותית הם מדהימים ומהווים דחיפה אדירה לפרודוקטיביות. הם גם מכונות ספוג עצומות אם מכבים את המוח ומשחררים לגמרי." - ארמין רונאצ'ר בפוסט הבלוג שלו Agent Psychosis: Are We Going Insane?
מסקנה ומחשבות ביקורתיות לדעתי, כלי קידוד AI יכולים לשפר את הפרודוקטיביות שלנו כמפתחים על בסיס יומיומי ולפנות יכולת מנטלית ליותר תכנון וחשיבה ברמה גבוהה. הם מאלצים אותנו לבטא את התוצאה הרצויה שלנו עם פירוט קפדני. כל AI יכול, לפעמים, להזות, מה שאומר בעצם שהוא שוכב בנימה בטוחה. אז אנא הקפד לבדוק ולבדוק, במיוחד כאשר יש לך ספק. בינה מלאכותית היא לא כדור כסף, ואני מאמין שהמצוינות והיכולת לפתור בעיות כמפתח לעולם לא ייצאו מהאופנה. עבור מפתחים שרק מתחילים את הקריירה שלהם הכלים האלה יכולים להיות מפתים מאוד לעשות עבורם את רוב העבודה. מה שעלול ללכת לאיבוד כאן הוא העבודה המתנקה והכואבת לעתים קרובות דרך באגים ובעיות שקשה לנפות ולפתור, הלא הם "השחיקה". אפילו לי רובינסון משלו של Cursor AI מטיל ספק בכך באחד הפוסטים שלו:
כלי קידוד AI מתפתחים בקצב מהיר, ואני נרגש לקראת מה שיבוא אחר כך. אני מקווה שמצאתם את המאמר הזה והטיפים שלו מועילים ונרגשת לנסות כמה מהם בעצמכם.