דלג לתוכן
AI Coding Mindset

מניעת רגרסיה בפיתוח עם AI: שלא יישבר הקיים

מתחילים
13 דק׳עודכן

איך למנוע רגרסיה בפיתוח עם AI

כדי למנוע רגרסיהרגרסיה(Regression)רגרסיה (regression) היא כשפיצ'ר שעבד נשבר בעקבות שינוי אחר — באג חוזר או תופעת לוואי לא צפויה. בעבודה עם AI הסיכון גבוה כי שינוי 'קטן' עלול לגעת בקוד מרוחק, ולכן טסטים, שינויים קטנים וסקירה הם רשת הביטחון. בפיתוח עם AI, עבדו בשינויים קטנים וממוקדים, גבו אותם בטסטים ובטיפוסים, ותמיד עברו על ה-diff לפני שמאשרים. רגרסיה היא כשקוד שעבד נשבר בגלל שינוי חדש — וה-AI מועד לזה כי הוא רואה רק חלק מהתמונה. רשת הגנה טובה הופכת את זה לכמעט בלתי אפשרי.

מאת צוות Core-Code · עודכן ב-2026-06-03.

מה זו רגרסיה, ולמה כדאי לפחד ממנה (קצת)?

רגרסיה היא כשפיצ'ר שעבד מצוין מפסיק לעבוד אחרי שינוי לא קשור. תיקנתם את עגלת הקניות — ופתאום ההתחברות נשברה. השם בא מהמילה "נסיגה": התוכנה חזרה אחורה למצב שבור, למרות שרק רציתם לשפר אותה.

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

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

למה ה-AI שובר דווקא דברים שעבדו?

ה-AI שובר דברים שעבדו כי הוא רואה רק את מה שנתתם לו לראות. הוא לא מחזיק בראש את כל הקוד-בייס; הוא לא יודע שהפונקציה ששינה נקראת מחמישה מקומות אחרים. מבחינתו השינוי מקומי ותמים — אבל החיבורים הסמויים הם שמתנקמים.

יש לזה גם צד פסיכולוגי: ה-AI אופטימי. הוא כמעט תמיד מציג את התשובה בביטחון, גם כשהוא מנחש. כפי שניסחה זאת החוקרת אמילי בנדר, מודלים אלו הם במידה רבה "stochastic parrots" — הם מרכיבים רצפי טקסט סבירים בלי הבנה אמיתית של ההשלכות (מקור: https://dl.acm.org/doi/10.1145/3442188.3445922). לכן האחריות על "מה זה ישבור" נשארת אצלכם.

לעומק (למתקדמים): הבעיה היא בעצם בעיית הקשר (context). למודל יש חלון הקשרחלון הקשר(Context Window)חלון ההקשר (context window) הוא כמות הטקסט שמודל AI יכול 'לראות' בו-זמנית — הפרומפט, הקבצים וההיסטוריה — נמדד בטוקנים. כל מה שמחוץ לחלון לא קיים מבחינת המודל. ניהול נכון של מה שנכנס לחלון הוא ההבדל בין תשובה מדויקת לניחוש. סופי, ואתם לרוב מזינים לתוכו רק את הקובץ הנוכחי. כל תלות שנמצאת מחוץ לחלון פשוט לא קיימת מבחינתו. זו אחת הסיבות שעקרון הפרדת אחריות (SoC) כל כך עוזר מול AI: כשכל יחידה אחראית על דבר אחד וברור מי תלוי במי, מצטמצמים החיבורים הסמויים שאפשר לשבור בטעות.

בנו את רשת הביטחון: הזיזו את המגנים

רשת הביטחון מפני רגרסיה בנויה מכמה שכבות, וכל אחת תופסת סוג אחר של שבירה. אף שכבה לבדה אינה מושלמת — אבל יחד הן הופכות רגרסיה מ"כמעט בטוח" ל"כמעט בלתי אפשרי". העוצמה היא בשילוב, ולכן כדאי להרגיש איך כל מגן מוסיף ביטחון.

הפעילו וכבו את המגנים השונים ושימו לב למד הביטחון. נסו להבין למה כל אחד תורם משקל אחר:

Regression

כמה מוגן השינוי שלכם?

חשוף לרגרסיה
0%

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

ראיתם את הדפוס? diff קטן וטסטים נושאים את המשקל הגדול, אבל review אנושי הוא מה שסוגר את הפינות. הכלל הזהב: אל תאשרו שינוי שלא קראתם. ה-AI כותב, אתם מאשרים — וזה ההבדל בין מהירות בטוחה למהירות מסוכנת.

תרגול מהיר: לתפוס רגרסיה לפני שקרתה

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

ה-AI הציע לכם שינוי. בחרו את התגובה הכי בטוחה:

Checkpoint

ביקשתם מ-AI לשנות פונקציה אחת, והוא החזיר diff שנוגע ב-7 קבצים שונים, כולל קבצים שלא הזכרתם. מה הכי נכון לעשות?

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

מה לוקחים מכאן?

רגרסיה היא לא גזרת גורל — היא תוצאה של שינוי גדול מדי בלי רשת ביטחון. שמרו על diff קטן, scope ברור, טסטים, טיפוסים, ו-review משלכם, ותגלו שאתם יכולים לזוז מהר בלי לשבור דברים. ה-AI נותן מהירות; הרשת שבניתם נותנת ביטחון.

עכשיו יש לכם כלים אמיתיים לעבוד עם AI בלי פחד. בשיעור האחרון נלמד איך לבנות קוד שקל מלכתחילה לשנות בבטחה — מודולריות: מתי, ומה זה מודול נכון. אתם ממש קרובים לסיום, כל הכבוד.

שאלות נפוצות

מה זו רגרסיה בתוכנה?

רגרסיה היא כשמשהו שעבד מצוין מפסיק לעבוד בגלל שינוי חדש — תיקנתם דבר אחד ושברתם דבר אחר בלי לשים לב. השם נובע מכך שהתוכנה 'נסוגה' אחורה: פיצ'ר שהיה תקין חזר להיות שבור.

למה דווקא עריכות AI גורמות לרגרסיות?

כי ה-AI רואה רק את מה שהראיתם לו. הוא לא מכיר את כל החלקים האחרים שתלויים בקוד שהוא משנה, אז שינוי 'תמים' אצלו עלול לנתק חיבור במקום אחר. הוא אופטימי מטבעו ולא תמיד יודע מה הוא לא יודע.

מהי ההגנה הכי חשובה מפני רגרסיה?

diff קטן ו-scope ברור הם הבסיס: ככל שהשינוי קטן וממוקד יותר, כך קל יותר לראות מה השתנה ולמנוע נזק. מעליהם, טסטים תופסים שבירות אוטומטית וטיפוסים תופסים אי-התאמות עוד לפני ההרצה. שילוב שלהם נותן רשת ביטחון אמיתית.

סיימתם את השיעור?

סמנו כהושלם כדי לעקוב אחרי ההתקדמות שלכם במסלול.

השיעור הבא