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

מצורפים קוד התחלה, פתרון לדוגמה ובדיקות מקומיות. התרגיל מדגים שינוי אחד שאפשר להבין ולבדוק; הוא אינו מדידת איכות או מהירות של מודל.

בוחרים סביבת עבודה

Codex זמין בכמה סביבות, ובהן CLI ואפליקציית מחשב. הכרזת אפליקציית Codex מציגה עבודה עם משימות, סקירת שינויים ו־worktrees, שהם עותקי עבודה נפרדים של אותו מאגר. הממשק והאפשרויות בחשבון שלכם עשויים להשתנות לפי גרסה ומסלול.

גרסת CLI מתארת את סביבת העבודה, ושם המודל מתאר את המנוע שנבחר בתוכה. בדקו את שניהם בחשבון ובכלי שלכם. מדריך GPT-6 Astra מסביר את ההבדל בין המודל לבין מוצרי השיחה והפיתוח.

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

מתחילים מתנאי קבלה

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

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

אפשר לתת לסוכן בקשה כזאת:

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

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

איך עובד הפתרון לדוגמה

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

בדיקהדוגמהתוצאה
שם בעבריתנועהנמצאה הרשומה המתאימה
חברה בעבריתאלוןנמצאה החברה המתאימה
אותיות באנגליתstudioנמצא Studio Olive
רווחיםDana עם רווחים מסביבנמצאה Dana
ללא התאמהnobodyרשימה ריקה
חיפוש ריקמחרוזת ריקהכל שלוש הרשומות
קלט לא תקיןnullרשימה ריקה
שמירת המקורחיפוש ריקהוחזר מערך חדש

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

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

בדיקה לפני שמאשרים שינוי

לחבר את הפונקציה לחוויית חיפוש מלאה

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

להגדיר את ההבדל בין רשימה ריקה לתקלה

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

לבדוק עברית ואנגלית יחד

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

להגדיר את גבולות הפתרון הראשון

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

מפתח בודק שינוי בקוד לצד רשימת בדיקות במחשב
בודקים את השינוי ואת תוצאות הבדיקות לפני שמאשרים אותו.

איך לנהל את השיחה כשמתגלה צורך חדש

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

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

סקירה שאפשר להעביר למפתח אחר

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

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

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

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

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

תרגיל המשך: נתון חסר ברשימת אנשי הקשר

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

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

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

שאלות נפוצות

האם צריך לדעת תכנות כדי להשתמש ב־Codex?

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

מה ההבדל בינו לבין Claude Code?

שניהם כלי פיתוח שיכולים לעבוד על פרויקט. השוואת Claude Code ו־Codex מפרטת את שיקולי הבחירה ואת סביבת העבודה. מדריך Claude Code למתחילים מפרט את דרך ההתחלה בצד של Claude.

מתי אפשר לפרסם את התוצאה?

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