ניתוח קוד קיים באמצעות VS2010 Beta 2

26 באוקטובר 2009

אין תגובות

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

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

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

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

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

VS2010 Beta 2 כולל בתוכו אוסף כלים שיכולים לעזור רבות בתהליך האנליזה (וגם לקצר תיעוד). וחשבתי ששוה לכתוב קצת על כמה מהם.

בדרך כלל שאתה נכנס למערכת חדשה אתה רוצה לדעת בגדול ממה היא מורכבת. תפריט הארכיטקטורה ב VS2010 Beta 2 נותן לך אפשרות להוציא כמה דוחות מענינים לפי מה שמעניין אותך.

menuA

לדוגמא, דוח ה Assemblies נותן לך מבט מהיר מי נגד מי ברמת ה Assembly.

assemB

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

image

ולעומק,

drillD

בעצם עד איזה עומק שאתה רוצה.

היכולת שלך ליצר דוח מותאם אישית מאפשרת לך למשל להוציא די בקלות דוח של עץ הקריאות המלא

callE

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

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

DependG

ניתן ליצא את כל הדברים האלה בפורמט DGML או XPS.

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

analH

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

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

codeI

callJ

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

stateK

כל מה שתארתי כאן זה זה רק תת תפריט אחד, מבין עוד הרבה דברים חדשים שיש ב VS2010 Beta 2, תהנו.

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

כתיבת תגובה

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