בוא ונמציא את הגלגל מחדש

16 בפברואר 2007

אין תגובות

אחד מהנושאים שאין מפתח שאינו מתלבט לגביו, היא השאלה "באיזה נקודה בדיוק נמצאת כרגע התכנית שלי באמת כרגע ומה בדיוק היא עושה שם". הפתרון הנפוץ ביותר עד היום לקבלת תשובה לשאלה הזו נקרא  Printf Debugging. ואל תזלזו לרגע בטכניקה הזו, שורשיה מגיעים לעומקי עולם התכנה, ושרידים לה נמצאים כבר ב "Hello World!\n" המפורסם של קרניגהם וריצ'י. התחליף לטכניקה הזו בעולם של היישומים הגדולים הוא כמובן Logging ואין מי שלא בונה או משלב בתכנה שלו איזה שהוא מנגנון של Logger. יש כאלה שקוראים למנגנון הנל Tracing שיש לו ניחוח יוקרתי יותר של איתור צווארי בקבוק ומדידת ביצועי מערכת וחש כאלה שמשתמשים במונח Instrumentation, שמתקשר ישירות לעולם ה Production, עולם שמוסיף לכל תשתית כזו, אילוצים ודרישות של הפעלה והפסקה דינמית של כלי הניטור ללא צורך באיתחול מחדש של היישום, ועמידה בדרישות מינימליות של תקורה.


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


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


אתה לא צריך להרגיש כמו אידיוט על שלא השתמשת עד עכשיו בתשתית הזו אלא כתבת אחת משלך. יש להודות שמיקרוסופט לא עשתה לתשתית הזו מי יודע מה יחסי ציבור, נושאים הרבה פחות חשובים לסביבת הייצור כמו (בלי לפגוע באף אחד) WPF, WCF, WF ועוד כמה, הרבה יותר סקסיים מאשר ETW או מ "המפרט הטכני שבו צריכה לעמוד תכנה על מנת לחיות בשלום עם מערכת ההפעלה". למרות שבפועל, מבחינת נוחיות תפעול רצפת היצור ומה שיותר חשוב עלות התפעול הכוללת של של מערך ה IT, אלה נושאים הרבה יותר קריטיים שיש להם השפעה תקציבית גם על עלויות הפיתוח. אבל מצד שני, "אי אפשר למלא את סינמה סיטי, עם נושאים כאלה".  


ואם כבר מזכירים Device Drivers, עולם ה Device drivers עובר כרגע מהפכה, שניתן להשוות אותה למהפכה שעבר עולם התכנות ברגע שיצא MFC, ושינה כנראה לצמיתות את הדרך שבה מתכנתים עבדו עם ++ C. למהפכה הזו קוראים WDF ויש לה השפעות על עולם הפיתוח שכן היא מורידה את סף הכניסה, לכל מי שרוצה לפתח Device drivers.  רוב המפתחים לא מכירים את הארכיטקטורה המסתתרת מאחורי עולם ה Device drivers בגלל סף הכניסה הגבוה. ואם אתה לא מכיר משהו, לא תשקול את השימוש בו לבעיה הדורשת פתרון, גם אם הוא מתאים לה.


אחד מהכיוונים החדשים שהתשתית החדשה מאפשרת, זה לכתוב Device driver שרץ כולו ב User mode. עד כמה שהרעיון לכתוב Device driver ב User mode נשמע מופרך (רק תחשבו על זה, Device driver שכתוב ב # C ), זו עדיין צורת פתרון בעיה שלא היתה זמינה בקלות כזו למפתחים עד לרגע זה, ושוה לפחות להכיר אותה. הרעיונות מה בדיוק לעשות איתה, יצוצו מן הסתם ברגע המתאים.


מי שרוצה לשמוע יותר פרטים על נושא ETW ועל כלים נלוים ומי שרוצה להכיר את WDF ו UMDF. או כל מי שסתם מעוניין בעוגות בורקסים ושתיה חינם על חשבון מיקרוסופט. מוזמן להגיע ביום רביעי הקרוב, בשעה 17:00 לבית מיקרוסופט ברחוב הפנינה 2 (קרוב לצומת רעננה) באולם דקל, למפגש החודשי של קבוצת משתמשי * C ויקבל ממני הסבר אישי על הנושא.


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

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *