Alat untuk basis kode Java ini akan membantu Anda mengidentifikasi apa yang harus Anda refi terlebih dahulu:
Ini memindai repositori git Anda dan berjalan:
Analisis siklus dilakukan berdasarkan jenis bidang kelas dan jenis metode tanda tanda tangan saat ini (lebih banyak yang akan datang!).
Grafik yang dihasilkan dalam laporan akan terlihat mirip dengan yang ini:
Perubahan yang diperlukan Java 11 diperlukan untuk mengatasi kerentanan CVE-2023-4759 di JGIT
Analisis basis kode Java 21 didukung!
Jalankan perintah berikut dari root proyek Anda (kode sumber tidak perlu dibangun):
mvn org.hjug.refactorfirst.plugin:refactor-first-maven-plugin:0.6.1:htmlReport Lihat Laporan di target/site/refactor-first-report.html
Ini akan menghasilkan laporan HTML yang disederhanakan (tidak ada grafik atau gambar) sebagai output dari langkah tindakan GitHub
mvn -B clean test
org.hjug.refactorfirst.plugin:refactor-first-maven-plugin:0.6.1:simpleHtmlReport
&& echo " $( cat target/site/refactor-first-report.html ) " >> $GITHUB_STEP_SUMMARYTambahkan yang berikut ke proyek Anda di bagian Build. Showdetails akan menunjukkan metrik dan peringkat kelas Tuhan di tabel yang dihasilkan.
< build >
< plugins >
...
< plugin >
< groupId >org.hjug.refactorfirst.plugin</ groupId >
< artifactId >refactor-first-maven-plugin</ artifactId >
< version >0.6.1</ version >
<!-- optional -->
< configuration >
< showDetails >false</ showDetails >
</ configuration >
</ plugin >
...
</ plugins >
</ build > Tambahkan yang berikut ke proyek Anda di bagian Laporan.
Laporan RefactorFirst akan muncul di laporan Situs saat Anda menjalankan mvn site
< reporting >
< plugins >
...
< plugin >
< groupId >org.hjug.refactorfirst.plugin</ groupId >
< artifactId >refactor-first-maven-plugin</ artifactId >
< version >0.6.1</ version >
</ plugin >
...
</ plugins >
</ reporting >Jika Anda melihat kesalahan yang mirip dengan
Execution default-site of goal org.apache.maven.plugins:maven-site-plugin:3.3:site failed: A required class was missing while executing org.apache.maven.plugins:maven-site-plugin:3.3:site: org/apache/maven/doxia/siterenderer/DocumentContent
Anda perlu menambahkan yang berikut ini ke pom.xml Anda:
< build >
< plugins >
< plugin >
< groupId >org.apache.maven.plugins</ groupId >
< artifactId >maven-site-plugin</ artifactId >
< version >3.12.1</ version >
</ plugin >
< plugin >
< groupId >org.apache.maven.plugins</ groupId >
< artifactId >maven-project-info-reports-plugin</ artifactId >
< version >3.4.5</ version >
</ plugin >
</ plugins >
</ build >Saya ingin membuat plugin gradle dan (mungkin) mendukung proyek non-konvensional di masa depan, tetapi sementara itu Anda dapat membuat file pom dummy di direktori yang sama dengan direktori .git Anda:
< project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns : xsi = " http://www.w3.org/2001/XMLSchema-instance "
xsi : schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd " >
< modelVersion >4.0.0</ modelVersion >
< groupId >com.mycompany.app</ groupId >
< artifactId >my-app</ artifactId >
< version >1.0-SNAPSHOT</ version >
</ project >dan kemudian (dengan asumsi maven diinstal) berjalan
mvn org.hjug.refactorfirst.plugin:refactor-first-maven-plugin:0.6.1:htmlReport Lihat Laporan di target/site/refactor-first-report.html
Setelah plugin selesai dieksekusi (mungkin perlu beberapa saat untuk basis kode besar/lama), buka file target/situs/refactor-first-report.html di akar proyek. Ini akan berisi grafik yang mirip dengan yang di atas, dan tabel yang mendaftarkan kelas Tuhan dalam urutan yang disarankan agar mereka dapat diperbaiki. Kelas -kelas di kiri atas grafik adalah yang paling mudah untuk refactor sementara juga memiliki dampak positif terbesar terhadap produktivitas tim.
Jika kelas yang sangat berpasangan terdeteksi, grafik dan daftar tabel kelas yang sangat ditambah akan dihasilkan.
Bekerja dengan pemilik produk Anda untuk memprioritaskan utang teknis yang telah diidentifikasi. Mungkin membantu menjelaskannya sebagai nilai negatif tersembunyi yang memperlambat porduktivitas tim.
Jika Anda memiliki Intellij Ultimate, Anda dapat menginstal plugin Diagram Referensi Metode untuk membantu Anda menentukan bagaimana kelas Tuhan yang diidentifikasi dan kelas -kelas yang sangat digabungkan dapat direfaktor.
Plugin ini akan bekerja pada proyek modul tunggal dan multi-modul yang memiliki tata letak proyek Maven yang khas.
Alat ini didasarkan pada kertas yang memprioritaskan peluang investasi hutang desain oleh Nico Zazworka, Carolyn Seaman, dan Forrest Shull. Presentasi berdasarkan kertas tersedia di https://resources.sei.cmu.edu/asset_files/presentation/2011_017_001_516911.pdf
Masih banyak yang harus dilakukan. Umpan balik dan kolaborasi Anda akan sangat dihargai dalam bentuk permintaan fitur, pengiriman bug, dan PR.
Jika Anda menemukan plugin ini bermanfaat, silakan bintangi repositori ini dan bagikan dengan teman & kolega Anda dan di media sosial.
Jika Anda adalah pengguna versi 0.1.0 atau 0.1.1, Anda mungkin memperhatikan bahwa daftar kelas Tuhan yang ditemukan oleh plugin telah berubah. Ini karena perubahan PMD.