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

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

הוא מועיל אפילו בקוד שאני טובה בו, כמו PHP, אבל תכנות הוא תחום ממש רחב והבינה המלאכותית מאפשרת לי לשלוט במקביל בהמון תתי-תחומים מאוד רחבים של תכנות, בלי להתמקצע בכל אחד ואחד מהם. כך הוא כותב לי שאילתות SQL מורכבות, ופעם הוא אפילו פתר לי בעיית ביצועי DB מחרידה – פעולה שהייתה אמורה לקחת כמה שניות לקחה יותר מ-10 דקות – כשהוא הבין ממש מהר שהבעיה הייתה העדר אינדקס על אחת העמודות ששלפתי. אני לא הייתי חושבת על זה כל כך מהר, אם בכלל.
Human in the Loop: שליטה ובקרה מלאה
אחד הדברים שאני הכי אוהבת בכלי הזה הוא שהוא מכבד את ה-Human in the Loop. הוא לא דוחף קוד, אלא מאפשר לי להיות המבוגר האחראי.
הממשק של Cursor מאפשר לי לאשר או לדחות כל שינוי בלחיצה, כולל דפדוף בין כל הקבצים שהוא שינה, ובין השינויים באותו הקובץ. זה מאפשר לי לשמור על שליטה ובקרה מלאה ברמת גרניולריות שמתאימה לי

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

וכך זה נראה כשהוא רוצה למחוק לי שורה אחת ולהוסיף לי אחרת במקומה -

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

והינה מקום מרכזי בקובץ שאפשר לעבור בו בין כל השינויים -

קרסר גם מבין לגמרי את נפש האדם, ומביא בחשבון שאנחנו מבקשים ממנו לעשות משהו והולכים בינתיים לחלונות אחרים (היתכן?) ולכן הוא מקפיץ נוטיפיקציה שמופיעה במחשב בלי קשר לאיפה נמצאים עכשיו
מהבחינה הזאת קרסר עדיף עליי כי הוא ב-IDE. כשהשתמשתי זמן קצר בקלוד קוד, ממש היה חסר לי כל הממשק ה-IDE-י הזה. מצד שני יש אנשים שמתלהבים מאוד מקלוד קוד ואני תמיד שמחה לקרוא על זה. למשל כאן: אצלנו משתמשים ב-IDE כדי לכתוב קוד יום כן יום לא – היום לא.
ה-Game Changer האמיתי: מאיכות לכמות (ובחזרה)
הרעיון הרווח הוא ש-AI רק מקצר את זמן הפיתוח ומאפשר לנו להספיק יותר פרויקטים. כלומר – שיפור בכמות. אבל גיליתי שהגעה מהירה לפתרון נותנת לי זמן לעוד דבר: ליצור דשבורים של לוגים ולעקוב אחרי השימוש בתוספים שפיתחתי.
כבר תוך כדי עבודה הייתי מבקשת מקרסר ליצור לי לוגים של דיבוג, כדי שאוכל לעקוב אחרי השלבים שהתוסף שלי מעביר את המשתמש. קל לי לעשות את זה עם קרסר כי הוא בעצמו כותב את הקוד, ולא מפריע להכניס לי בכל מקום שורה של דיבוג.
אחרי שהעליתי את התוספים שלי לשרת הייצור בזמן, הבנתי שני דברים: 1. יש לנו שני שרתים, מה שאומר שאם אני רוצה לקרוא לוגים אני צריכה להכנס לשניהם ולעקוב אחרי הלוגים בכל אחד מהם, ו-2. שאני רוצה שגם אדמינים של המערכת יוכלו לעקוב אחרי הלוגים ויוכלו להבין מה קורה בלי להסתמך על דיווחים שלי. לכן ביקשתי מקרסר שייצור לי דשבורד, ותוך חצי שעה הדשבורד כבר היה באוויר. כמובן, כמו כל מתכנתת טובה, ביליתי את היומיים הבאים בשפצורו, אבל עדיין הוא ביצע את מטרתו: אני "על" הנתונים, מזהה את התקלה מיד כשהיא מתרחשת, ומשתמשת ב-Cursor כדי לתקן אותה במהירות הבזק. פתרון שפעם היה לוקח שעות של ניתוח ידני, מצטמצם לדקות של זיהוי ותיקון ממוקד.
מעבר לכל היתרונות הטכניים, הקרסר נותן לי גם שקט נפשי: הרגשתי שיש מי שעוזר לי. ה-AI הצליח בכל משימה שביקשתי ממנו, ונתן ביטחון שגם אם יצוצו דברים חדשים הוא יוכל להתמודד איתם.
האם ה-AI הוא עיפרון?
כשישבנו לסכם את התהליך, עלתה השאלה הגדולה (תודה לאפרת!): האם לתת קרדיט רשמי לבינה המלאכותית? האם ה-AI זה כמו לתת קרדיט לעיפרון שאיתו כתבת, ולמהדק שעזר לך לכרוך את הדברים, או שמגיע לו קרדיט אמיתי?
אני נוטה לחשוב שבכלי כמו Cursor – שמזהה בעיות ביצועים, קורא קוד קיים, ומספק שיקולים לוגיים מורכבים – יש הרבה יותר ממהדק. זה לא כלי כתיבה, זו שותפות לוגית. הוא לא רק כותב את מה שאמרתי לו, הוא נותן פתרונות לבעיות שעדיין לא ידעתי שאני צריכה לפתור. נכון שגם לי יש צד בעניין, ולא הרי קוד שאני יצרתי עם AI כהרי קוד שמתכנת אחד ייצור עם AI, אבל עדיין, אני מרגישה שחשוב לי להדגיש, לפחות בעת הזאת, ש-AI כתב את הקוד. אני מניחה שמתישהו, אולי בקרוב מאוד, זאת תהיה הנחת העבודה, ולא יהיה צורך להדגיש זאת באופן מיוחד.

מעניין מאוד! תודה!
רק עכשיו הבנתי שהלוגים משנים באופן מהותי כל כך את אופן העבודה, חשבתי שהם עוד דרישה שמכבידה על המערכת ואני מבינה שזה גם לא מכביד וגם מאפשר לשחרר בבניית הקוד עצמו ואז לתפוס באגים בזמן אמת כך שבמקום לחשוב מראש על כל מקרי הקצה, גם כאלה שאת לא זוכרת שהיו, אפשר לתפוס רק את אלה שבאמת מפריעים בזמן שהם קורים ובאופן שהוא די שקוף למשתמשים.
לגבי IDE וקלוד – גם כשכתבתי דברים קטנים עם קלוד היה ממש חסר לי IDE. היו כמה פעמים שהורדתי את הקוד שהוא יצר לנוטפד (אני לא מתכנתת אז אין לי במחשב סביבת עבודה ראויה משלי) כדי לשנות אותו והיה קצת קשה להתמצא בקוד כי הוא לא היה מסודר. לתחושתי קלוד גם פחות הבין מה רציתי ועשה טעויות טיפשיות שהיה קל לתקן דרך הקוד, ואם הקוד היה קריא יותר היה עוד יותר קל.
ולגבי העפרון – ברור שקרסר הוא חץ, לא עיפרון. סתם. קרסר הוא כלי, גם אם יש לו פונקציות חכמות. אולי זה כמו פוטושופ, שבמשך שנים היתה איזושהי תחושה של נאמנות מסורתית לתמונות "טהורות" או ללא פילטר, שלא עברו שינוי, היתה תחושה ששימוש בפוטושופ הוא רמאות, והיום שימוש בעריכה הוא מובן מאליו ולפעמים מראש מצלמים תמונה לא 100% בידיעה שנגזור אותה בהמשך, למשל. היום יש צלמים שמציעים מראש תמונות ערוכות וזה נחשב השירות הבסיסי שלהם ואף אחד לא אומר שהם מרמים, אלא משתמשים בכלים האוטומטיים שיש כדי לעשות עריכות מרובות בקליק.
אפרת, תודה רבה על ההערות המאירות שלך!
אכן יש הרבה יתרונות ללוגים. עדיין הייתי ממשיכה לחשוב על כל מקרי הקצה והבאגים האפשריים כבר בזמן הפיתוח, כי גם כשעושים את זה עדיין נשארים דברים שלא חשבנו עליהם, או שאנחנו לא יודעים אם משתלם לטפל בהם מבחינת עלות לעומת תועלת. אבל כן, יש קצת פחות חשש להעלות דברים לאוויר כשיש דרך קלה לעקוב אחרי המתרחש.
תודה על ההזדהות שלך איתי עם העדר ה-IDE. מבחינת איכות הקוד, אני מודה שאני לא חשתי הבדל בין קלוד לקרסר. מצד שני, המשימות שאני נותנת להם הן די קטנות, כך שאין הרבה איפה לטעות בכתיבת הקוד.
אהבתי את ההשוואה לפוטושופ. ואכן, כמו שהיום לא "מודים" לפוטושופ על עריכת התמונות הנהדרת שלו, אולי יום אחד כבר לא ארגיש צורך לתת קרדיט ל-AI. בינתיים אני כן 🙂