Michael Olschowski
30. September 2019

Clean ABAP Teil 2/3

Nachdem ich Ihnen im ersten Teil dieser Blogbeitragsreihe bereits gezeigt habe, was Clean ABAP ist und warum sich das Definieren von Prinzipien für sauberen Quellcode auch in Ihrem Unternehmen lohnt, möchte ich im zweiten Teil dieser Blogbeitragsreihe auf die ersten Prinzipien eingehen, die Sie beachten sollten, wenn Sie mit dem Gedanken spielen, Ihren Code ebenfalls an diesen Prinzipien zu orientieren.

Beitragsbild-Wie Sie Ihre SAP-Systemlandschaft optimal auf S_4HANA vorbereiten
In diesem Webinar erfahren Sie, welche Technologien der SAP für der Umstieg auf S/4HANA wirklich wichtig sind und wie Sie das volle Potenzial von S/4HANA ausschöpfen.

Namensgebungen

Neben den festen Ausdrücken in einer Programmiersprache ist es in jedem Programm zwingend erforderlich Konstanten, Variablen, Funktionen und Methoden anzulegen. Beim Anlegen dieser Objekte steht dann zunächst immer die Wahl eines entsprechenden Namens. Clean ABAP gibt für die Namensgebung die folgenden Prinzipien vor.

Beschreibende Namen verwenden

Nutzen Sie bei der Erstellung ihrer Programme sprechende Namen für alle Entwicklungsobjekte. Aus dem vergebenen Namen sollte der Zweck hinter dem Objekt hervorgehen. Zwar ist eine Variable ‘a’ kurz und spart Zeichen, aber der Entwickler, der den Code nach drei Jahren noch verstehen soll, wird sich zunächst fragen, was diese Variable im Kontext des Programms macht. Statt ‘a’ sollte also lieber der Variablenname ‘amount_of_entries’ verwendet werden, auch wenn dieser länger ist. Eine sprechende Benamung sorgt allerdings langfristig gesehen für ein besseres Verständnis und sorgt dafür, dass Kommentare, die den Sinn hinter einer Variablen beschreiben überflüssig werden, da der Kontext durch den Namen ersichtlich ist.

Abkürzungen vermeiden

Innerhalb der Entwicklung sollten Abkürzungen prinzipiell vermieden werden. Denn aus der Abkürzung ‘cust’ ist nunmal auf den ersten Blick nicht ersichtlich, ob es sich bei dem Objekt um ein Objekt für “Customer” oder “Customizing” handelt. Wenn also die Sollten dennoch einmal Abkürzungen verwendet werden, dann sollte darauf geachtet werden, dass diese Abkürzung eine unternehmensweite Verwendung findet und für alle Beteiligten verständlich ist.

Nomen für Klassen und Verben für Methoden

Innerhalb der Prinzipien von Clean ABAP hat es sich durchgesetzt, dass Klassen durch Nomen und Methoden durch Verben bezeichnet werden. Durch diese einheitliche Regeln, ist es auch schon durch den Namen ersichtlich, um was es sich bei dem Entwicklungsobjekt handelt.

Unnötige Wörter vermeiden

Auch wenn sprechende Namen für die Lesbarkeit des Codes vorteilhaft sind, sollten unnötige Wörter bei der Namensgebung vermieden werden. In Clean ABAP werden diese unnötigen Wörter als “Noise-Words” bezeichnet. Gemeint ist damit, dass die Variable ‘account’ genauso sprechend und aussagekräftig ist, wie die Variable ‘account_data’. Also sollte beim Anlegen der Variable genau überlegt werden, ob der Zusatz “data” wirklich erforderlich ist, um den Kontext der Variablen klar zu machen.

Variablen

Für die Verwendung von Variablen gibt Clean ABAP den Anwendern die folgenden wichtigen Prizipien an die Hand.

Verwenden von Inline-Deklarationen

Das Ziel von Clean ABAP ist in erster Linie ein strukturierter und gut lesbarer Quellcode. Daher setzt Clean ABAP auch auf die Inline-Deklaration anstatt Variablen zu Beginn eines Programms über Data-Anweisungen zu definieren. Das kürzt zum einen den Code und sorgt dafür, dass die Definition der Variablen immer dort erfolgt, wo die Variable auch benötigt wird.

Tabellen

Auch für die Arbeit mit Tabellen gibt Clean ABAP einige Prinzipien vor, die es dem Anwender ermöglichen durch minimalen Aufwand wartbareren Code zu schreiben.

INSERT INTO TABLE anstatt APPEND TO

Die Nutzung von INSERT INTO TABLE bietet den Vorteil, dass diese Anweisungen mit allen möglichen Tabellen- und Schlüsseltypen funktioniert und es somit leichter macht die zugrunde liegenden Tabellentypen im Nachhinein zu ändern, wodurch das Refactoring vereinfacht wird.

LOOP AT WHERE anstatt eines geschachtelten IF

Um die Anweisung deutlich zu kürzen, ist die Empfehlung von Clean ABAP, dass statt einer in einem LOOP geschachtelten IF-Anweisung eine LOOP AT WHERE Anweisung verwendet wird. Dadurch wird ersichtlicher, was die eigentliche Intention der Anweisung ist und die Anzahl an Loops kann reduziert werden.

Unser E-Book zu den ABAP Entwicklungsrichtlinien

E-Book: ABAP Entwicklungsrichtlinien

Richtlinien zur Programmierung und Praxistipps zum Thema ABAP-Entwicklung.

Bedingungen

Für die Nutzung von Ausdrücken und Bedingungen gibt Clean ABAP die folgenden Kernprinzipien vor.

IS NOT ist besser als NOT IS

Die Nutzung von IS NOT ist für das menschliche Gehirn einfach leichter zu verarbeiten, als wenn innerhalb des Codes ein NOT IS verwendet wird. Daher sollte die Nutzung der ersten Anweisung bevorzugt werden, weil dies somit auf die Lesbarkeit des vorhandenen Quellcodes einzahlt.

Keine leeren IF-Anweisungen

Innerhalb des bestehenden Quellcodes sollten sämtliche leere IF-Anweisungen – zum Beispiel für die potenzielle Fehlerbehandlung nach dem Aufruf eines Funktionsbausteins – entfernt werden, da die Anweisungen den Code nur umfangreicher machen und nicht zur eigentlichen Logik beitragen. Das stört bei der Wartung und Erweiterung den Lesefluss und verstößt somit gegen die grundlegenden Prinzipien von Clean ABAP.

Im dritten Teil dieser Reihe werde ich Ihnen weitere konkrete Prinzipien näher bringen. Sollten Sie zu diesem Beitrag Fragen oder Anmerkungen haben, dann freue ich mich über Ihren Kommentar.



Das könnte Sie auch interessieren

Das zentrale Element von Unit Tests sind die verwendeten Testklassen. Diese sollten nicht über Parameter verfügen und sind somit in Ihrer Anwendung und Interpretation eindeutig.

weiterlesen

Nachdem wir bereits in dem vorherigen Beitrag der Serie: Unit Testing Testklassen festgestellt haben, wie genau eine Testklasse aussieht, demonstriere ich das ganze anhand eines simplen Beispiels nun im Einsatz.

weiterlesen

Wenn Sie sich schon einmal mit Entwicklung - gerne auch unabhängig von SAP - auseinandergesetzt haben, dann kennen Sie dieses Problem höchstwahrscheinlich. Sie haben den Auftrag ein bestimmtes Programm, einen […]

weiterlesen

Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Kontaktieren Sie uns!
Alexander Koessner-Maier
Alexander Kössner-Maier Kundenservice