אחד מהבעיות המשותפות הן לתכנת מתחיל שמקבל לתחזק קוד קיים, הן לראש צוות שצריך לבדוק מה עשו התכנתים שלו, הן למי שצריך לעשות Code Review לקוד, הן למתכנת שאמור לשלב קוד של קבוצה אחרת בקוד שלו והן לארכיטקט שרוצה לודא שמה שכתבו המפתחים עונה להנחיות הארכיטקטוניות שלו, זה הצורך להכנס לקוד של מישהו אחר.
להכנס לקוד של מישהו אחר זה לא דבר קל, כי מאחורי הקוד מסתתר ראש, שהוא שונה מהראש שלך, חושב אחרת, ורואה דברים אחרת. תוסיפו לזה שיש הרבה יותר מדרך אחת לפתור כל בעיה, ואתה נכנס ישר לתחום של מלחמת דתות ואומנות, שמוליך בדרך כלל לדרך ללא מוצא.
הבעיה הזו היא לא בעיה מדומה אלא בעיה אמיתית מאד, שיש לה השלכות לגבי נקודות רבות בתהליך הפיתוח, והיא מתבססת על העקרון הפיזיקאלי המוכח, שאומר שאנליזה תמיד יותר קשה ומורכבת מסינתזה. כתוצאה מכך הרבה פעמים כאשר נתנים למישהו לתקן משהו בקוד, תמצאו אותו כותב את כל קטע הקוד מחדש, במקום לנסות ולהבין מה בדיוק קורה בקוד הקיים, ולתקן רק את מה שצריך שם.
מבחינה תהליכית לכתוב מחדש זה אולי יותר קצר בזמן, אבל בהתחשב בעובדה שהכותב לא נכנס לעובי הקורה, לא הבין את התמונה המלאה, וקיצר תהליכים. יש סיכוי סטטיסטי טוב, שמה שהוא יכתוב, לא יכסה את כל מה שהכותב המקורי התכוון אליו. זה מכניס חוסר קוהרנטיות בקוד, ובדרך כלל מכניס כתופעות לואי, המון בעיות במקומות אחרים. זה "פתרון" שעולה, בסופו של דבר, הרבה יותר מה"חסכון" בזמן של הכתיבה מחדש.
ישנם הרבה כלים שיכולים לקצר את תהליך האנליזה, ובכך להקטין את הסיכוי שמתכנת ינסה לקצר תהליכים. שימוש ב Coding Guidelines הוא טכניקה טובה. לעומת זאת שימוש בנהלים קשיחים של תיעוד וכתיבה, עם בקרה הדוקה, בדרך כלל לא מספקים את הסחורה, וגם גורמים לתקורה גבוהה. מצד שני, תיעוד הוא חלק חיוני בהבנה של מערכת. רק שהרבה פעמים מרוב תיעוד לא רואים את היער.
VS2010 Beta 2 כולל בתוכו אוסף כלים שיכולים לעזור רבות בתהליך האנליזה (וגם לקצר תיעוד). וחשבתי ששוה לכתוב קצת על כמה מהם.
בדרך כלל שאתה נכנס למערכת חדשה אתה רוצה לדעת בגדול ממה היא מורכבת. תפריט הארכיטקטורה ב VS2010 Beta 2 נותן לך אפשרות להוציא כמה דוחות מענינים לפי מה שמעניין אותך.
לדוגמא, דוח ה Assemblies נותן לך מבט מהיר מי נגד מי ברמת ה Assembly.
אבל מה שיפה בדוח הזה זה שהוא דינמי, לחיצה על כפתור ההרחבה, ואתה מתחיל לחפור לעומק.
ולעומק,
בעצם עד איזה עומק שאתה רוצה.
היכולת שלך ליצר דוח מותאם אישית מאפשרת לך למשל להוציא די בקלות דוח של עץ הקריאות המלא
אל תבהלו מהמורכבות, כי מאחר ויש לך יכולת לבצע Zoom לכל אזור מעניין, לנוע על גרף הקריאות לכל כיוון, לסמן את כל אלה שקוראים לפונקציה מסוימת ואת כל אלה שנקראים על ידי פונקציה מסוימת, בעצם מאד קל לך לראות את כל התהליך. ממילא בזמן האנליזה אתה מתרכז באזור אחד ולא בעל התמונה.
אתה גם יכול לקבל בהינף כפתור תצוגה מטריציונית של התלויות השונות. מה שיכול לעזור בקבלת החלטות הקשורות לסיכון ולמשמעויות בנגיעה בקטע קוד ספציפי.
ניתן ליצא את כל הדברים האלה בפורמט DGML או XPS.
בנוסף אתה מקבל במתנה יכולות איתור של הפניות מעגליות, צמתי עומס וצמתים מנותקים.
וכמובן אתה לא מאבד קשר עם הקוד, כי לחיצה כפולה על אוביקט, תביא אותך ישר אל שורת הקוד הרלונטית.
אם כבר מדברים על קוד, אז אם אתה עומד על פונקציה ומבקש יפה, אתה יכול לקבל דוח מיידי מי קורא לה ולמי היא קוראת.
ואם כל זה לא מספיק לך, אז יש לך גם יכולת לעמוד על פונקציה בקוד, וליצר ממנה דיאגרמת מצבים של כל הקריאות שאותה פונקציה קוראת.
כל מה שתארתי כאן זה זה רק תת תפריט אחד, מבין עוד הרבה דברים חדשים שיש ב VS2010 Beta 2, תהנו.