איך אני משתמש ב-AI כדי לשגר קוד
תפסיקו לנסות לכתוב פרומפטים חכמים. תתחילו בהנדסת קונטקסט.
רוב האנשים משתמשים ב-AI בצורה לא נכונה. הם מבקשים פיצ'ר במשפט אחד. ה-AI מחזיר קוד שמשתמש בספריות הלא נכונות, שובר את מוסכמות השמות (naming conventions) ומחזיר באגים ישנים. אתם מבזבזים את כל אחר הצהריים בתיקון הבלאגן.
AI ללא קונטקסט הוא כמו מפתח ג'וניור שמעולם לא קרא את בסיס הקוד (codebase) שלכם. הוא שוכח הכל ממה שקרה אתמול. לא הייתם נותנים לעובד חדש משימה בשורה אחת ומצפים לקוד מושלם. הייתם נותנים לו מסמך אונבורדינג (onboarding).
אני משתמש בקובץ זיכרון פרויקט ב-repo שלי. הקובץ הזה משמש כמסמך אונבורדינג שה-AI קורא בכל פעם. הוא מכיל חוקים ספציפיים לפרויקט שמישהו מבחוץ לא היה יודע:
• דברים שאינם ניתנים למשא ומתן: איך ה-URLs חייבים להיראות ואיך ה-slugs חייבים להתאים לסביבת הפרודקשן. • חוקי לוגיקה: גזירת ערכים מקונפיגורציות (configs) במקום hardcoding של מספרים. • מקרי קצה: הגדרות CDN ספציפיות או נתיבי קבצים שמונעים תקלות שקטות.
כל טעות שאני עושה הופכת לשורה בקובץ הזה. זה הופך את הקובץ לנכס מצטבר. איכות הפלט של ה-AI משתפרת עם הזמן כי אני מפסיק לחזור על עצמי.
זרימת העבודה שלי כוללת את השלבים הבאים:
- Bootstrap לקונטקסט: בקשו מה-AI לנסח טיוטה של קובץ הזיכרון מהקוד שלכם, ואז ערכו אותו.
- ניסוח מחדש של המשימה: בקשו מה-AI לסכם את המטרה לפני שהוא כותב קוד. זה תופס שגיאות בשלב מוקדם.
- שיפור הפרומפט: שאלו את ה-AI מה לא ברור בבקשה שלכם.
השתמשו ב-AI למשימות הבאות:
- כתיבת boilerplate ו-scaffolding.
- refactors שעוקבים אחר תבניות קיימות.
- הסבר של קוד לא מוכר.
- סריקות מכניות על פני ה-repo.
- כתיבת טסטים ו-fixtures.
הימנעו משימוש ב-AI למשימות הבאות:
- קבלת החלטות ארכיטקטוניות חדשניות.
- קבלת החלטות של טעם או מוצר.
- כל דבר שבו טעות היא יקרה.
- עיצוב קריטי לאבטחה.
- הביקורת הסופית לפני השחרור (shipping).
המשמעת היא פשוטה:
- הגדירו טווח משימות קטן. אל תגידו "בנה את הפיצ'ר הזה". תגידו "בצע את השינוי הספציפי הזה".
- תנו קונטקסט מראש.
- ודאו כל פלט. הריצו build וקראו את ה-diff.
- בדקו את זה כמו PR של מפתח ג'וניור. לעולם אל תבצעו commit לקוד בלי שבני אדם קראו אותו.
- החזירו לקחים לקובץ הקונטקסט שלכם.
המינוף הוא לא בפרומפט. המינוף הוא בקונטקסט שאתם מנהלים.
קהילת למידה אופציונלית: https://t.me/GyaanSetuAi
