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