Chromanoid hat geschrieben: ↑15.06.2023, 15:58
Hast Du mal Code Duplication Detection mit SonarQube versucht?
Da es nicht absichtlich war, kann ich nicht sagen, dass DRY ja out ist und WET schon der richtige Ansatz ist :)
Guter Tipp. Dachte, dass es das nur als Bezahlversion gibt (
https://www.sonarsource.com/plans-and-p ... #sonarqube). Wären bei mir auch wieder über 1k €/Jahr was ich für so schlechte Software sicher nicht zahle. Hab's jetzt 5min in Eclipse drin, dreiviertel der Regeln deaktiviert, weil sie einfach Müll sind oder die zugrundeliegende Analyse nicht richtig ist. Das abstruseste ist der Vorschlag ein return auszubauen, weil man es eh nicht braucht und direkt dahinter kommt dann
Code: Alles auswählen
Report.fatal(Category.BUG, "Missed a case (" + e + "): " + Pretty.IR(e), e);
Das return brauche ich sicher nicht. Ganz sicher ... dafuq?
Auch schön: ""Replace this "switch" statement by "if" statements to increase readability.""
Ja ne ist klar.
Was mich auch sehr freut ist ""Merge this if statement with the enclosing one. [+1 location]""
Ist ja nicht so, dass da nicht acht Zeilen Kommentar vornedran wären, die erklären, warum man jetzt genau diesen Teil der Prüfung so machen muss wie er da steht. Hatte auch bei der Arbeit immer das Gefühl, dass die Software auf Leute optimiert ist, die keine Erfahrung und keinerlei Qualitätsempfinden haben; was da aber nicht hilft, weil man jede Warnung mit "won't fix" wegklicken darf :-/
Was mich wirklich zum lachen gebracht hat: ""This block of commented-out lines of code should be removed.""
Der Kommentar dazu war:
Code: Alles auswählen
// note to self: this case can happen e.g. for {{return}; a; b; c}
Da können sie zugegebenermaßen nicht wissen, was ich mache und dass das kein Code ist.
Was sie dagegen wissen müssten ist, dass der folgende Cast tatsachlich notwendig ist:
Code: Alles auswählen
var rtParamsNames = e.getRtParams() != null
? ᚠ.map(e.getRtParams(), p -> (String) null)
: null;
Was mich daran wundert ist, dass Eclipse eine vergleichbare Regel hat, nur mit Quickfix und offensichtlich richtig. Hätte erwartet, dass sie dann nicht in den Standardregeln auftaucht.
Was auch etwas seltsam ist, ist die UI-Integration an sich. Aus den Editorfenstern scheinen die Warnungen zu verschwinden, aus dem Report aber nicht. Und Quickfixes haben sie auch keine Implementiert.
Edit: Hab's wieder rausgehauen; hunderte Meldungen die keinen Sinn ergeben und nur ein paar Änderungen von denen keine wirklich problematisch war rechtfertigen das einfach nicht und zumindest das Eclipseplugin scheint das mit den Clonen auch nicht zu können. Muss mal schauen ob man das als reine Klonerkennung ins Jenknis bekommt.