diff --git a/docs/motivation-for-adt/index.md b/docs/motivation-for-adt/index.md index bf5106c..c18fd9a 100644 --- a/docs/motivation-for-adt/index.md +++ b/docs/motivation-for-adt/index.md @@ -2,7 +2,7 @@ layout: page title: Motivation für ADT permalink: /motivation-for-adt/ -prev_page_link: /introduction-eclipse-adt/ +prev_page_link: /introduction-eclipse/ prev_page_title: Einleitung Eclipse und ADT next_page_link: /working-with-adt/ next_page_title: Arbeiten mit ADT @@ -69,6 +69,8 @@ Die Wartbarkeit von Entwicklungsartefakten ist eine zentrale Herausforderung der Die ADT unterstützen typische Refactoring-Aufgaben mit Hilfe der [Quick Assists](https://help.sap.com/docs/ABAP_PLATFORM_NEW/c238d694b825421f940829321ffa326a/4ec1d7ba6e391014adc9fffe4e204223.html)-Funktionen, zu denen auch die Quick Fixes gehören. Die Quick Assists sind kontextsensitiv. Sie können beispielsweise komplexe Quelltextabschnitte in kleinere, neue und vor allem eigenständige Methoden auslagern, was die Verständlichkeit und damit die Wartbarkeit deutlich erhöht. Ohne Unterstützung durch die Quick Assists ist ein solches iteratives Vorgehen deutlich arbeitsintensiver und auch fehleranfälliger. +Seit 2023 unterstützt auch das neue Plug-in [ABAP Cleaner](/ADT-Leitfaden//plug-ins/open-source-adt-plugins/#ABAPCleaner) das Refactoring von ABAP-Code. Dieses kann über 60 Regeln des Clean ABAP Styleguides nach Wunsch automatisch, interaktiv oder auch im Read-Only Modus anwenden und damit die Lesbarkeit des Codes verbessern. + Weitere und detailliertere Informationen zum Refactoring und Werkzeugen, die Ihnen in den ADT dafür zur Verfügung gestellt werden, finden Sie in Kapitel [Arbeiten mit ADT](/ADT-Leitfaden/working-with-adt). ## Sie passen die Darstellung Ihrer Entwicklungsumgebung gerne Ihren Wünschen an. @@ -89,6 +91,9 @@ Eine Auswahl dieser Plug-ins wird in Kapitel [Plug-ins](/ADT-Leitfaden/plug-ins) In der Vergangenheit haben verschiedene ABAP-Entwickler von dieser Möglichkeit bereits Gebrauch gemacht und eigene Plug-ins entwickelt, die sie der SAP-Community kostenlos zur Verfügung stellen. Ein Beispiel hierfür sind die [ABAP Quick Fix](https://marketplace.eclipse.org/content/abap-quick-fix). Dies ist eine Erweiterung der im Standard der ADT angebotenen Quick Fixes zur Unterstützung der automatischen Konvertierung der klassischen ABAP-Syntax in das jeweilige moderne ABAP-Syntax-Pendant. +Seit 2023 gibt es als neues Eclipse Plugin den [ABAP Cleaner](/ADT-Leitfaden//plug-ins/open-source-adt-plugins/#ABAPCleaner). Mit diesem Tool ist ein den Clean-ABAP Richtlinien entsprechendes Refactoring (teil-)automatisiert möglich. +Da der ABAP Cleaner rein client-basiert arbeitet, ist die Nutzung des Tools mit jeder Backend Version möglich. Der ABAP-Cleaner kann auch im Read-Only Modus bzw. als Standalone-Tool verwendet werden. Hierbei kann Code auch importiert, bearbeitet und wieder exportiert werden. Somit können z.B. auch Enhancement-Sections mittels ABAP-Cleaner überarbeitet werden. Mehr Informationen hierzu finden sich in den Kapiteln [Arbeiten mit ADT](/ADT-Leitfaden/working-with-adt/#Refactoring) und [Plug-ins](/ADT-Leitfaden//plug-ins/open-source-adt-plugins). + ## Sie kennen Eclipse bereits von anderen Programmiersprachen. Prima! Eclipse als Grundlage der ADT ist in verschiedenen Unternehmen bereits im Einsatz. Das liegt daran, dass es z. B. für JAVA eine der am weit verbreitetsten Entwicklungsumgebungen ist. JAVA wiederum ist eine häufig verwendete Programmiersprache (vgl. [TIOBE-Index](https://www.tiobe.com/tiobe-index/)) und spielt daher in vielen Entwicklungsprojekten eine Rolle. Daneben ist Eclipse aber auch für andere Entwicklungszwecke einsetzbar, z. B. für die Entwicklung in der Programmiersprache Python oder der Arbeit mit Daten im Extensible-Markup-Language-Format (XML). @@ -160,4 +165,4 @@ Uwe Fetzer: "*Schneller, komfortabler, sicherer kann man ABAP Clean Code nicht e Sebastian Freilinger-Huber: *"Lieber heute als morgen die 'Komfortzone SE80' verlassen - es lohnt sich. Sollten Sie noch zweifeln, finden Sie zahlreiche Argumente für den Umstieg in den folgenden Kapiteln\".* -Thomas Foehn: "*Der Umstieg braucht etwas Durchhaltevermögen und das berühmte Verlassen der eigenen Komfortzone. Doch Quickfixes, Refactorings, ElementInfos oder die Möglichkeit, sich leicht systemübergreifend durch die Objekte zu navigieren machen eine Entwicklung ohne ADT für mich mittlerweile unmöglich.*" \ No newline at end of file +Thomas Foehn: "*Der Umstieg braucht etwas Durchhaltevermögen und das berühmte Verlassen der eigenen Komfortzone. Doch Quickfixes, Refactorings, ElementInfos oder die Möglichkeit, sich leicht systemübergreifend durch die Objekte zu navigieren machen eine Entwicklung ohne ADT für mich mittlerweile unmöglich.*" diff --git a/docs/plug-ins/open-source-adt-plugins.md b/docs/plug-ins/open-source-adt-plugins.md index e39831d..267496f 100644 --- a/docs/plug-ins/open-source-adt-plugins.md +++ b/docs/plug-ins/open-source-adt-plugins.md @@ -16,6 +16,24 @@ nav_order: 2 1. TOC {:toc} +## ABAP Cleaner +Der ABAP Cleaner ist seit Sommer 2023 verfügbar und unterstützt Entwickler bei der Erstellung von ABAP Code, der den Richtlinien des Clean-ABAP Styleguides entspricht. Das Plugin lässt sich genau wie andere Eclipse Plugins und damit auch wie ADT in Eclipse mittels "Install new Software" einfach installieren. Das Repository findet sich in GitHub unter: +[https://sap.github.io/abap-cleaner/updatesite](https://sap.github.io/abap-cleaner/updatesite). + +Da der ABAP Cleaner rein Client basiert ist, gibt es keine direkten Abhängigkeiten zu der ABAP Version des Backends. Da manche ABAP Cleaner Regeln nicht auf allen ABAP Releases anwendbar sind, z.B. Inline Deklarationen oder Einsatz neuer ABAP Statements, kann in der ABAP Cleaner Konfiguration das ABAP Release eingestellt werden. Dementsprechend werden auch nur anwendbare Regeln verwendet. + +Mittels der "Show Read-Only Preview" Funktion kann auch ABAP Code aus dem SAP-GUI (bei Enhancements) oder aus anderen Systemen per Copy-and-Paste oder als Textdatei eingefügt, bereinigt und anschließend der bereinigte Code exportiert werden. +Die tatsächlich angewendeten Regeln werden in einem extra Fenster angezeigt. + +Für Entwicklerteams besteht die Möglichkeit eigene Profile zu konfigurieren. In den Profilen werden die Regeln ausgewählt, die mit dem Profil angewendet werden sollen. In dieser Konfigurationsansicht wird die Auswirkung des Code Cleanings anhand von Beispielen dargestellt und man erhält so auch einen guten Überblick welche Änderungen die Regeln bewirken. +Für den Einstieg und für detaillierte Informationen empfehlen sich folgende Blogeinträge: +[ABAP cleaner project – open, configurable, and automated](https://blogs.sap.com/2023/10/30/abap-cleaner-project-open-configurable-and-automated/) +[ABAP Tools for Clean ABAP](https://blogs.sap.com/2023/10/09/abap-tools-for-clean-abap/) + +Das ABAP Cleaner Plug-in ist ein Tool das unbedingt eingesetzt und bei allen ADT Installationen mitinstalliert werden sollte. +Warum wurde die Funktion nicht einfach in ADT implementiert wenn diese so grundlegend und wichtig ist? +Die Auslieferung als separates Plugin durch SAP und damit eine Entkopplung vom Release-Zyklus des ADT-Kerns ermöglicht eine flexiblere und schnellere Auslieferung von neuen Features im ABAP Cleaner Kontext. + ## ABAP Favorites Das ABAP Favorites Plug-in wurde entwickelt, um die Funktionalität des SAP GUI User Menu abzubilden. In diesem Menü kann jeder Benutzer Transaktionen, Reports oder URLs seinen Favoriten hinzufügen und diese nach seinen persönlichen Vorlieben strukturieren. diff --git a/docs/plug-ins/plugin-development.md b/docs/plug-ins/plugin-development.md index b4c0183..02ada98 100644 --- a/docs/plug-ins/plugin-development.md +++ b/docs/plug-ins/plugin-development.md @@ -61,7 +61,7 @@ Dieses Plug-in erlaubt es, kompilierten Source-Code lesbar anzuzeigen. Es ist so #### Web Developer Tools -Marketplace Link: [https://marketplace.eclipse.org/content/eclipse-web-developer-tools-0/promo](https://marketplace.eclipse.org/content/eclipse-web-developer-tools-0/promo). +Marketplace Link: [https://marketplace.eclipse.org/content/eclipse-web-developer-tools-0/](https://marketplace.eclipse.org/content/eclipse-web-developer-tools-0/). Wenn man für sein Plug-in auch eine Hilfe anbieten möchte, erweitert dieses Plug-in Eclipse um Editoren mit Syntax-Highlighting für die typischen Web-Dateiendungen (css, html etc.). @@ -394,4 +394,4 @@ IStatus logonStatus = AdtLogonServiceUIFactory.createLogonServiceUI() ## Projekt-Set-up mit Maven -Neben den Standardmöglichkeiten zur Entwicklung von Plug-ins, Features und Update-Sites, welche mit der *Eclipse IDE for RCP and RAP Developers* geliefert werden, gibt es auch noch die Option, Eclipse Tycho zu verwenden. Eclipse Tycho ist eine Sammlung von Plug-ins für Apache Maven. Weitere Informationen können der [Projektseite](https://github.com/eclipse-tycho/tycho) von Tycho entnommen werden. Ein Tutorial zur Plug-in-Entwicklung mit Tycho gibt es [hier](https://github.com/eclipse-tycho/tycho). \ No newline at end of file +Neben den Standardmöglichkeiten zur Entwicklung von Plug-ins, Features und Update-Sites, welche mit der *Eclipse IDE for RCP and RAP Developers* geliefert werden, gibt es auch noch die Option, Eclipse Tycho zu verwenden. Eclipse Tycho ist eine Sammlung von Plug-ins für Apache Maven. Weitere Informationen können der [Projektseite](https://github.com/eclipse-tycho/tycho) von Tycho entnommen werden. Ein Tutorial zur Plug-in-Entwicklung mit Tycho gibt es [hier](https://github.com/eclipse-tycho/tycho). diff --git a/docs/working-with-adt/features/refactoring.md b/docs/working-with-adt/features/refactoring.md index 4895e0f..68300f0 100644 --- a/docs/working-with-adt/features/refactoring.md +++ b/docs/working-with-adt/features/refactoring.md @@ -36,6 +36,7 @@ In der Vergangenheit war dies mit der SE80 meist mit hohem Aufwand verbunden. Du Mit den ADT hat sich diese Situation nun verändert. Existieren keine automatisierten Tests als doppelter Boden, so ist es immer noch möglich, sogenannte Save Refactorings durchzuführen, die wir an dieser Stelle beschreiben möchten. Ein Save Refactoring kennzeichnet sich dadurch, dass es Tool-gestützt, d. h. durch Funktionen der IDE oder auch mit zusätzlichen Plug-ins, durchgeführt wird. Dadurch entfällt das Risiko, durch manuelle Änderungen neue Fehler in den Code einzubauen. Durch die Automatisierung können Refactorings leicht durchgeführt werden und damit zum Bestandteil der täglichen Arbeit werden. +## Refactoring mit Quick Assists Die ADT bieten über die Quick Assists (**STRG+1**) folgende Refactorings an: 1. Rename Identifier -- Umbenennung innerhalb eines Codeblocks oder global @@ -51,4 +52,21 @@ Da z. B. die Rename-Funktion Identifier nicht nur innerhalb der Einheit, sondern Die Extract-Funktion analysiert den markierten Code, bietet Hilfestellung bei der Parametervergabe und ersetzt die Stelle des Codes mit dem Aufruf der neu erstellten Methode. Wenn die zu extrahierende Methode mit einem Kommentar versehen ist, wird dieser als Vorschlag für die Benennung der Methode herangezogen. -Weiterhin empfehlen die Autoren die Verwendung des Plug-ins [ABAP Quick Fix](https://marketplace.eclipse.org/content/abap-quick-fix) von Lukasz Pegiel, welches im Kapitel [Plug-ins](/ADT-Leitfaden/plug-ins) beschrieben wird. Generell bieten die mittels Quick Fixes bereitgestellten Refactoring Tools in ADT sowohl bei der Erstellung als auch bei der Überarbeitung von bestehendem Code eine enorme Hilfe. Die Nutzung dieses hilfreichen Plug-ins verbessert auf diese Weise einerseits den aktuell bearbeiteten Code, hilft aber auch bei der Erstellung von neuem Code, die neueren Sprachkonstrukte selbst anzuwenden, falls man darin noch wenig geübt ist. \ No newline at end of file +## Refactoring Plugins +### ABAP Cleaner Plug-in +Eine noch recht neue Möglichkeit besteht in der Nutzung des Plug-ins [ABAP Cleaner](/ADT-Leitfaden//plug-ins/open-source-adt-plugins/#ABAPCleaner).
+Dieses Plugin bietet verschiedene Möglichkeiten den Code gemäß des Clean-ABAP Styleguides zu optimieren. Der ABAP Cleaner wendet mehr als 60 Regeln des Clean-ABAP Styleguides an und automatisiert, was automatisierbar ist. Während die ADT Refactoring Funktionen vorrangig für Strukturänderung des Codes verwendet werden, wendet der ABAP Cleaner Regeln an, +die die Lesbarkeit des Codes verbessern, z.B. durch Ersetzung von Call Method durch funktionale Aufrufe, +die Anwendung einheitlicher Formatierung bzgl. Leerzeichen und Leerzeilen und die Ersetzung von Datendefinitionen durch Inline-Deklarationen. + +Als weitere und wichtige Unterscheidung zum Formatter, kann die Anwendung des ABAP Cleaner auch selektiv nur auf einzelne Methoden oder gar Selektionen beschränkt werden. Dies ist wichtig wenn vorhandener Code überarbeitet werden muss, aber nicht die ganze Klasse vom ABAP-Cleaner geändert werden soll.
+Die Funktionen des ABAP Cleaners finden sich im Bereich Source-Code des Kontextmenues (**ALT+SHIFT+S**). +Es kann dabei eine vollautomatisierte Variante, eine Interaktive Variante oder die Read-Only Option verwendet werden. + +Der ABAP Cleaner bringt die meisten Vorteile, wenn dieser bereits bei der Erstellung von Code verwendet wird und damit neu erstellte Artefakte automatisch den Clean-Code Regeln entsprechen.
+Als Nebeneffekt dieser Verwendung werden die Clean-ABAP Regeln in der Praxis sichtbar und ein Entwickler wird die von ABAP-Cleaner angewandten Regeln kurz- bis mittelfristig automatisch bei neuen Entwicklungen selbst anwenden.
+Wird der ABAP Cleaner konsequent im gesamten Entwicklungsteam eingesetzt, fördert es die Verständlichkeit und Lesbarkeit von Code im gesamten Team, da die selben Regeln einheitlich angewendet werden. Weitere Informationen zum ABAP Cleaner finden sie im Abschnitt [Plug-ins](/ADT-Leitfaden//plug-ins/open-source-adt-plugins/). + + +### ABAP-Quick-Fix Plug-in +Weiterhin empfehlen die Autoren die Verwendung des Plug-ins [ABAP Quick Fix](https://marketplace.eclipse.org/content/abap-quick-fix) von Lukasz Pegiel, welches im Kapitel [Plug-ins](/ADT-Leitfaden/plug-ins) beschrieben wird. Generell bieten die mittels Quick Fixes bereitgestellten Refactoring Tools in ADT sowohl bei der Erstellung als auch bei der Überarbeitung von bestehendem Code eine enorme Hilfe. Die Nutzung dieses hilfreichen Plug-ins verbessert auf diese Weise einerseits den aktuell bearbeiteten Code, hilft aber auch bei der Erstellung von neuem Code, die neueren Sprachkonstrukte selbst anzuwenden, falls man darin noch wenig geübt ist.