Μπορείς να χρησιμοποιήσεις το Reflector.CodeMetrics adding για το Reflector. Πέρα από αυτό, το Visual Studio 2010 περιέχει Code Metrics στην Premium και Ultimate version, οπότε ίσως να τα έχεις ήδη διαθέσιμα.
Γενικά πάντως τα code metrics δεν είναι φοβερά χρήσιμα, ιδίως αν είσαι προσεκτικός στην ανάπτυξη ενός έργου. Ο λόγος είναι ότι τα νούμερα που δίνουν δύσκολα μεταφράζονται σε κάτι χειροπιαστό όπως πού υπάρχει πρόβλημα ή ποιό είναι το πρόβλημα. Ένα static analyzer από την άλλη, όπως π.χ. το FxCop θα σου προσδιορίσει ακριβώς τί συμβαίνει και τί πρέπει να διορθωθεί.
Τα code metrics μπορούν να σου δώσουν μία γενική ένδειξη όταν ο κώδικας είναι ήδη τεράστιος ή/και χαοτικός για το πού να ξεκινήσεις. Η χρήση κάποιων visualizations όπως τα Treemaps επιτρέπουν να δεις π.χ. ότι ένα function έχει 4000 γραμμές και να πας να δεις τί συμβαίνει.
Τέλος, αρέσουν στους project managers οι οποίοι δεν έχουν χρόνο να διαβάσουν 500 warnings ή δεν καταλαβαίνουν τη διαφορά μεταξύ ενός warning για localization κι ενός για την απουσία του Close όταν δουλεύεις με ένα connection. 20 νούμερα σε ένα excelάκι που πάνε πάνω ή κάτω είναι πιο βολικά.
Υ.Γ. Τώρα που το σκέφτομαι, τα metrics μπορούν να χρησιμεύσουν ως ένα είδος canary test. Αν από το ένα build στο επόμενο, ή από τη μία ημέρα στην επόμενη, δεις ότι αυξάνονται ξαφνικά τα νούμερα επειδή π.χ. κάποιος άρχισε το copy-paste, μπορείς να πας να δεις τί συμβαίνει. Από την άλλη, την ίδια ειδοποίηση θα έχεις και από το FxCop ή κάποιο άλλο analyzer καθώς θα δεις ότι αυξάνονται τα warnings.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos