Geschichte der Refactoring-Version ohne Testen von mehr als 200.000 Zeilen Codebasis Nachdem ich diesen Artikel gelesen hatte, fragte ich mich, ob Java dasselbe mit einer Klassendatei tun könnte.
Als Hintergrund meiner Forschung beschäftige ich mich selbst mit Java bei der Arbeit. Dies liegt daran, dass ich umgestalten wollte, aber die Anzahl der Schritte so weit wie möglich reduzieren wollte.
Wir werden den Hash-Wert (SHA1) der Klassendatei vergleichen, der mit verschiedenen Änderungen basierend auf dem Standard-Quellcode kompiliert wurde.
Ich habe den Befehl certutil -hashfile
verwendet, um den Hash-Wert zu erhalten.
Main.java
import java.util.Arrays;
import java.util.List;
public class Main {
/**
* test
*/
public static void test() {
System.out.println("test");
}
/**
* main
* @param args
*/
public static void main(String[] args) {
List<String> list = Arrays.asList("a", "b", "c");
System.out.println(list);
System.out.println("main");
test();
}
}
Hash-Wert (SHA1): b38492ff5641fa0f074a82ca5f397c7ba7f3575d
Der Hash-Wert der aus Main.java kompilierten Datei Main.class ist wie oben. Vergleichen Sie dies mit den Unterschieden zwischen den Dateien nach verschiedenen Änderungen.
Da der Inhalt der Umfrage lang ist, werde ich aus den Ergebnissen und Schlussfolgerungen schreiben.
** Es gab keinen Unterschied im Hash-Wert (SHA1) der Klassendatei. ** In Bezug auf die Änderung scheint es, dass Sie "OK ohne Test" sagen können, indem Sie den Unterschied der Klassendatei vergleichen. Insbesondere das Ändern des Einzugs führt zu einem großen Unterschied im Quellcode. Daher dachte ich, es wäre schön, wenn ich sagen könnte: "Klassendateien vergleichen und es gibt keinen Unterschied, also ist es in Ordnung."
Main.java
import java.util.Arrays;
import java.util.List;
public class Main {
/**
* test
*/
public static void test() {
System.out.println("test"); System.out.println("test2");
}
/**
* main
* @param args
*/
public static void main(String[] args) {
List<String> list = Arrays.asList("a", "b", "c");
System.out.println(list);
System.out.println("main");
test();
}
}
Hash-Wert (SHA1): "2356a12ac1ca0147356c1eb9824bdacf94e5eaac"
Main.java
import java.util.List;
import java.util.Arrays;
public class Main {
/**
* test
*/
public static void test() {
System.out.println("test");
}
/**
* main
* @param args
*/
public static void main(String[] args) {
List<String> list = Arrays.asList("a", "b", "c");
System.out.println(list);
System.out.println("main");
test();
}
}
Hash-Wert (SHA1): b38492ff5641fa0f074a82ca5f397c7ba7f3575d
Main.java
import java.util.Arrays;
import java.util.List;
public class Main {
/**
* test
*/
public static void test() {
System.out.println("test");
}
/**
* main addcomment
* @param args
*/
public static void main(String[] args) {
List<String> list = Arrays.asList("a", "b", "c");
System.out.println(list);
System.out.println("main");
test();
}
}
Hash-Wert (SHA1): b38492ff5641fa0f074a82ca5f397c7ba7f3575d
Main.java
import java.util.Arrays;
import java.util.List;
public class Main {
/**
* test
*/
public static void test() {
System.out.println("test");
}
/**
* main
* add comment
* @param args
*/
public static void main(String[] args) {
List<String> list = Arrays.asList("a", "b", "c");
System.out.println(list);
System.out.println("main");
test();
}
}
Hash-Wert (SHA1): a05020054dd7c85ef01c20bc9d1f0cc45c46d1e1
Main.java
import java.util.Arrays;
import java.util.List;
public class Main {
/**
* test
*/
public static void test() {
System.out.println("test");
}
/**
* main
* @param args
*/
public static void main(String[] args) {
List<String> list = Arrays.asList("a", "b", "c");
System.out.println(list);
System.out.println("main");
test();
}
}
Hash-Wert (SHA1): a05020054dd7c85ef01c20bc9d1f0cc45c46d1e1
Main.java
import java.util.Arrays;
import java.util.List;
public class Main {
/**
* test
*/
public static void test() {
System.out.println("test");
}
/**
* main
* @param args
*/
public static void main(String[] args) {
List<String> list = Arrays.asList("a", "b", "c");
System.out.println(list);
System.out.println("main");
test();
}
}
Hash-Wert (SHA1): b38492ff5641fa0f074a82ca5f397c7ba7f3575d
Main.java
import java.util.Arrays;
import java.util.List;
public class Main {
/**
* test
*/
public static void test() {
System.out.println("test");
}
/**
* main
* @param args
*/
public static void main(String[] args) {
List<String> list = Arrays.asList("a", "b", "c");
System.out.println((list));
System.out.println("main");
test();
}
}
Hash-Wert (SHA1): b38492ff5641fa0f074a82ca5f397c7ba7f3575d
Recommended Posts