Ukur kualitas kode .Net Anda dengan NDepend

Menilai kualitas kode aplikasi seringkali merupakan proses subjektif. Inilah sebabnya kami beralih ke metrik kode - pengukuran kuantitatif yang memberikan wawasan berharga ke dalam kode aplikasi kami. Pengembang dapat memanfaatkan metrik kode untuk memahami kualitas kode, mendapatkan gambaran tentang potensi masalah, dan mengidentifikasi jenis dan metode mana yang perlu difaktor ulang untuk meningkatkan kualitas.

Alat analisis kode statis digunakan untuk mengukur kualitas kode dalam aplikasi tanpa harus menjalankan aplikasi. Ada banyak alat analisis kode statis yang tersedia untuk .Net. Ini termasuk FxCop, StyleCop, ReSharper, CodeIt.Right, NDepend, dll. Artikel ini menyajikan diskusi tentang bagaimana kita dapat menggunakan NDepend untuk memvisualisasikan kualitas kode dan mengadopsi langkah-langkah untuk memperbaikinya.

Apa itu NDepend dan mengapa menggunakannya?

NDepend adalah penganalisis kode statis yang terintegrasi dengan baik dengan Visual Studio dan menyediakan metrik berharga untuk menentukan kualitas kode. NDepend menampilkan metrik tersebut dalam bentuk daftar, matriks, grafik, peta pohon, dan diagram. Bersama dengan metrik ini, NDepend dapat menganalisis kode Anda dan melaporkan pelanggaran terhadap basis data aturan yang besar.

NDepend menyimpan hasil dari setiap analisis, sehingga Anda dapat membandingkan hasil setelah Anda meningkatkan cakupan kode atau kualitas kode. Ini dapat dijalankan sebagai aplikasi mandiri dan sebagai ekstensi di Visual Studio. Dan Anda dapat memanfaatkan ekstensi NDepend Azure DevOps untuk mengintegrasikan NDepend dengan proyek Anda di Azure.

Berikut ini adalah beberapa fitur yang mencolok dari NDepend:

  • Kumpulan besar aturan kode untuk memeriksa kepatuhan
  • Banyak bagan dan diagram untuk melihat metrik kode
  • Terintegrasi dengan baik dengan Visual Studio 2010, 2012, 2013, 2015, dan 2017
  • Memungkinkan Anda menjelajahi dependensi antar modul
  • Menyediakan CQLinq (Code Query over LINQ) untuk menyesuaikan analisis
  • Mengukur cakupan kode
  • Mengidentifikasi kode yang sulit dikelola dan memperkirakan utang teknis 
  • Membuat grafik tren

Memulai dengan NDepend

Untuk mulai menggunakan NDepend, Anda perlu mendownload dan menginstal salinannya. Anda dapat mendownload salinan percobaan NDepend dari sini. Ini akan dikemas sebagai file .zip. 

Setelah Anda membuka zip file .zip NDepend installer, Anda akan menemukan file-file berikut di dalamnya:

  1. NDepend.Console - digunakan untuk integrasi dengan proses build
  2. NDepend.PowerTools - kumpulan penganalisis statis sumber terbuka
  3. NDepend.VisualStudioExtension.Installer - menginstal Ekstensi Visual Studio untuk NDepend
  4. VisualNDepend - klien GUI untuk NDepend

Anda dapat menginstal ekstensi Visual Studio NDepend dengan salah satu dari dua cara berikut:

  1. Jalankan NDepend.VisualStudioExtension.Installer
  2. Jalankan VisualNDepend dan pilih "Instal Visual Studio Extension"

Setelah Ekstensi Visual Studio untuk NDepend diinstal, Anda dapat memanfaatkan metrik, aturan, laporan, grafik, hasil penganalisis, dan alat dari dalam Visual Studio IDE. Anda juga dapat memanfaatkan Visual NDepend untuk menganalisis solusi dan proyek Anda tanpa harus meluncurkan Visual Studio.

Ekstensi Visual Studio untuk NDepend tersedia untuk Visual Studio 2010 melalui Visual Studio 2017. Perhatikan bahwa saya menggunakannya dengan Visual Studio 2017.

Menganalisis kode sumber dengan NDepend

Untuk mulai menganalisis kode sumber, Anda dapat mengklik "Analisis solusi VS dan proyek VS". Opsi lain yang tersedia adalah "Analisis rakitan .Net dalam folder", "Analisis kumpulan rakitan .Net", dan "Bandingkan 2 versi basis kode." Opsi terakhir memungkinkan Anda membandingkan dua build - fitur yang bagus!

Demi kesederhanaan, saya akan menggunakan kode sumber dari salah satu artikel terbaru saya di sini ("Cara menggunakan Lamar di ASP.Net Core"). Setelah Anda mengklik "Analisis VS solusi dan proyek VS," jendela baru akan ditampilkan seperti yang ditunjukkan pada Gambar 1 di bawah.

Sekarang Anda dapat mengklik "Jelajahi" dan menentukan file solusi dari proyek yang ingin Anda analisis NDepend.

Terakhir, klik "Analisis satu perakitan .Net" untuk memulai analisis seperti yang ditunjukkan pada Gambar 3 di bawah.

Ini akan menjalankan analisis kode pada proyek yang dipilih. Saat analisis selesai, NDepend akan menampilkan jendela dengan opsi berikut:

  • Lihat Dashboard NDepend
  • Tampilkan Grafik Interaktif NDepend
  • Aturan Kode Tergantung Browser
  • Tutup dialog

Mari pilih untuk melihat dasbor NDepend. Seperti inilah hasilnya: 

NDepend menunjukkan kepada Anda baris kode, informasi tentang jenis, hutang, komentar dalam kode sumber, informasi cakupan, kompleksitas metode, gerbang kualitas dan aturan yang telah dilanggar dan masalah lainnya.

Fitur NDepend

Grafik ketergantungan dan matriks ketergantungan

NDepend juga menunjukkan grafik ketergantungan dan matriks ketergantungan kode Anda. Sementara yang pertama memberikan tampilan grafis dari dependensi dalam proyek Anda, yang terakhir menyediakan tampilan tabel dari kode Anda yang diatur oleh dependensi pada namespace dan tipe.

Grafik tren

Grafik tren tersedia di dasbor. Bagan ini memberikan pratinjau tentang bagaimana kualitas kode sumber proyek telah berubah dari waktu ke waktu. Anda juga dapat membuat grafik tren khusus Anda sendiri.

Kompleksitas siklomatik

Kompleksitas siklomatik adalah ukuran kuantitatif dari jalur independen linier dalam kode sumber yang dapat membantu Anda memahami kompleksitas program Anda dan meningkatkan cakupan kode. Anda dapat memanfaatkan NDepend untuk menganalisis kompleksitas siklomatik dalam kode aplikasi Anda. Anda dapat membaca lebih lanjut tentang kompleksitas siklomatik di artikel ini.

Membuat kueri menggunakan CQLinq

CQLinq adalah salah satu fitur NDepend yang paling mencolok. CQLinq memungkinkan Anda untuk meminta kode .Net menggunakan LINQ. Anda dapat memanfaatkan CQLinq untuk menanyakan hutang kode, masalah, aturan, dan gerbang kualitas.

Mari kita lihat contohnya. Kueri CQLinq berikut menampilkan nama metode dan kompleksitas siklomatik dari metode non-abstrak yang memiliki kompleksitas siklomatik lebih besar dari 20, diurutkan berdasarkan urutan nilai kompleksitas siklomatik.

dari m di Application.Methods

dimana m.CyclomaticComplexity> = 20 &&! m.IsAbstract

orderby m. Siklus kompleksitas menurun

pilih baru {m, m.CyclomaticComplexity}

Berikut adalah contoh lain dari kueri CQLinq. Yang ini ketika dijalankan akan menampilkan nama-nama metode yang memiliki lebih dari 100 baris kode.

dari m di Metode di mana m.NbLinesOfCode> 100 pilih m

Untuk mempelajari lebih lanjut tentang CQLinq, Anda dapat merujuk ke dokumentasi NDepend di sini. 

NDepend adalah alat analisis kode statis yang dapat memberi Anda wawasan berharga tentang kode aplikasi Anda. Anda dapat menjalankan NDepend sebagai aplikasi mandiri atau terintegrasi dalam Visual Studio. Meskipun NDepend tidak gratis, harganya masuk akal mengingat kemampuannya yang hebat, dan tersedia untuk semua versi Visual Studio terbaru.

Jika Anda menginginkan sumber daya yang bagus untuk belajar NDepend, saya sangat merekomendasikan kursus Pluralsight "Practical NDepend" oleh Eric Dietrich.