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