# Methoden in Netbeans vergleichen?



## MiMa (10. Okt 2022)

Hallo,
ich habe in Netbeans jede Menge Code die ich irgendwie in den Griff bekommen muss.
Daher möchte ich nachfragen, ob jemand eine Möglichkeit kennt Methoden aus Klassen miteinander direkt in Netbeans zu vergleichen.
Aktuell mache ich das mit dem Tool Diff Files, muss aber dazu jedesmal den Code in zwei Textdateien kopieren um diese vergleichen zu können.

Ich würde mich freuen wenn das etwas unkomplizierter gehen würde.

Danke


----------



## httpdigest (10. Okt 2022)

Was meinst du mit "in den Griff bekommen"?
Und warum glaubst du, dass dazu ein textueller Vergleich der Dateien sinnvoll ist?


----------



## MiMa (10. Okt 2022)

Weil es sich um doppelten Code handelt.
Damals kannte ich kein Code-Management und hatte Netbeans Projektverzeichnisse als Zip-Dateien komprimiert.
Jetzt muss ich heraus finden welches die aktuellsten Dateien sind aus eine Datenmenge von 13GB.


----------



## KonradN (10. Okt 2022)

Wenn es die Entwicklung eines Projektes ist, dann ist es evtl. am einfachsten, das in git einmal aufzubauen - dann kann man gezielt auch in der IDE Versionen vergleichen bzw. man sieht auch nur noch Unterschiede.


----------



## mihe7 (10. Okt 2022)

Man könnte darüber nachdenken, ein NetBeans-Plugin zu schreiben. Welches NB verwendest Du denn und wäre Dir geholfen, z. B. selektierten Text mit der Zwischenablage zu diffen?


----------



## mihe7 (11. Okt 2022)

Kannst mal den Anhang probieren, sollte ab NB 12.2 funktionieren, getestet habe ich es mit NB 15. Das nbm vorher entpacken, dann in NetBeans Tools -> Plugins -> Downloaded aufrufen, auf "Add Plugins..." klicken, das nbm auswählen und dann ggf. nochmal auf Install klicken. 

Danach sollte Dir im Editor (Java-Datei!) per Rechtsklick der Befehl "Diff to Clipboard" zur Verfügung stehen. Wenn Du den aufrufst, wird der markierte Text mit dem Inhalt der Zwischenablage gedifft. 

Das ganze Teil ist natürlich Quick & Dirty umgesetzt, also nicht zu viel erwarten


----------



## MiMa (11. Okt 2022)

@mihe7 
vielen Dank für das Plugin, es funktioniert.
Ich habe auf dem System Netbeans in der Version 13 und auch 15 Installiert.
Da ich im Vorfeld wusste, das mein Projekt sehr umfangreich sein wird, habe ich mir überlegt wie ich einen Dynamischen Überblick meiner Funktionen/Methoden realisieren kann. 
Die einfachste Lösung war es über eine Kommentarzeile mit Schlüsselwörter (gpFunk = geplant, gpFunk = geprüft, pFunk = projektiert) zu realisieren und auch damit den bearbeitungszustand an zu geben. Jede Methode wird dann mit einer zusätzlichen Kommentarzeile belastet aber dafür erspare ich mir einen Verwaltungsaufwand in externen Listen die dann statisch wären.

Wenn ich alle Projekte in Nebeans öffne erhalte ich eine Liste aller Funktionen, und da kann ich ebenfalls doppelte sichten.
Mit einem Doppelklick öffne ich dann die entsprechende Funktion in einem Codefenster links und eine weitere im rechten Codefenster.

Ideal wäre es wenn in beiden Fenstern die Selektionen gdifft werden könnten. 
Dann könnte man die Dateien schneller bearbeiten.


----------



## mihe7 (11. Okt 2022)

MiMa hat gesagt.:


> Ideal wäre es wenn in beiden Fenstern die Selektionen gdifft werden könnten.


Du willst also in zwei Fenstern selektieren und dann den Diff haben? Da kann ich schon mal schauen, wie das funktioniert aber im Endeffekt sparst Du Dir damit ein Strg+C, oder?


----------



## MiMa (11. Okt 2022)

Es ist nicht nur das ich mir Strg+C spare.  sondern ich kann dann auch direkt im Code Änderungen machen, die sich direkt auf die Dateien auswirken.

Damit erspare ich mir dann auch den Code aus der Zischenablage wieder aus zu schneiden und in die Datei zu bringen.


----------



## mihe7 (11. Okt 2022)

Ach, Du meinst den Diff direkt im Editor anzeigen? Glaube nicht, dass das mal eben funktioniert. Was ich mir vorstellen könnte: den Diff im Ausgabebereich anzeigen. Dann wäre der Diff-Tab z. B. unterhalb und im Editorbereich hättest Du die beiden Dokumente nebeneinander.


----------



## MiMa (11. Okt 2022)

Nein, nicht direkt in den Editor.
Schon in dem Diff-Fenster anzeigen lassen.
Ich habe zwei Fenster aus verschiedenen java Dateien nebeneinander.
Ich würde anstatt mit dem Clipboard zu vergleichen das andere Fenster mit den Selektierten Codezeilen vergleichen lassen wollen.


----------



## MiMa (11. Okt 2022)

Aber mit dem Plugin welches du gemacht hast, hilft mir schon sehr viel weiter.
Jetzt wo ich es schon mehrfach angewandt habe kann ich dir sagen das eine weitere Optimierung nicht wirklich notwendig wäre.

Danke dir dafür.


----------



## KonradN (11. Okt 2022)

mihe7 hat gesagt.:


> Kannst mal den Anhang probieren, sollte ab NB 12.2 funktionieren, getestet habe ich es mit NB 15.


Willst Du das evtl. auf GitHub teilen und bereit stellen? Nur als Idee (Nein, keine Angst. Du bekehrst mich schon nicht zu Netbeans. Nicht, dass Du da irgendwelche Befürchtungen hast ...  )


----------



## MiMa (11. Okt 2022)

Ja Konrad ich weis das die andere IDE nutzt 
Wie sieht das den bei IJ aus mit vergleichen von Quellcode Schnipsel?
Ich habe habe da noch unzählige Dateien die kein Netbeansprojekt sind und könnte probieren wie leistungsfähig die andere Seite ist.


----------



## KonradN (11. Okt 2022)

MiMa hat gesagt.:


> Ja Konrad ich weis das die andere IDE nutzt
> Wie sieht das den bei IJ aus mit vergleichen von Quellcode Schnipsel?
> Ich habe habe da noch unzählige Dateien die kein Netbeansprojekt sind und könnte probieren wie leistungsfähig die andere Seite ist.


Wenn Du da jetzt so ein Addon für Netbeans hast und Du ja auch mehr Erfahrung mit Netbeans gesammelt hast in der Vergangenheit wäre mein Tipp auf jeden Fall, jetzt bei Netbeans zu bleiben.

Ich wüsste jetzt nicht, dass IntelliJ wirklich gut zwei unterschiedliche Dateien bzw. deren Teile vergleichen könnte. Heisst nicht, dass es das nicht kann sondern nur, dass ich diese Funktionalität nicht kenne. Daher auch meine Idee mit der Versionierung - denn da kenne ich die Möglichkeiten, unterschiedliche Versionen miteinander zu vergleichen.

Daher war das nur ein kleiner dezenter Hinweis an @mihe7, dass ich mir sowas durchaus als GitHub Repository vorstellen könnte.


----------



## mihe7 (11. Okt 2022)

KonradN hat gesagt.:


> Willst Du das evtl. auf GitHub teilen und bereit stellen? Nur als Idee (Nein, keine Angst. Du bekehrst mich schon nicht zu Netbeans. Nicht, dass Du da irgendwelche Befürchtungen hast ...  )


Kann ich machen, allerdings ist die Qualität halt unter aller Sau und ich weiß auch nicht, ob das intern alles so seine Richtigkeit hat - das war der Grund, warum ich das nicht gleich hochgeladen habe


----------



## MiMa (11. Okt 2022)

Mich würde mal interessieren wie ihr eure eigenen Funktionen bzw. Codeschnipsel verwaltet?
Ich tendiere immer dazu so effizient zu arbeiten und wenn ich Funktionen immer öfter Benötige füge ich diese in meine eigene Bibliothek hinzu, die ich dann für meine Programme verwende.


----------



## KonradN (11. Okt 2022)

MiMa hat gesagt.:


> Mich würde mal interessieren wie ihr eure eigenen Funktionen bzw. Codeschnipsel verwaltet?
> Ich tendiere immer dazu so effizient zu arbeiten und wenn ich Funktionen immer öfter Benötige füge ich diese in meine eigene Bibliothek hinzu, die ich dann für meine Programme verwende.


Das ist bei mir nicht anders. Ich habe da auch eine Library, in der ich sowas vorhalte (incl. Unit Tests) und wenn ich da was brauche, dann kopiere ich mir diese (ohne Unit-Tests - das ist natürlich diskussionswürdig. Aber Änderungen nur mit Anpassung Unit-Tests, daher Änderungen nur im "Master".). 

Ansonsten klaue ich mir oft auch direkt aus Projekten. Die Arbeit mit der Library kommt erst dann, wenn ich der Meinung bin, dass ich es brauche. So lange ich es nicht brauche, spare ich mir die extra Arbeit.


----------



## Oneixee5 (11. Okt 2022)

MiMa hat gesagt.:


> Mich würde mal interessieren wie ihr eure eigenen Funktionen bzw. Codeschnipsel verwaltet?
> Ich tendiere immer dazu so effizient zu arbeiten und wenn ich Funktionen immer öfter Benötige füge ich diese in meine eigene Bibliothek hinzu, die ich dann für meine Programme verwende.


Also bevor ich mir eine Bibliothek mit Codeschnipseln anlege, verwalte, dokumentiere und durchsuche - habe ich das 5 mal neu geschrieben. Java, und auch alles Andere, entwickelt sich immer weiter. Was soll man mit den Codeschnipseln von gestern machen, außer unter veraltet ablegen. Moderne IDE's unterstützen so gut das man nur wenig tippen muss und dann gibt es da noch Github Copilot und Stackoverflow.


----------



## mihe7 (11. Okt 2022)

Also, ich hab den Käse jetzt noch etwas umbenannt und ein wenig aufgeräumt: https://github.com/mihe7/difftoclipboard


----------



## MiMa (14. Okt 2022)

@KonradN 
Hi,
da du ja in IJ so fit bist, frage ich mal wie gut es denn funktioniert doppelten Code zu finden und eliminieren.
Ich habe mal gelesen das IJ unschlagbar super sein soll was dies betrifft.
Funktioniert das Dateiübergreifend doppelte Methoden zu finden und zu eliminieren.
Ich würde mir dann von der IJ Ulimate die 30 Tage Version istallieren um das nach zu vollziehen.
Danke


----------



## KonradN (14. Okt 2022)

Ich bin mir nicht sicher, ob du die Ultimate Version brauchst. Vermutlich wird die Community Edition ausreichen.

Doppelter Code wird dann mit einer Warnung versehen und kann dann relativ gut bearbeitet werden.


----------



## mihe7 (14. Okt 2022)

@MiMa, Du könntest auch einfach z. B. PMD mit dem cpd-Goal laufen lassen: mvn pmd:cpd  Und ja, die Code Analyse von IJ ist wirklich schön, da kann NB nicht mithalten.


----------



## MiMa (15. Okt 2022)

Habe mir IJ mal installiert und schau mal wie es geht.
Seit dem Schlaganfall sind schon 9 Monate her, ich habe immer noch Konzentrationsprobleme und einige dinge sind mir einfach wieder entfallen.
Ich bin auch bereit zu IJ zu wechseln, muss es aber erstmal lernen und nutze Netbeans erstmal parallel dazu.


----------

