דוגמת הצגת פרויקט: מנתח לוגים מקומי

מאת ארז ברזאני · תרגול מקורי של GammaCyber

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

הבעיה והמבנה

הקלט הוא קובץ טקסט שבו כל שורה תקפה מכילה timestamp,level,message המופרדים בפסיקים. לצורך הדוגמה, message אינו כולל פסיקים, והערכים המותרים ל־level הם INFO ו־ERROR. הפלט הוא ספירת אירועים לפי רמה ומספר שורות לא תקינות. המבנה: קורא שורות → parser → מאמת → צובר → מדפיס סיכום. כל חץ הוא חוזה קטן שאפשר לבדוק.

החלטת תכנון שאפשר להסביר

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

בדיקות והצגה

בדקו קובץ ריק, שורה תקפה, level לא מוכר, שורה עם שדה חסר ושתי שורות תקפות. למשל INFO אחד ו־ERROR אחד צריכים לתת שתי ספירות של 1 ואפס שורות פגומות. הציגו תחילה את התוצאה המצופה ורק אז הריצו. לסיום תארו מגבלה אמיתית אחת, כמו היעדר אימות timestamp, ואת הבדיקה שתכתבו לפני הוספתו. כך ההדגמה כוללת גם החלטה, גבול ותוכנית המשך.

הצעד הבא בלמידה

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

לשיעור הקשור בקורסלמפת הקורס וחלוקת התוכן

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

להמשך תרגול

מקורות טכניים וגבולות התרגול

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