מדוד את האיכות של קוד ה- NET שלך באמצעות NDepend

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

משתמשים בכלים לניתוח קוד סטטי למדידת איכות הקוד ביישום מבלי לבצע את היישום. ישנם כלים רבים לניתוח קוד סטטי הזמינים עבור .Net. אלה כוללים FxCop, StyleCop, ReSharper, CodeIt.Right, NDepend וכו '. מאמר זה מציג דיון כיצד אנו יכולים להשתמש ב- NDepend כדי לדמיין את איכות הקוד ולאמץ אמצעים לשיפורו.

מה זה NDepend ומדוע להשתמש בו?

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

NDepend שומר את התוצאות של כל ניתוח, כך שתוכל להשוות את התוצאות לאחר ששיפר את כיסוי הקוד או את איכות הקוד. ניתן להריץ הן כיישום עצמאי והן כהרחבה ב- Visual Studio. ותוכל לנצל את הרחבה NDepend Azure DevOps כדי לשלב את NDepend עם הפרויקטים שלך ב- Azure.

להלן כמה מהתכונות הבולטות של NDepend:

  • קבוצה גדולה של כללי קוד לבדיקת תאימות
  • תרשימים ודיאגרמות רבות לצפייה במדדי קוד
  • משתלב יפה עם Visual Studio 2010, 2012, 2013, 2015 ו- 2017
  • מאפשר לך לחקור את התלות בין המודולים
  • מספק CQLinq (קוד שאילתה על פני LINQ) להתאמה אישית של ניתוח
  • מודד כיסוי קוד
  • מזהה קוד קשה לתחזוקה ומעריך חוב טכני 
  • יוצר תרשימי מגמה

תחילת העבודה עם NDepend

כדי להתחיל להשתמש ב- NDepend, יהיה עליך להוריד ולהתקין עותק שלו. תוכלו להוריד עותק ניסיון של NDepend מכאן. זה יהיה ארוז כקובץ zip. 

לאחר שפקדתם את קובץ ה- zip של מתקין ה- NDepend, תמצאו את הקבצים הבאים:

  1. NDepend.Console - משמש לאינטגרציה עם תהליך הבנייה
  2. NDepend.PowerTools - אוסף של מנתחים סטטיים קוד פתוח
  3. NDepend.VisualStudioExtension.Installer - מתקין את הרחבה Visual Studio עבור NDepend
  4. VisualNDepend - לקוח GUI עבור NDepend

באפשרותך להתקין את סיומת Visual Studio של NDepend באחת משתי הדרכים הבאות:

  1. הפעל את NDepend.VisualStudioExtension.Installer
  2. הפעל את VisualNDepend ובחר "התקן סיומת Visual Studio"

לאחר התקנת הרחבה של Visual Studio עבור NDepend, תוכל למנף את המדדים, הכללים, הדוחות, הגרפים, תוצאות המנתח והכלים מתוך Visual Studio IDE. אתה יכול גם לנצל את Visual NDepend כדי לנתח את הפתרונות והפרויקטים שלך מבלי להפעיל את Visual Studio.

הרחבה של Visual Studio עבור NDepend זמינה עבור Visual Studio 2010 דרך Visual Studio 2017. שים לב שאני משתמש בה עם Visual Studio 2017.

ניתוח קוד המקור עם NDepend

כדי להתחיל לנתח את קוד המקור שלך, אתה יכול ללחוץ על "ניתוח פתרונות VS ופרויקטים של VS". האפשרויות האחרות הזמינות הן "ניתוח מכלולי .net בתיקיה", "ניתוח קבוצה של מכלולי .Net" ו"השווה בין שתי גרסאות של בסיס קוד ". אפשרות אחרונה זו מאפשרת לך להשוות בין שתי תבניות - תכונה נחמדה!

למען הפשטות, אשתמש בקוד המקור מאחד המאמרים האחרונים שלי כאן ("כיצד להשתמש ב- Lamar ב- ASP.Net Core"). לאחר שתלחץ על "ניתוח פתרונות VS ופרויקטים של VS", יופיע חלון חדש כפי שמוצג באיור 1 להלן.

כעת תוכל ללחוץ על "עיון" ולציין את קובץ הפיתרון של הפרויקט שתרצה ש- NDepend ינתח.

לבסוף, לחץ על "ניתוח מכלול .Net יחיד" כדי להתחיל בניתוח כפי שמוצג באיור 3 להלן.

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

  • צפה במרכז השליטה של ​​NDepend
  • הצג גרף אינטראקטיבי של NDepend
  • כללי קוד דפדפן NDepend
  • סגור את תיבת הדו-שיח

בואו לבחור להציג את לוח המחוונים של NDepend. כך נראית הפלט: 

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

תכונות NDepend

גרף תלות ומטריצת תלות

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

תרשימי מגמה

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

מורכבות סיקלומטית

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

שאילתות באמצעות CQLinq

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

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

מ m ביישום. שיטות

שם m.CyclomaticComplexity> = 20 &&! m.IsAbstract

סדר לפי מ 'ציקלומטיות מורכבות יורדת

בחר {m, m.CyclomaticComplexity} חדש

הנה דוגמה נוספת לשאילתת CQLinq. זו בעת ביצועה תציג את שמות השיטות הכוללות יותר מ -100 שורות קוד.

מ m בשיטות שבהן m.NbLinesOfCode> 100 בחר m

למידע נוסף על CQLinq, תוכל לעיין בתיעוד NDepend כאן. 

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

אם אתה רוצה משאב נהדר ללימוד NDepend, אני ממליץ בחום על קורס Pluralsight "NDepend מעשי" מאת אריק דיטריך.