- שליטה בכלי Edit לשינויים מדויקים בקבצים קיימים — כולל replace_all לשינוי שם משתנה
- שליטה בכלי Write ליצירת קבצים חדשים מאפס
- יכולת להנחות את Claude לבצע שינויים רב-קובציים מתואמים ב-turn אחד
- יכולת לקרוא Diffs ולהבין בדיוק מה השתנה לפני שמאשרים
- עבודה עם Merge Conflicts דרך Claude — הסבר, החלטה, ופתרון
- שימוש ב-Claude כ-Code Reviewer לפני כל Commit
- ביטחון מלא ב-Undo — שימוש ב-git, ב-/rewind, וב-Checkpoints כרשת ביטחון
- עריכת קבצי תוכן (Markdown, CSV, HTML, JSON) — לא רק קוד
- תוכלו לבחור בין Edit ל-Write בכל מצב — ולהסביר למה (כלל ה-80%)
- תוכלו לבצע שינויים מתואמים בכמה קבצים ב-turn אחד בלי לשבור תלויות
- תוכלו לקרוא Diff, לזהות שינויים לא מכוונים, ולאשר בביטחון
- תוכלו להשתמש ב-Claude כ-Code Reviewer ולהריץ לולאת Review → Fix → Commit
- תוכלו לבטל כל שינוי עם 4 מנגנוני Undo שונים (git, Checkpoint, /rewind, מילולי)
- פרקים קודמים: פרק 4 (יסודות פרומפטינג), פרק 5 (ניווט וחיפוש) — חובה
- כלים נדרשים: Claude Code מותקן ועובד, חשבון Anthropic פעיל, git מותקן, פרויקט עם קבצים לתרגול
- זמן משוער לפרק: 75-100 דקות (כולל תרגילים)
בפרק 5 בניתם את כישורי הניווט שלכם — שליטה ב-6 כלי חיפוש, Codebase Tour, ואסטרטגיות לפרויקטים גדולים. בפרק הזה תוסיפו את כלי העריכה — Edit לשינויים כירורגיים, Write ליצירת קבצים, ו-Code Review כהרגל יומיומי. בפרק 7 תחברו את הכול ל-VS Code ותקבלו ממשק גרפי מלא עם Diff View, היסטוריית שיחות, ו-@mention לקבצים.
כלי Edit — דיוק כירורגי
הכלי Edit הוא הכלי המרכזי של Claude Code לשינוי קבצים קיימים. חשבו עליו ככירורג — הוא משנה בדיוק מה שצריך ולא נוגע בשום דבר אחר. שום רווח לא זז, שום הזחה לא משתנה, שום encoding לא נשבר. רק המילים שביקשתם להחליף — מוחלפות.
איך זה עובד מאחורי הקלעים? Edit מקבל שני פרמטרים:
- old_string — הטקסט המדויק שצריך להחליף. חייב להיות ייחודי בקובץ
- new_string — הטקסט שיחליף אותו
זהו. פשוט ואלגנטי. Claude מוצא את הטקסט המדויק בקובץ, מחליף אותו, ומשאיר את כל השאר בדיוק כפי שהיה. הפורמטינג, ההזחה (Indentation), הרווחים, ה-Encoding — הכול נשמר. זו הסיבה שזה הכלי המועדף תמיד לשינויים בקבצים קיימים.
נניח שיש לכם קובץ utils.py עם שגיאה בחישוב מע"מ:
# הקוד הנוכחי (עם הבאג):
def calculate_price(base_price):
vat = base_price * 0.17 # שגוי — צריך 0.18 מ-2025
return base_price + vat
אתם אומרים ל-Claude: "תקן את שיעור המע"מ ב-utils.py ל-18%"
Claude משתמש ב-Edit:
old_string: "vat = base_price * 0.17 # שגוי — צריך 0.18 מ-2025"
new_string: "vat = base_price * 0.18 # מע\"מ 18% — מעודכן 2025"
רק שורה אחת השתנתה. שם הפונקציה, ה-return, כל השאר — לא נגעו.
הכלל הקריטי: ייחודיות (Uniqueness)
אם ה-old_string מופיע יותר מפעם אחת בקובץ — Edit ייכשל ויבקש הקשר נוסף. זו לא באג, זו תכונת בטיחות. אם הטקסט לא ייחודי, Claude לא יכול לדעת איזו מופע אתם רוצים לשנות.
הפתרון: תנו יותר הקשר. במקום להחליף רק return True (שיכול להופיע 5 פעמים בקובץ), תנו שורות נוספות סביב:
# במקום זה (לא ייחודי):
old_string: "return True"
# תנו הקשר (ייחודי):
old_string: "def validate_email(email):\n if '@' in email:\n return True"
עכשיו Edit יודע בדיוק על איזה return True מדובר.
replace_all — שינוי כל המופעים
לפעמים אתם דווקא כן רוצים לשנות את כל המופעים. שינוי שם משתנה, שינוי שם CSS class, החלפת URL ישן בחדש — כאן נכנס הפרמטר replace_all: true.
אתם אומרים: "שנה את שם המשתנה מ-userName ל-currentUser בכל הקובץ"
Edit:
old_string: "userName"
new_string: "currentUser"
replace_all: true
כל מופע של userName בקובץ מוחלף ל-currentUser — בהצהרה, בשימוש, בתנאים, בכל מקום.
אם שם המשתנה שלכם הוא חלק ממילה אחרת, replace_all עלול ליצור בעיות. למשל, שינוי של name ל-fullName עם replace_all יחליף גם username ל-userfullName. Claude בדרך כלל מודע לזה ויוסיף הקשר מתאים, אבל תמיד כדאי לבדוק את ה-Diff.
Edit להוספת קוד חדש
Edit לא רק מחליף טקסט — הוא גם מוסיף טקסט. כשאתם רוצים להוסיף פונקציה חדשה, import חדש, או שורת קוד חדשה — Edit עדיין הכלי הנכון. ה-old_string מגדיר את המיקום (הטקסט שאחריו או לפניו צריך להוסיף), וה-new_string כולל גם את הטקסט הישן וגם את החדש.
# הקוד הנוכחי:
import os
import sys
# אתם אומרים: "הוסף import json"
# Claude עושה Edit:
old_string: "import os\nimport sys"
new_string: "import os\nimport sys\nimport json"
שורה אחת נוספה. שום דבר אחר לא השתנה. ההזחה מושלמת, הסדר הגיוני.
# אתם אומרים: "הוסף פונקציה validate_phone אחרי validate_email"
# Claude מוצא את סוף הפונקציה הקיימת ומוסיף את החדשה:
old_string: "def validate_email(email):\n return '@' in email"
new_string: "def validate_email(email):\n return '@' in email\n\n\ndef validate_phone(phone):\n return len(phone) == 10 and phone.isdigit()"
Edit לתיקון Indentation ופורמטינג
אחד השימושים הנפוצים ב-Edit שלא חושבים עליו: תיקון הזחה שבורה. אם קוד מעובד ב-IDE אחד ונשבר ב-IDE אחר, או אם מישהו ערבב tabs ו-spaces — Claude יכול לתקן את זה בדיוק:
"תקן את ההזחה בפונקציה calculate_total — היא משתמשת ב-tabs במקום spaces"
Claude ישתמש ב-Edit כדי להחליף את ה-tabs ב-spaces (או להפך) רק בפונקציה הספציפית הזו, בלי לגעת בשאר הקובץ. זה שימוש קטן אבל חוסך המון תסכול.
הרוב המוחלט של השינויים בקבצים קיימים נעשים עם Edit. זה הכלי שתשתמשו בו הכי הרבה — למדו אותו היטב. רק במיעוט קטן של מקרים (קובץ חדש מאפס או שכתוב מלא של 80%+) תצטרכו את Write.
אישור עריכות — Shift+Tab
כשClaude מציג לכם Edit ומבקש אישור, אתם יכולים ללחוץ Shift+Tab כדי לאשר את העריכה מהר. זה קיצור הדרך ברירת המחדל עבור acceptEdits ב-Claude Code, ואפשר לשנות אותו דרך קובץ ~/.claude/keybindings.json. אם אתם אוהבים לעבוד מהר ולאשר הרבה עריכות ברצף — Shift+Tab חוסך לחיצות.
פתחו פרויקט כלשהו ב-Claude Code (או צרו קובץ חדש עם Write). בקשו מ-Claude לבצע שינוי קטן עם Edit: "שנה את הפורט מ-3000 ל-8080 בקובץ הקונפיגורציה". שימו לב ל-Diff שמוצג — הטקסט הישן ← הטקסט החדש. נסו לאשר עם Shift+Tab במקום עם Enter. זה העיקרון: אתם רואים בדיוק מה משתנה לפני שאתם מאשרים.
כלי Write — יצירת קבצים חדשים
אם Edit הוא הכירורג, אז Write הוא האדריכל — הוא יוצר דברים חדשים מאפס. כלי Write יוצר קובץ חדש או מחליף לגמרי קובץ קיים. אין כאן עריכה חלקית — זו כתיבה מלאה מההתחלה ועד הסוף.
מתי משתמשים ב-Write?
- קובץ חדש: יצירת קומפוננטה, סקריפט, קובץ קונפיגורציה, דוח, תבנית — כל דבר שלא קיים עדיין
- שכתוב מלא: כשצריך לשנות 80% ומעלה מהקובץ, שכתוב מלא יעיל יותר מ-10 פעולות Edit נפרדות
מנגנון בטיחות מובנה
Write כולל מנגנון בטיחות חשוב: Claude חייב לקרוא (Read) קובץ קיים לפני שהוא מחליף אותו עם Write. זה מונע מצב שבו Claude מחליף קובץ שהוא לא מכיר ומאבד תוכן חשוב. אם Claude ינסה לעשות Write על קובץ קיים בלי שקרא אותו קודם — הפעולה תיכשל.
כשאתם מבקשים ליצור קובץ חדש, Write מציג את כל התוכן של הקובץ לפני שהוא כותב — אתם רואים בדיוק מה ייכתב ויכולים לאשר או לדחות.
אתם אומרים: "צור סקריפט Python שמקבל רשימת URL-ים מקובץ CSV ובודק את סטטוס ה-HTTP של כל אחד"
Claude משתמש ב-Write כדי ליצור check_urls.py מאפס — קובץ שלם עם imports, פונקציות, error handling, ותיעוד. אתם רואים את כל הקוד לפני שהוא נכתב לדיסק.
אם אתם אומרים ל-Claude "צור קומפוננטה חדשה" ← Write. אם אתם אומרים "שנה את הקומפוננטה" ← Edit. הפועל שאתם בוחרים בפרומפט עוזר ל-Claude לבחור את הכלי הנכון. "צור", "בנה", "כתוב מאפס" → Write. "שנה", "תקן", "עדכן", "הוסף ל-" → Edit.
Write לסוגי קבצים שונים
Write עובד עם כל סוג קובץ טקסטואלי. הנה כמה שימושים נפוצים:
| סוג קובץ | דוגמת פרומפט | מה Claude יוצר |
|---|---|---|
| Python Script | "צור סקריפט שקורא Excel ויוצר PDF" | קובץ .py מלא עם imports, פונקציות, error handling |
| HTML Page | "צור דף נחיתה עם טופס יצירת קשר" | קובץ .html מלא עם CSS inline וטופס |
| Config File | "צור Docker Compose עם Node.js ו-PostgreSQL" | docker-compose.yml מלא עם services, volumes, networks |
| Test File | "צור טסטים ל-UserService" | קובץ test מלא עם setup, cases, teardown |
| Shell Script | "צור סקריפט deploy שבונה ומעלה לפרודקשן" | קובץ .sh עם בדיקות, build steps, deploy |
אם יש קובץ קיים באותו שם, Write מחליף אותו לגמרי. לכן Claude חייב לקרוא (Read) את הקובץ קודם — כדי שתוכלו לראות מה תאבדו. אם אתם רוצים רק לשנות חלק מהקובץ — השתמשו ב-Edit. אם אתם רוצים לשכתב הכול — Write.
בקשו מ-Claude: "צור קובץ README.md חדש לפרויקט שלי עם שם הפרויקט, תיאור קצר, והוראות התקנה". שימו לב שהכלי שנבחר הוא Write (כי הקובץ לא קיים), ושאתם רואים את כל התוכן לפני שהוא נכתב.
Edit מול Write — מטריצת ההחלטה
Claude בדרך כלל בוחר את הכלי הנכון לבד. אבל כשאתם רוצים לכוון אותו, או כשאתם סוקרים מה הוא עשה, חשוב להבין את ההיגיון:
| תרחיש | כלי | למה |
|---|---|---|
| תיקון שגיאת כתיב (Typo) | Edit | שינוי אחד, קטן ומדויק |
| הוספת פונקציה לקובץ קיים | Edit | מוסיפים טקסט חדש, שאר הקובץ לא משתנה |
| שינוי שם משתנה בכל הקובץ | Edit (replace_all) | מחליפים כל מופע, שאר הקובץ שלם |
| עדכון ערך בקובץ Config | Edit | שינוי ממוקד, שורה אחת או שתיים |
| יצירת קובץ חדש לגמרי | Write | אין קובץ קיים — חייבים Write |
| שכתוב מלא של קובץ (80%+) | Write | יותר יעיל מ-10 פעולות Edit נפרדות |
| יצירת דוח, תוכנית עבודה, תבנית | Write | תוכן חדש מאפס |
אם יותר מ-80% מהקובץ משתנה — השתמשו ב-Write לשכתוב מלא. אם פחות מ-80% — השתמשו ב-Edit לשינויים ממוקדים. ברוב המקרים (95%+), Edit הוא הכלי הנכון לקבצים קיימים.
אל תמחקו קובץ ותיצרו אותו מחדש כדי לעשות שינויים קטנים. זה מבטל את היסטוריית ה-git, מקשה על Code Review, ועלול לגרום לאובדן מידע. Edit קיים בדיוק בשביל זה — שינויים ממוקדים בלי לגעת בשאר.
למה Edit תמיד עדיף לקבצים קיימים?
יש כמה סיבות עמוקות למה Edit הוא הכלי המועדף כשהקובץ קיים:
- שקיפות: ב-Edit, אתם רואים בדיוק מה השתנה — old → new. ב-Write, אתם צריכים להשוות את כל הקובץ החדש לישן כדי להבין מה שונה.
- בטיחות: Edit לא יכול למחוק קוד שלא ביקשתם למחוק. Write מחליף הכול — אם Claude שכח לכלול פונקציה שהייתה בקובץ, היא נעלמה.
- היסטוריית Git: Edit יוצר Diff נקי ב-git שמראה בדיוק מה השתנה. Write מסמן את כל הקובץ כשינוי, גם שורות שלא השתנו.
- Code Review: ל-Reviewer קל הרבה יותר לסקור שינוי של 5 שורות (Edit) מאשר שכתוב מלא של 200 שורות (Write).
תרגלו את שני הכלים ברצף:
- Write: בקשו מ-Claude ליצור קובץ חדש —
"צור קובץ config.json עם הגדרות פורט, שם אפליקציה, וסביבת ריצה" - Edit #1:
"שנה את הפורט ל-9090"— שימו לב שרק שורה אחת משתנה - Edit #2:
"הוסף הגדרת database_url"— שימו לב שנוסף טקסט, שום דבר לא נמחק - Edit #3:
"שנה את סביבת הריצה מ-development ל-production"— שינוי ערך בודד
בכל שלב, הסתכלו על ה-Diff. שלושה שינויי Edit, כל אחד שינה בדיוק מה שנדרש — ושום דבר אחר.
עריכה רב-קובצית — שינויים מתואמים
אחד היתרונות הכי חזקים של Claude Code הוא היכולת לערוך מספר קבצים ב-turn אחד. אתם מתארים את השינוי שאתם רוצים, ו-Claude מבין אילו קבצים צריכים להשתנות ומעדכן את כולם בצורה מתואמת.
אתם אומרים: "הוסף שדה status לטבלת Orders — עדכן את המודל, ה-API, הטופס בצד הלקוח, והטסטים"
Claude יבצע את הפעולות הבאות ב-turn אחד:
- Read — קורא את כל הקבצים הרלוונטיים (models.py, api.py, OrderForm.tsx, test_orders.py)
- Plan — מתכנן אילו שינויים הולכים לאיפה
- Edit #1 — מוסיף את השדה למודל (models.py)
- Edit #2 — מוסיף את השדה ל-API endpoint (api.py)
- Edit #3 — מוסיף dropdown לטופס (OrderForm.tsx)
- Edit #4 — מוסיף טסטים לשדה החדש (test_orders.py)
4 קבצים, שינוי אחד מתואם. Claude עוקב אחרי תלויות — אם שם השדה במודל הוא order_status, הוא ישתמש באותו שם גם ב-API, גם בטופס, וגם בטסטים.
שינויים גדולים: עבדו בשלבים
לשינויים רב-קובציים גדולים (10+ קבצים), כדאי לעבוד בשלבים במקום לבקש הכול ב-turn אחד:
תכנון — השתמשו ב-Plan Mode
לפני שמתחילים לערוך, הפעילו Plan Mode (Shift+Tab פעמיים או /plan) ובקשו: "תכנן איך להוסיף את שדה הסטטוס בכל השכבות". סקרו את התוכנית, אשרו, ורק אז Claude מתחיל לבצע.
שכבה ראשונה — Backend
"עדכן את המודל וה-API" → ודאו שזה עובד → הריצו טסטים
שכבה שנייה — Frontend
"עכשיו עדכן את הטופס וה-UI" → ודאו שזה עובד → בדקו בדפדפן
שכבה שלישית — Tests
"עכשיו עדכן את הטסטים" → הריצו → ודאו שהכול עובר
כשמשנים חתימת פונקציה (Function Signature) — למשל, מוסיפים פרמטר — Claude לא רק משנה את ההגדרה. הוא מוצא ומעדכן גם את כל הקריאות לפונקציה הזו בכל הקבצים. זה חוסך שעות של חיפוש ידני.
דפוסים נפוצים של עריכה רב-קובצית
הנה התרחישים הנפוצים ביותר שבהם תבצעו שינויים בכמה קבצים:
"הוסף שדה 'תאריך יצירה' למודל הלקוח"
Claude יעדכן: Database Schema → Model/ORM → API Endpoint → Frontend Form → Validation → Tests.
"שנה את שם הפונקציה מ-fetchData ל-loadUserData בכל הפרויקט"
Claude ימצא את כל ההגדרות והקריאות בכל הקבצים ויחליף בעקביות. הוא יודע להבדיל בין fetchData (שצריך לשנות) ל-fetchDataById (שלא).
"עדכן את React ל-19 ותקן את כל השימושים הדפרקטיים"
Claude יעדכן את package.json ואז יעבור על כל הקבצים שמשתמשים ב-APIs שהשתנו בגרסה החדשה.
"הוסף Feature Flag ל-dark mode — שיהיה אפשר להפעיל ולכבות"
Claude יוסיף את ה-flag לקונפיגורציה, יעטוף את הקוד הרלוונטי בתנאי, ויוסיף Toggle ב-UI.
נסו שינוי רב-קובצי פשוט: בקשו מ-Claude "שנה את שם הפרויקט מ-MyApp ל-SuperApp בכל הקבצים — package.json, README.md, ו-index.html". צפו בו קורא כל קובץ, מבצע Edit בכל אחד, ומוודא עקביות.
Codebase קיים מול פרויקט חדש (Greenfield)
הגישה שלכם לעריכה צריכה להשתנות בהתאם למצב: האם אתם עובדים על קוד קיים שמישהו אחר כתב, או בונים פרויקט חדש מאפס?
Codebase קיים — גישה שמרנית
כשנכנסים לקוד שמישהו אחר כתב (Legacy Code, קוד של קולגה, או פרויקט Open Source), הגישה היא להבין קודם, לשנות אחר כך:
הבינו את המבנה
"תסביר איך המודול הזה עובד" — תנו ל-Claude לקרוא ולהסביר לפני שמתחילים לשנות.
התאימו לקונבנציות קיימות
"עקוב אחרי הדפוס שכבר קיים ב-handlers האחרים" — אל תמציאו סגנון חדש, התאימו למה שכבר יש.
היו שמרניים
"שנה רק מה שצריך כדי לתקן את הבאג, אל תעשה Refactoring" — הנטייה הטבעית של Claude (ושל מתכנתים) היא לשפר גם את מה שמסביב. בקוד קיים, עדיף להתמקד רק במה שנדרש.
בדקו אחרי כל שינוי
הריצו טסטים, בדקו שלא שברתם דברים. בקוד ישן, שינוי קטן יכול לגרום ל-Side Effects בלתי צפויים.
Greenfield — פרויקט חדש מאפס
כשבונים פרויקט חדש, הגישה יצירתית יותר:
הגדירו מבנה מראש
"צור פרויקט עם מבנה התיקיות הבא: src/, tests/, config/, docs/" — Claude בונה את השלד.
הגדירו קונבנציות ב-CLAUDE.md
בתחילת הפרויקט, כתבו ב-CLAUDE.md את הסגנון הרצוי. הנה דוגמה:
# Project: E-Commerce API
## Stack
- TypeScript (strict mode)
- Express.js
- PostgreSQL with Prisma ORM
- Jest for testing
## Conventions
- Use Repository Pattern for data access
- All functions must have JSDoc comments
- Error handling: always return proper HTTP status codes
- File naming: kebab-case (user-service.ts)
- Keep functions under 30 lines
## Testing
- Every new endpoint needs at least 3 tests: happy path, validation error, not found
- Use fixtures for test data, not inline objects
בנו בהדרגה
שלד → לוגיקה מרכזית → טסטים → ליטוש. לא הכול ב-turn אחד. כל שלב נבדק לפני שעוברים לבא.
| גישה | Codebase קיים | Greenfield (פרויקט חדש) |
|---|---|---|
| שלב ראשון | הבנה (Explain) | הגדרת מבנה (Plan) |
| סגנון עריכה | שמרני — Edit בלבד | יצירתי — Write + Edit |
| טסטים | אחרי כל שינוי | נבנים במקביל לקוד |
| הנחיה ל-Claude | "התאם לדפוסים הקיימים" | "השתמש ב-Best Practices של X" |
ב-Greenfield, השקיעו 5 דקות בכתיבת CLAUDE.md בהתחלה — הגדירו Stack, קונבנציות, ודפוסי קוד מועדפים. זו השקעה שמחזירה את עצמה עשרות מונים: Claude יעקוב אחרי ההנחיות שלכם בכל סשן, בכל קובץ, בכל שינוי. פרויקט בלי CLAUDE.md הוא כמו צוות בלי Coding Standards — כל אחד עושה מה שבא לו.
כשClaude עובד על Codebase קיים, הוא לפעמים מתפתה לשפר קוד שלא ביקשתם לשפר — משנה שמות משתנים, מוסיף Type Hints, מפצל פונקציות. זה מגיע מכוונות טובות, אבל בקוד קיים זה מסוכן: שינויים "קטנים" יכולים לשבור דברים. אם אתם רואים שינויים שלא ביקשתם ב-Diff — עצרו ובקשו "שנה רק מה שביקשתי, בלי Refactoring נוסף". זה עובד — Claude מכבד את הגבולות שאתם שמים.
אתם מקבלים פרויקט קיים וצריכים לתקן באג. במקום לקפוץ ישר לתיקון:
- פרומפט 1: "תסביר את מבנה הפרויקט — מה כל תיקייה ומה הקבצים העיקריים"
- פרומפט 2: "תסביר איך עובד ה-authentication flow — מהלוגין ועד ה-session"
- פרומפט 3: "עכשיו, תקן את הבאג ב-login — הוא מחזיר 500 כשהסיסמה ריקה. שנה רק מה שצריך."
שלושה שלבים: הבנה → הבנה מעמיקה → תיקון ממוקד. זו הגישה הנכונה.
פתחו פרויקט קיים שלכם (או כל פרויקט Open Source). בקשו מ-Claude: "תסביר את המבנה של הפרויקט הזה — מהם הקבצים העיקריים ומה כל אחד עושה?". זה השלב הראשון לפני כל עריכה בקוד קיים — הבנה.
הבנה וסקירת Diffs
Diff (קיצור של Difference) הוא הצגת ההבדלים בין שתי גרסאות של קובץ. כל פעם ש-Claude מבצע Edit, אתם רואים Diff שמראה בדיוק מה הוסר ומה נוסף. זה אחד הכלים הכי חשובים שלכם — לא לאשר שינוי בלי לקרוא את ה-Diff.
איך קוראים Diff
- const PORT = 3000; ← שורה שהוסרה (ישנה)
+ const PORT = 8080; ← שורה שנוספה (חדשה)
const HOST = '0.0.0.0'; ← שורה ללא שינוי (הקשר)
שורות עם - (בדרך כלל באדום) = הוסרו. שורות עם + (בדרך כלל בירוק) = נוספו. שורות ללא סימן = לא השתנו, מוצגות רק בשביל הקשר.
ב-Claude Code, כל פעולת Edit מציגה Diff בפורמט נוח — אתם רואים את הטקסט הישן ואת הטקסט החדש, אחד לצד השני (או אחד מתחת לשני). זה מאפשר לכם לאשר או לדחות כל שינוי.
Diffs מרובי שינויים
כשClaude מבצע כמה שינויים בקובץ, כל Edit מראה Diff נפרד. אבל לפעמים תרצו לראות את כל השינויים יחד — את התמונה הגדולה. כאן נכנס git diff:
אחרי שClaude ביצע כמה עריכות, בקשו:
"הראה לי את ה-git diff של כל מה ששינית"
Claude יריץ git diff ויציג את כל השינויים שעדיין לא עשיתם להם commit — בכל הקבצים, בפורמט diff סטנדרטי. זה מאפשר סקירה כוללת לפני שעושים commit.
ביקשו סיכום של שינויים גדולים
אם Claude ביצע הרבה שינויים ואתם רוצים סיכום מהיר במקום לקרוא כל שורה:
"סכם מה שינית ולמה"
Claude ייתן סקירה ברמה גבוהה: אילו קבצים השתנו, מה השתנה בכל אחד, ולמה. זה מושלם לשינויים גדולים שבהם ה-Diff המלא ארוך מדי לקריאה.
מה לחפש כשקוראים Diff
כשאתם מסתכלים על Diff שClaude ביצע, חפשו את הדברים הבאים:
- האם רק מה שביקשתם השתנה? אם ביקשתם לשנות פורט ו-Claude גם שינה את שם המשתנה — זה יותר ממה שרציתם. בקשו לחזור.
- האם יש שינויים "שקופים"? לפעמים Claude מוסיף שורה ריקה, משנה הזחה, או מוסיף comment שלא ביקשתם. בדקו.
- האם ההיגיון נשמר? אם שינוי של שורה אחת שבר את הלוגיקה של הבלוק — ה-Diff יראה לכם את זה.
- האם אין מידע רגיש? לפעמים Claude כותב API Key, password, או secret בקוד. ה-Diff הוא ההזדמנות לתפוס את זה לפני commit.
גם כשאתם סומכים על Claude — תמיד קראו את ה-Diff. זה כמו לקרוא חוזה לפני חתימה. לוקח 10 שניות, חוסך שעות. גם ה-Claude הכי טוב יכול לטעות — ואתם רשת הביטחון האחרונה.
Diff בפורמט Git — הפורמט שתראו הכי הרבה
כשאתם מריצים git diff או כשClaude מראה לכם את השינויים, הפורמט נראה כך:
diff --git a/config.json b/config.json
--- a/config.json ← הגרסה הישנה
+++ b/config.json ← הגרסה החדשה
@@ -3,7 +3,7 @@ ← מיקום השינוי (שורה 3, 7 שורות)
"name": "my-app",
- "port": 3000, ← הוסר
+ "port": 8080, ← נוסף
"host": "0.0.0.0"
השורה @@ מציינת את המיקום בקובץ. אחריה באות שורות ההקשר (ללא סימון), שורות שהוסרו (-), ושורות שנוספו (+).
בקשו מ-Claude לבצע שינוי כלשהו בקובץ. אחרי שהשינוי בוצע, בקשו: "הראה לי את ה-diff של מה ששינית". תרגלו לקרוא את הפורמט: שורות - (אדום, הוסרו) ושורות + (ירוק, נוספו). הרגל הזה יחסוך לכם באגים.
פתרון Merge Conflicts
Merge Conflict (קונפליקט מיזוג) קורה כש-git לא מצליח למזג שני שינויים אוטומטית — בדרך כלל כשאתם ומישהו אחר (או branch אחר) שיניתם את אותן שורות באותו קובץ. התוצאה היא קובץ עם סימני קונפליקט שנראים ככה:
<<<<<<< HEAD
const API_URL = "https://api.myapp.com/v2";
=======
const API_URL = "https://staging.myapp.com/v1";
>>>>>>> feature-branch
הקטע מעל ======= הוא מה שיש ב-branch שלכם (HEAD). הקטע מתחת הוא מה שיש ב-branch השני. אתם צריכים להחליט מה לשמור.
Claude Code מצוין בפתרון קונפליקטים כי הוא יכול להבין את הכוונה מאחורי כל צד ולעזור לכם להחליט. הנה התהליך:
שלב 1: הבינו את שני הצדדים
בקשו מ-Claude: "הסבר את הקונפליקט ב-config.js — מה שינה כל צד ולמה?"
Claude יקרא את הקובץ, יזהה את סימני הקונפליקט, ויסביר: "ב-HEAD שיניתם ל-API v2 בפרודקשן. ב-feature-branch שיניתם ל-staging v1 לבדיקות."
שלב 2: החליטו והנחו
"פתור את הקונפליקט — שמור את ה-URL של v2 בפרודקשן"
Claude ישתמש ב-Edit כדי להסיר את סימני הקונפליקט ולשמור את הגרסה הנכונה.
שלב 3: ודאו
אחרי הפתרון, הריצו git diff כדי לוודא שהתוצאה נכונה. שסימני הקונפליקט נעלמו לגמרי ושנשאר הקוד הנכון.
לקונפליקטים מורכבים (קובץ עם 5+ קונפליקטים), בקשו מ-Claude קודם: "הראה לי את כל הקונפליקטים בקובץ הזה בטבלה — מיקום, צד HEAD, צד branch, המלצה". סקרו את הטבלה, תנו הוראות ספציפיות לכל אחד, ורק אז תנו ל-Claude לפתור.
טיפים לפתרון קונפליקטים יעיל
- היו ספציפיים: במקום "פתור את הקונפליקט", אמרו "פתור את הקונפליקט — שמור את הגרסה שלנו לכל מה שקשור לסגנון, ואת הגרסה שלהם לכל מה שקשור ללוגיקה"
- בקשו הסבר קודם: "הסבר את כל הקונפליקטים בקובץ לפני שאתה פותר" — ככה אתם מבינים מה קורה לפני שמחליטים
- ודאו אחרי: אחרי פתרון, תמיד הריצו
git diffובדקו שסימני הקונפליקט (<<<<<<<,=======,>>>>>>>) באמת נעלמו - הריצו טסטים: קונפליקטים שנפתרו לא בהכרח קוד שעובד. הריצו את ה-test suite כדי לוודא
אתם עובדים על branch feature-payments ומישהו ב-main שינה את מבנה ה-config. בעת ה-merge יש 3 קונפליקטים. במקום לפתור ידנית:
- פרומפט 1: "הראה לי את כל הקונפליקטים בטבלה — מיקום, הגרסה שלנו, הגרסה שלהם, המלצה"
- Claude מנתח: "קונפליקט 1: שדה port — שלכם 8080, שלהם 3000. המלצה: שמרו 8080 (שלכם). קונפליקט 2: שדה database_url — שלכם PostgreSQL, שלהם SQLite. המלצה: שמרו PostgreSQL (שלכם). קונפליקט 3: שדה log_level — שלכם debug, שלהם info. המלצה: השתמשו ב-info (שלהם) כי זה production."
- פרומפט 2: "מקובל. פתור את כל הקונפליקטים לפי ההמלצות שלך."
Claude פותר את שלושת הקונפליקטים בזה אחר זה עם Edit — מסיר את סימני הקונפליקט ושומר את הגרסה הנכונה בכל מקום. סך הכול: דקה אחת במקום 15 דקות של פתרון ידני.
צרו קונפליקט בתרגול: (1) צרו branch חדש: git checkout -b test-conflict, (2) שנו שורה בקובץ ועשו commit, (3) חזרו ל-main: git checkout main ושנו את אותה שורה לערך אחר ועשו commit, (4) נסו למזג: git merge test-conflict. עכשיו בקשו מ-Claude: "הסבר את הקונפליקט ופתור אותו — שמור את הגרסה שלי מ-main". צפו בו מסביר ופותר.
Code Review — Claude כסוקר הקוד שלכם
Code Review (סקירת קוד) הוא תהליך שבו מישהו אחר בודק את הקוד שלכם לפני שהוא נכנס לפרודקשן. ב-2026, Claude הוא ה-Reviewer הכי סבלני, הכי זמין, והכי מקיף שיש — הוא עובד 24/7, לא מקפיד אישית, ובודק ממש הכול.
סוגי Review
יש כמה סוגי סקירה שאפשר לבקש מ-Claude:
| סוג Review | מה לבקש | מה מקבלים |
|---|---|---|
| סקירה מקיפה | "סקור את הקובץ הזה — באגים, אבטחה, ביצועים" | רשימה מפורטת של כל הבעיות שנמצאו |
| בדיקת Best Practices | "השווה את המימוש שלי ל-Best Practices של React" | איפה אני חורג ומה לתקן |
| בדיקת פישוט | "יש דרך פשוטה יותר לעשות מה שהפונקציה עושה?" | גרסה פשוטה יותר (אם קיימת) |
| סקירת Diff לפני Commit | "סקור את השינויים ב-git diff ותגיד אם משהו נראה לא בסדר" | בעיות בשינויים הספציפיים האלה |
ה-Review Checklist
כש-Claude עושה סקירה מקיפה, הוא בודק לפי הסדר הבא:
- Bugs — שגיאות לוגיות, null checks חסרים, off-by-one errors
- Security — SQL Injection, XSS, סודות חשופים, הרשאות חסרות
- Performance — queries כבדים, loops מיותרים, memory leaks
- Readability — שמות משתנים, תיעוד, מורכבות מיותרת
- Edge Cases — מה קורה עם input ריק? עם null? עם מספר שלילי?
- Tests — יש כיסוי? האם הטסטים בודקים את מה שחשוב?
לפני כל commit, בקשו מ-Claude: "סקור את השינויים ב-git diff". זה לוקח 30 שניות ותופס באגים שתגלו רק בפרודקשן. עלות: כמה סנטים. חיסכון: שעות של דיבאגינג.
Review של תוכן — לא רק קוד
Claude יכול לסקור גם תוכן שאינו קוד:
- פוסט בלוג: "סקור את הפוסט הזה — דקדוק, בהירות, SEO"
- מייל שיווקי: "סקור את המייל — Subject Line, CTA, ברור מה הצעד הבא?"
- תיעוד API: "סקור את ה-README — מובן למפתח חדש? מכסה את כל ה-endpoints?"
- הצעת מחיר: "סקור את ההצעה — מחירים הגיוניים? התנאים ברורים? יש CTA?"
- מצגת: "סקור את הסליידים — המסר ברור? יש יותר מדי טקסט?"
סיימתם לעבוד על פיצ'ר. הנה הזרימה:
- סקירה: "סקור את ה-git diff — חפש באגים, בעיות אבטחה, וקוד שאפשר לפשט"
- Claude מוצא: "שורה 42: חסר null check ב-userId. שורה 78: ה-API key חשוף כ-hardcoded string."
- תיקון: "תקן את שתי הבעיות" → Claude מבצע 2 פעולות Edit
- סקירה שנייה: "סקור שוב — התיקונים יצרו בעיות חדשות?"
- Claude: "הכול תקין. Ready to commit."
- Commit:
git add . && git commit -m "Add user validation and secure API key"
שלוש דקות. שני באגים נתפסו לפני שהגיעו לפרודקשן. זה הכוח של הלולאה.
פרומפטים מומלצים ל-Code Review
"סקור את הקובץ auth.py. חפש: (1) באגים ובעיות לוגיות, (2) פרצות אבטחה — SQL Injection, XSS, סודות חשופים, (3) בעיות ביצועים — queries כבדים, loops מיותרים, (4) קוד שאפשר לפשט. דרג כל ממצא: קריטי / חשוב / נחמד לתקן."
"הרץ git diff ובדוק את כל השינויים. חפש: טעויות, שינויים לא מכוונים, מידע רגיש שנחשף, ובדוק שכל השינויים עקביים זה עם זה. אם הכול תקין — אמור 'Ready to commit'. אם לא — פרט מה צריך לתקן."
"בדוק את הפונקציה processOrder. מה קורה אם: (1) הסכום הוא 0? (2) הכמות שלילית? (3) ה-userId הוא null? (4) ה-array ריק? (5) יש duplicate entries? ספר לי אילו מקרים לא מכוסים."
Claude Code כולל שתי פקודות מובנות לסקירת קוד:
/review— סקירת קוד מיוחדת עם תחומי התמקדות מותאמים אישית. מנתחת את השינויים האחרונים ומוצאת בעיות./simplify— סקירה אוטומטית שמפעילה 3 סוכנים במקביל (Parallel Agents) שבודקים שימוש חוזר בקוד, איכות, ויעילות — ומתקנת בעיות אוטומטית. הוצגה בפברואר 2026.
ההבדל: /review נותנת לכם דוח ואתם מחליטים מה לתקן. /simplify מתקנת אוטומטית — שימושית כשאתם סומכים על Claude ורוצים לנקות קוד מהר.
פתחו קובץ קוד כלשהו שלכם ובקשו מ-Claude: "סקור את הקובץ הזה — מצא באגים, בעיות אבטחה, ובעיות ביצועים". קראו את ממצאי ה-Review. אם Claude מצא בעיות — בקשו ממנו לתקן אותן (Edit). ככה עובד הלופ: Review → Fix → Review שוב.
עקרון הפשטות — Keep It Simple
Claude הוא מתכנת מצוין. אבל בדיוק בגלל זה, לפעמים הוא מייצר פתרונות מורכבים מדי — שכבות אבסטרקציה, Design Patterns, ומודולים שלא באמת צריך. הוא לא עושה את זה מתוך רוע — הוא פשוט מנסה לכתוב קוד "נכון" לפי הספר. אבל קוד "נכון" לפי הספר ≠ קוד שמתאים לצרכים שלכם.
שלוש מילים שחוסכות שעות של Over-Engineering. השתמשו בהן בחופשיות. כש-Claude מציע ארכיטקטורה מורכבת של Factory Pattern עם Dependency Injection לסקריפט של 50 שורות — אתם יכולים ואתם צריכים לומר "לא, תשמור על זה פשוט."
ביטויי קסם לפשטות
- "Keep it simple" — ההנחיה הכי ישירה. Claude יפשט.
- "No over-engineering" — מונע שכבות מיותרות.
- "Straightforward approach only" — גישה ישרה, בלי עקיפות.
- "This doesn't need to be production-quality, just functional and readable" — לסקריפטים חד-פעמיים.
- "Is there a simpler way to achieve the same thing?" — שאלו את זה אחרי כל פתרון מורכב.
"תקציב מורכבות" — Complexity Budget
לפני שמאשרים פתרון, שאלו את עצמכם: "האם המורכבות הזו פרופורציונלית לבעיה?" תיקון של 5 שורות לא צריך Refactoring של 50 שורות. סקריפט שרץ פעם ביום לא צריך ארכיטקטורת Microservices. טופס עם 3 שדות לא צריך State Management מורכב.
המשימה: "צור סקריפט שקורא CSV ושולח את השורות כמייל"
פתרון מורכב מדי (Over-Engineered): Class hierarchy עם CSVReader, EmailSender, DataTransformer, RetryPolicy, ConfigManager, Logger — 200 שורות ב-5 קבצים.
פתרון פשוט ונכון: פונקציה אחת שקוראת CSV עם pandas, לולאה שמרכיבה מייל, ושולחת. 40 שורות, קובץ אחד, עובד.
מה לומר ל-Claude: "צור סקריפט פשוט — קובץ אחד, ללא classes, גישה פונקציונלית ישירה. זה סקריפט שירוץ פעם ביום."
סימנים שהפתרון מורכב מדי
איך תזהו שClaude (או אתם) הלכתם רחוק מדי? חפשו את הסימנים:
- יותר מ-3 קבצים חדשים למשימה פשוטה: אם ביקשתם סקריפט קטן וקיבלתם ארכיטקטורה של 5 קבצים — זה Over-Engineering.
- Abstract classes ו-Interfaces לדבר אחד: אם יש Interface אחד ו-Implementation אחד — לא צריך את ה-Interface.
- Design Patterns לבעיה של 10 שורות: Factory Pattern, Observer Pattern, Strategy Pattern — מצוינים לפרויקטים גדולים, Overkill לסקריפט חד-פעמי.
- Configuration ש-Nobody Will Ever Change: אם ה-timeout הוא 5000ms ולעולם לא ישתנה — כתבו 5000 בקוד, לא בקובץ Config נפרד.
בפעם הבאה ש-Claude נותן לכם פתרון שנראה מורכב מדי, בקשו: "יש דרך פשוטה יותר לעשות את זה?" ותופתעו כמה פעמים הוא מצליח לקצר את הקוד ב-50% בלי לאבד פונקציונליות.
Undo ורשת ביטחון — כשדברים משתבשים
הפחד הגדול של כל מי שנותן ל-AI לערוך קבצים: "מה אם הוא ישבור משהו?" התשובה: יש לכם 4 רשתות ביטחון, כל אחת ברמה אחרת. שום שינוי שClaude עושה אינו בלתי הפיך. ההשקעה שלכם: כמה שניות לפני כל שינוי. מה שאתם מקבלים: שקט נפשי מלא.
רשת 1: Git — רשת הביטחון הבסיסית
אם הקבצים שלכם מנוהלים ב-git (וכמעט תמיד הם כן), אפשר לחזור לכל מצב קודם:
git checkout -- filename.py— מחזיר קובץ ספציפי למצב של ה-commit האחרוןgit stash— שומר את כל השינויים הנוכחיים בצד, מחזיר למצב נקיgit stash pop— מחזיר את השינויים ששמרתםgit diff— מראה מה השתנה (לפני שמחליטים אם לשמור או לבטל)
לפני שמבקשים מ-Claude שינוי גדול או ניסיוני, עשו commit: git commit -m "before experiment". אם הניסוי לא מצליח, תמיד תוכלו לחזור ל-commit הזה. זה לוקח 5 שניות וחוסך כאב ראש.
רשת 2: Checkpoints — נקודות שחזור אוטומטיות
Claude Code יוצר Checkpoint אוטומטי בכל פרומפט שלכם. אתם לא צריכים לעשות כלום — זה קורה ברקע. ה-Checkpoints נשמרים 30 יום ומתעדים גם את השיחה וגם את מצב הקבצים.
חשבו על Checkpoints כמו Save Points במשחק מחשב: כל פעם שאתם כותבים פרומפט, המערכת שומרת "תמונת מצב" של הכול. אם משהו משתבש — אפשר לחזור לכל Save Point.
רשת 3: /rewind — חזרה בזמן
הפקודה /rewind מחזירה אתכם לנקודת Checkpoint קודמת — גם את השיחה וגם את הקבצים. זה כמו Ctrl+Z על סטרואידים: לא רק פעולה אחרונה, אלא חזרה לרגע ספציפי בשיחה.
אפשר גם לעשות Escape כפול (לחיצה כפולה על Escape) — זה מפעיל rewind מהיר שמחזיר את השינוי האחרון.
רשת 4: "בטל את זה" — בקשה מילולית
הדרך הכי פשוטה: פשוט אמרו ל-Claude "בטל את השינוי האחרון" או "Undo that". Claude יבצע Edit הפוך — יחליף את הטקסט החדש בטקסט הישן. זה עובד הכי טוב לשינוי אחרון בודד.
| מנגנון | מתי להשתמש | מה הוא מבטל |
|---|---|---|
| git checkout | צריך לבטל שינויים בקובץ ספציפי | שינויים לא-committed בקובץ אחד |
| git stash | רוצים לנסות גישה אחרת ואולי לחזור | שומר הכול בצד, לא מוחק |
| /rewind | רוצים לחזור לנקודה מסוימת בשיחה | שיחה + קבצים — חזרה מלאה |
| Escape x2 | ביטול מהיר של השינוי האחרון | השינוי האחרון בלבד |
| "בטל את זה" | שינוי קטן שהרגע בוצע | Claude עושה Edit הפוך |
תרגלו את הזרימה הבטוחה:
- עשו
git commit -m "safe point"— נקודת ביטחון - בקשו מ-Claude שינוי ניסיוני: "שנה את כל הפונקציות ל-Arrow Functions"
- בדקו את התוצאה — אם טוב, מצוין. אם לא, הריצו
git checkout -- .(שימו לב לנקודה) כדי לבטל הכול - ודאו שחזרתם למצב הקודם. אתם יודעים שאתם בטוחים — עכשיו אתם יכולים להתנסות בחופשיות.
עריכת תוכן — קבצים שהם לא קוד
Claude Code לא מוגבל לקוד. הוא עורך כל קובץ טקסטואלי — Markdown, CSV, HTML, JSON, YAML, plain text, קבצי קונפיגורציה, ועוד. אותם כלי Edit ו-Write עובדים בדיוק אותו דבר, לא משנה אם הקובץ הוא Python script או מייל שיווקי בעברית.
דוגמאות לשימושים נפוצים
"ב-email-template.html, שנה את ה-Subject Line ל-'30% הנחה — רק השבוע!'"
Claude משתמש ב-Edit לשנות את שורת הנושא בלבד. שאר ה-HTML, העיצוב, ה-links — לא נגעו.
"ב-data.csv, עדכן את כל השורות שבהם region הוא 'Central' ל-'Center'"
Claude משתמש ב-Edit עם replace_all כדי לעדכן את כל המופעים.
"ב-config.yaml, שנה את ה-production URL לדומיין החדש"
שינוי אחד ממוקד בקובץ YAML — הפורמט נשמר, ההזחה נשמרת.
Claude מצוין גם בעריכת תוכן בעברית — תיקוני דקדוק, שיפור סגנון, תרגום, עדכון מידע — הכול דרך אותו כלי Edit.
צריכים לעדכן מספר טלפון ב-20 קבצים? השתמשו ב-Grep כדי למצוא את כל המופעים, ואז בקשו מ-Claude: "החלף את מספר הטלפון הישן 03-1234567 ל-03-7654321 בכל הקבצים שמצאת". Claude יעבור קובץ אחרי קובץ עם Edit + replace_all.
"ב-proposal.md, שנה את הסכום מ-15,000 ש"ח ל-18,000 ש"ח, עדכן את התאריכים לרבעון הבא, והוסף סעיף על תמיכה טכנית"
Claude יבצע 3 פעולות Edit: עדכון סכום, עדכון תאריכים, הוספת סעיף חדש. כל מסמך — כל עריכה.
"ב-package.json, הוסף dependency על axios גרסה 1.6, ושנה את ה-main entry ל-dist/index.js"
Claude יודע את מבנה ה-JSON ויוסיף את ה-dependency במקום הנכון (בסדר אלפביתי, כמו הנוהג) ויעדכן את השדה main.
יש לכם 15 דפי HTML עם לוגו ישן. במקום לערוך ידנית:
# פרומפט אחד:
"מצא את כל קבצי ה-HTML בתיקיית pages/ שמכילים את הלוגו הישן
old-logo.png, והחלף אותו ב-new-logo.svg בכל אחד מהם"
Claude ישתמש ב-Grep כדי למצוא את כל הקבצים, ואז יעבור על כל אחד עם Edit + replace_all. 15 קבצים, דקה אחת.
עריכת תוכן בעברית
Claude מצוין בעריכת תוכן בעברית. כמה שימושים נפוצים:
- תיקון דקדוק: "בדוק ותקן שגיאות דקדוק בקובץ about.md"
- שיפור סגנון: "שפר את הסגנון של הפסקה הראשונה — יותר מקצועי ופחות אקדמי"
- תרגום: "תרגם את ה-error messages בקובץ הזה מאנגלית לעברית"
- עדכון מידע: "עדכן את כל השנים מ-2025 ל-2026 בקובץ הזה"
- קיצור: "קצר את הפסקה הזו ל-2 משפטים בלי לאבד את המסר"
נסו לערוך קובץ שהוא לא קוד. אם יש לכם README.md, בקשו מ-Claude: "הוסף סקשן 'Contributing' ל-README עם הנחיות לתרומה לפרויקט". שימו לב שזה בדיוק אותו תהליך Edit כמו עם קוד — רק שהתוכן הוא Markdown.
טעויות נפוצות בעריכה — ואיך להימנע מהן
אחרי שעבדנו עם מאות משתמשים ש-Claude עורך להם קוד, הנה הטעויות הכי נפוצות — ואיך להימנע מכל אחת:
מה הטעות: Claude מציג שינוי, המשתמש לוחץ "אישור" בלי להסתכל, ורק שעה אחר כך מגלה שClaude שינה גם משהו שלא ביקשו.
למה זה מפתה: אתם סומכים על Claude, והוא בדרך כלל צודק. אבל "בדרך כלל" לא מספיק בקוד.
מה לעשות במקום: תמיד קראו את ה-Diff. 10 שניות של קריאה חוסכות שעה של דיבאגינג. חפשו: האם רק מה שביקשתם השתנה? יש שינויים "שקופים"? יש מידע רגיש?
מה הטעות: מבקשים מ-Claude שינוי גדול, משהו נשבר, ואין לאן לחזור כי לא עשו commit לפני.
למה זה מפתה: "זה שינוי פשוט, מה כבר יכול להשתבש?" — הרבה.
מה לעשות במקום: לפני כל שינוי ניסיוני — git commit -m "before refactoring". 5 שניות. נקודת ביטחון שתמיד אפשר לחזור אליה.
מה הטעות: "שפר את הקוד" — Claude מחליט לבד מה "לשפר" ועושה 20 שינויים שלא רציתם.
למה זה מפתה: אתם לא בטוחים מה בדיוק לשפר, אז נותנים ל-Claude להחליט.
מה לעשות במקום: היו ספציפיים: "שפר את הפונקציה calculate_tax — הוסף טיפול ב-null input ו-type hints". ככל שהבקשה מדויקת, כך Claude עושה בדיוק מה שרציתם.
"שכתב את הקובץ" כשצריך רק לשנות 3 שורות — Claude מחליף את כל הקובץ ולפעמים משנה דברים שלא רציתם. השתמשו ב-Edit לכל שינוי שהוא פחות מ-80% מהקובץ.
Claude עדכן 5 קבצים, 4 מהם בסדר ואחד שבור. אחרי שינויים רב-קובציים, הריצו git diff על כל הקבצים ובקשו Code Review מ-Claude.
שימו לב לטעות מספר 1 — הפעם הבאה שClaude מציג Diff, עצרו. קראו כל שורה שהשתנתה. שאלו את עצמכם: "זה מה שביקשתי?" רק אחרי שהתשובה "כן" — אשרו.
| מונח (English) | עברית | הגדרה |
|---|---|---|
| Edit (Tool) | כלי עריכה | שינוי כירורגי — מחליף old_string ב-new_string בלי לגעת בשאר הקובץ |
| Write (Tool) | כלי כתיבה | יוצר קובץ חדש מאפס או מחליף לגמרי קובץ קיים |
| old_string / new_string | — | שני הפרמטרים של Edit — הטקסט למצוא והטקסט שמחליף אותו |
| replace_all | החלפת הכול | פרמטר Edit שמחליף את כל המופעים בקובץ, לא רק הראשון |
| Diff | הבדלים | הצגת ההבדלים בין שתי גרסאות — שורות + (נוספו) ושורות - (הוסרו) |
| Merge Conflict | קונפליקט מיזוג | git לא מצליח למזג שני שינויים באותן שורות אוטומטית |
| Checkpoint | נקודת שחזור | שמירה אוטומטית שClaude Code יוצר בכל פרומפט — נשמרת 30 יום |
| /rewind | חזרה בזמן | פקודה שמחזירה שיחה + קבצים לנקודת Checkpoint קודמת |
| Code Review | סקירת קוד | בדיקת איכות, באגים, אבטחה, וביצועים לפני פרודקשן |
| Greenfield | פרויקט חדש | פרויקט מאפס — ללא קוד קיים, מתחילים מדף נקי |
| Legacy Code | קוד קיים/ישן | קוד שמישהו אחר כתב — דורש גישה שמרנית |
| Plan Mode | מצב תכנון | Shift+Tab x2 או /plan — Claude מתכנן ומציג לאישור לפני ביצוע |
Frameworks להחלטות
| שאלה | תשובה | כלי |
|---|---|---|
| האם הקובץ קיים? | לא — צריך ליצור | Write |
| כמה מהקובץ משתנה? | פחות מ-80% | Edit |
| כמה מהקובץ משתנה? | יותר מ-80% | Write (שכתוב מלא) |
| כמה מקומות לשנות? | מקום אחד ייחודי | Edit רגיל |
| כמה מקומות לשנות? | כל המופעים בקובץ | Edit עם replace_all |
| מספר קבצים | גישה מומלצת | למה |
|---|---|---|
| 1-3 קבצים | Turn אחד — "עדכן מודל, API, וטסט" | מספיק קטן, Claude מנהל בקלות |
| 4-9 קבצים | Plan Mode → Execute | צריך תכנון, אבל אפשר ב-turn אחד |
| 10+ קבצים | שלבים: Backend → Frontend → Tests | מונע טעויות, בדיקה בכל שלב |
| גודל הבעיה | מורכבות מקסימלית | דוגמה |
|---|---|---|
| שינוי ערך אחד | שורה אחת — Edit בודד | שינוי פורט, עדכון URL |
| תיקון באג | 2-10 שורות — Edit ממוקד | תיקון תנאי, null check |
| הוספת פיצ'ר קטן | 20-50 שורות — כמה Edits | שדה חדש, endpoint |
| פיצ'ר גדול | 100+ שורות — Plan Mode + שלבים | מערכת הרשאות, מודול |
| סקריפט חד-פעמי | פשוט ככל האפשר | ניתוח CSV, Migration |
שגרת עבודה — עריכה יומיומית עם Claude Code
בנוסף לשגרת הניווט מפרק 5, הנה משימות העריכה שכדאי לשלב:
| תדירות | מה לעשות | זמן |
|---|---|---|
| לפני כל עריכה | Commit או stash — נקודת ביטחון. git status להבין מצב נוכחי | 30 שניות |
| בזמן עריכה | קראו כל Diff לפני אישור. אם לא ברור — "למה שינית את זה?" | 10-30 שניות |
| אחרי עריכה | Code Review: "סקור את ה-git diff". הריצו טסטים. בדקו שהכול עובד | 2-5 דקות |
| לפני Commit | "סקור לפני commit". ודאו שאין סודות (API Keys, passwords) | 1-2 דקות |
| כל שבוע | "יש דרך לפשט?" — נקו קוד מת, מחקו TODO-ים שטופלו | 15-30 דקות |
שלושה שלבים לפני כל commit: (1) סקירה — "סקור את ה-git diff", (2) תיקון — "תקן את מה שמצאת", (3) commit. הלולאה הזו תופסת 90% מהבעיות לפני שהן מגיעות לפרודקשן.
תרחיש יומיומי — כל השלבים יחד
הנה תרחיש מציאותי שממחיש את כל שגרת העבודה בפעולה:
התחלת יום — בטיחות
git status → ודאו שהכול נקי. git pull → קבלו שינויים אחרונים.
הבנה — לפני שנוגעים בקוד
"תסביר איך עובד מודול ה-payments" → Claude קורא, מסביר, ומראה את הזרימה.
תכנון — Plan Mode
"תכנן איך להוסיף תמיכה ב-PayPal" → Claude מציג תוכנית, אתם מאשרים.
ביצוע — Edit / Write
"בצע את התוכנית" → Claude עורך קבצים. אתם מסתכלים על כל Diff.
סקירה — Code Review
"סקור את ה-git diff" → Claude בודק, מציין בעיות, מתקן.
שמירה — Commit
git add . → git commit -m "Add PayPal support" → סיימתם.
זו הלולאה שתחזרו עליה עשרות פעמים ביום. ככל שתתרגלו אותה יותר, היא תהפוך לאוטומטית — ואתם תהיו הרבה יותר פרודוקטיביים ובטוחים בשינויים שאתם מבצעים.
תרגילים מעשיים
בנו פרויקט קטן מאפס ותרגלו את שני הכלים:
- Write: בקשו מ-Claude ליצור
app.py— Flask app פשוטה עם route אחד שמחזירה "Hello World" - Edit: "הוסף route חדש
/aboutשמחזיר את שם האפליקציה" - Edit: "שנה את הפורט מ-5000 ל-8000"
- Edit (replace_all): "שנה את שם האפליקציה מ-'MyApp' ל-'SuperApp' בכל הקובץ"
- Write: "צור
test_app.pyעם טסטים לשני ה-routes" - Edit: "הוסף טסט שבודק שה-route של /about מחזיר 'SuperApp'"
- Diff: "הראה לי את ה-git diff של כל מה ששינינו"
זמן משוער: 15-20 דקות. מה לשים לב: בכל שלב, הסתכלו מה הכלי שנבחר ולמה. זהו את הדפוס.
תרגלו עריכה מתואמת של מספר קבצים:
- צרו 3 קבצים:
config.json(הגדרות),app.py(אפליקציה שקוראת מהגדרות),README.md(תיעוד) - בקשו מ-Claude: "שנה את שם הפרויקט מ-'demo' ל-'production-app' בכל הקבצים — config, app, ו-README"
- צפו ב-Claude קורא את שלושת הקבצים, מבצע Edit בכל אחד, ומוודא עקביות
- בקשו: "הראה לי סיכום של כל מה ששינית"
- בדקו עם
git diffשכל השינויים נכונים
זמן משוער: 10-15 דקות. תוצאה: הבנה של איך Claude מנהל שינויים חוצי-קבצים.
תרגלו את לולאת ה-Review → Fix:
- קחו קובץ קוד קיים שלכם (כל שפה)
- בקשו מ-Claude: "סקור את הקובץ הזה — מצא באגים, בעיות אבטחה, בעיות ביצועים, ומקומות שאפשר לפשט"
- קראו את רשימת הממצאים
- בחרו 2-3 ממצאים ובקשו מ-Claude לתקן אותם
- סקרו את ה-Diffs — האם התיקונים הגיוניים?
- בקשו Review שני: "סקור שוב — האם התיקונים יצרו בעיות חדשות?"
זמן משוער: 15-20 דקות. תוצאה: שליטה בתהליך ה-Review → Fix → Review.
תרגלו את כל מנגנוני ה-Undo:
- עשו
git commit -m "starting point"— שמרו נקודת ביטחון - בקשו מ-Claude שינוי: "הוסף לוגינג לכל הפונקציות"
- תרגול Undo #1 — אמרו: "בטל את השינוי האחרון"
- בקשו שינוי נוסף: "שנה את כל ה-var ל-const"
- תרגול Undo #2 — הקישו Escape פעמיים (/rewind מהיר)
- בקשו שינוי שלישי: "מחק את כל ה-comments"
- תרגול Undo #3 — הריצו
git checkout -- .כדי לחזור ל-commit - ודאו שחזרתם בדיוק למצב ההתחלתי
זמן משוער: 10 דקות. תוצאה: ביטחון מלא שאתם יכולים לבטל כל שינוי.
פתחו קובץ קוד שלכם, בקשו מ-Claude: "סקור את הקובץ הזה ותקן את הבעיה הכי חשובה שמצאת". סקרו את ה-Diff, ואם זה נראה טוב — אשרו. עשיתם Code Review ותיקון מושלם: Edit כירורגי, Review שתפס בעיה אמיתית, ו-Diff ברור. זו הלולאה שתלווה אתכם בכל יום עבודה.
בדוק את עצמך
- למה Edit עדיף תמיד על Write בקבצים קיימים — מה היתרון מבחינת Git?
(רמז: חשבו על הבדלים ב-Diff, ב-Code Review, ובהיסטוריה) - איך כלל הייחודיות של Edit מגן עליכם משגיאות?
(רמז: מה קורה כש-old_string מופיע 5 פעמים בקובץ) - מדוע הלולאה Review → Fix → Commit חוסכת כסף אמיתי?
(רמז: חשבו על עלות באג בפרודקשן מול עלות סקירה של 30 שניות) - איך 4 מנגנוני ה-Undo משלימים זה את זה — ומתי משתמשים בכל אחד?
(רמז: git checkout לקובץ אחד, /rewind לשיחה שלמה, Escape x2 למהיר, מילולי לפשוט) - למה "Keep it simple" היא לא רק עצה טובה אלא הכרח בעבודה עם Claude?
(רמז: חשבו על הנטייה הטבעית של Claude ל-Over-Engineering ועל תקציב מורכבות)
צ'קליסט — סיכום פרק 6
- אני יודע להשתמש ב-Edit לשינויים ממוקדים בקבצים קיימים
- אני יודע להשתמש ב-replace_all כשצריך להחליף את כל המופעים
- אני יודע להשתמש ב-Write ליצירת קבצים חדשים
- אני מבין את כלל ה-80% — מתי Edit ומתי Write
- אני יכול להנחות Claude לבצע שינויים רב-קובציים מתואמים
- אני יודע לקרוא Diff ולהבין מה השתנה (+ ירוק, - אדום)
- אני יודע לבקש מ-Claude לפתור Merge Conflicts
- אני עושה Code Review לפני כל commit
- אני יודע לבקש מ-Claude פתרון פשוט ("Keep it simple")
- אני יודע לעשות Undo עם git checkout
- אני יודע לעשות Undo עם /rewind או Escape x2
- אני עושה git commit לפני שינויים ניסיוניים
- אני יודע לערוך קבצים שהם לא קוד (Markdown, CSV, JSON)
- אני מבדיל בין גישה שמרנית (Codebase קיים) לגישה יצירתית (Greenfield)
הפרק הזה לימד אתכם את הצד הפעיל של Claude Code — לא רק למצוא מידע, אלא לשנות אותו בביטחון. התובנה המרכזית: Edit הוא הכלי המועדף תמיד (95% מהמקרים) כי הוא שקוף, בטוח, ויוצר Diff נקי. הלולאה Review → Fix → Commit היא ההרגל הכי חשוב שתרכשו — 30 שניות של סקירה חוסכות שעות של דיבאגינג. ועם 4 מנגנוני Undo, אתם יכולים להתנסות בחופשיות בלי פחד. בפרק הבא נעבור ל-VS Code ואינטגרציה עם IDE — כל מה שלמדתם בפרק הזה יעבוד אותו דבר, רק עם ממשק גרפי הרבה יותר נוח.