IDE: IntelliJ-Plugin erkennt Copy-Paste-Code
Ein Forschungsteam von Jetbrains, das bekannte Entwicklungswerkzeuge wie die IDE IntelliJ IDEA erstellt, und Forscher der Wirtschaftshochschule Moskau (HSE University) haben mit Anti-Copy-Paster ein experimentelles Plugin(öffnet im neuen Fenster) für die IDE erstellt, welches das Kopieren und Einfügen von Code erkennt und Alternativen zu damit entstandenen Duplikaten vorschlägt.
In einer zu dem Plugin erstellten wissenschaftlichen Ausarbeitung(öffnet im neuen Fenster) heißt es: "Kopieren und Einfügen sind ein wesentlicher Bestandteil beim Schreiben von Programmiercode". Der Vorgang werde darüber hinaus überwiegend verwendet, um ähnliche Funktionalität umzusetzen und werde sehr häufig verwendet. Daran selbst sei zwar nichts falsch, Forschung habe aber gezeigt, dass dadurch die Code-Pflege schwerer werde und auch das Beheben von Sicherheitslücken werde verkompliziert. Stammen die eingefügten Code-Schnipsel gar aus anderen Projekten oder Webseiten, könnte Copy-Paste auch zu Lizenzproblemen führen.
Der Anti-Copy-Paster soll diese und weitere Probleme überwinden, indem der Vorgang erkannt wird. Sollte der eingefügte Code nach einiger Zeit nicht weiter verändert werden und eine entsprechend vorher per Machine Learning erstellte Metrik dies anweisen, wird in der IDE eine Neugestaltung des Codes vorgeschlagen.
Konkret wird dabei vorgeschlagen, den Code herauszulösen und eine eigene Methode dafür zu erstellen. Im Fall von IntelliJ wird dazu die eingebaute Extract-Methode(öffnet im neuen Fenster) verwendet, die auch unabhängig von dem Plugin eingesetzt werden kann. Bisher steht dies nur für Java bereit, nicht für die anderen von Jetbrains unterstützten Programmiersprachen und IDEs. Ob es dazu kommt, ist auch noch nicht klar, so schreibt das Team, dass die Funktion vor allem einer Nutzerevaluation unterzogen werden soll.
- Anzeige Hier geht es zum Handbuch für Softwareentwickler bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.