Abap-Champions-League
Für den Abap-Trainer Alexander Maetzing ist „die Objektorientierung speziell in Abap nicht die allein selig machende Lehre“.
Für die Lösung einfacher Aufgaben, beispielsweise Selektion, Verarbeitung und Ausgabe von Daten, wäre eine Klassenbildung und Methodenentwicklung vollkommen überdimensioniert.
Selbst bei der Entwicklung von Applikationen für mobile Endgeräte übernimmt die prozedurale Abap-Programmierung weiterhin eine wichtige Funktion. Zwar nicht in der Frontendprogrammierung selbst, aber bei der Aufbereitung und dem Abruf von Daten im Backend.
Generell seien aber mobile Applikationen und objektorientierte Programmierung, kurz OOP, untrennbar miteinander verbunden, da es keine bekannten prozeduralen Alternativen für die Frontendentwicklung gibt. Mit SAPUI5 hat SAP ein ebenso funktionelles wie optisch attraktives Oberflächendesign geschaffen, das sich nicht hinter den etablierten Oberflächensprachen und -konzepten verstecken muss.
Im Zusammenspiel von SAPUI5 und den Abap-Backendfunktionen entstehen die sogenannten „Fiori-Apps“. Die großen Vorteile der OOP sieht der promovierte Physiker in der gemeinsamen Betrachtung von Daten und Funktionen (Kapselung), in der Vererbung und dem Polymorphismus.
„Diese drei großen Konzepte erlauben es, gewohnte Pfade zu verlassen und Daten auf eine neue Art und Weise zu bearbeiten.“
Die der Genetik entlehnten Begriffe beschreiben die Möglichkeit, Programmierungen zu vererben, neue Klassen aus bestehenden Klassen abzuleiten und so Nachkommen zu schaffen, die eine Erweiterung der Elternklasse darstellen.
Dabei bleiben Elternklasse und Nachkommen dauerhaft verbunden, wie im wirklichen Leben. Dadurch entsteht eine Klassen-Familie, deren Kommunikationsmethoden allesamt einen ähnlichen „Charakter“ aufweisen.
Diese Methoden und Funktionen werden als polymorph bezeichnet und sind damit „Genvarianten einer Population“.
Beide Lehren kennen
Die Entscheidung, ob Polymorphismus, Vererbung und Datenkapselung die richtigen Konzepte sind, um ein Projekt zu gestalten oder eine Anforderung optimal abzubilden, muss im Einzelfall entschieden werden. Dabei spielt es eine erhebliche Rolle, ob und was bereits an Programmierung vorhanden ist.
„Um entscheiden zu können, ob Abap Objects oder prozedurale Abap-Programmierung der richtige Weg ist, muss man auf jeden Fall beide Sprachen und beide Philosophien kennen“
meint Maetzing. Da stellt sich die Frage:
„Wo und wie lerne ich, in Abap Objects zu programmieren?“
Für den versierten Abap-Coach liegt die Antwort auf der Hand.
„Ich bin ein Fan des guten alten Klassenraumtrainings.“
Denn gerade in dieser komplexen und abstrakten Materie sei es von unschätzbarem Vorteil, individuell auf Fragen eingehen zu können, unterschiedliche Erklärungsansätze einzubringen und verständliche Bilder zu zeichnen. Die Fragen sollten dann beantwortet werden, wenn sie entstehen, um den Schüler nicht abzuhängen.
Auch der Lerneffekt durch die Fragen anderer Schulungsteilnehmer sei nicht zu unterschätzen. Doch damit sei es nicht getan, führt der langjährige Abap-Trainer aus. Um die gelernten Grundlagen nachhaltig zu vertiefen, sollte sich an die Schulung ein Projekt anschließen, in dem mit objektorientierten Ansätzen programmiert wird.
„Nur im Praxiseinsatz lässt sich Objektorientierung wirklich lernen.“
Erst zu diesem Zeitpunkt sollte der Abap-Objects-Newcomer andere Lernumgebungen, wie Bücher, Communities oder sogar Google, zur Unterstützung heranziehen, rät der Experte.
Offen sein für die OOP-Idee
Maetzing hat in seinen Jahren als Trainer und Berater bereits unzählige Abap-Entwickler von der Objektorientierung begeistert. Einer von ihnen ist Marc Bertelmann, G.I.B, der bereits vor zwei Jahren einen mehrwöchigen Abap-Workshop, inklusive eines fünftägigen Abap-Objects-Spezialteils, bei Maetzing absolviert hat.
„Am Ende des Workshops beherrscht man zwar die Syntax und ist in der Lage, Klassen und Objekte zu bilden, aber die eigentliche Kunst der OOP liegt in der Betrachtung und Analyse der Problemstellung selbst, der Erkennung von Mustern im Anforderungsprofil und der abstrahierten Abbildung der Realität.“
Auch Bertelmann sieht klare Vorteile im persönlichen Training und rät von sturer Lektüre als Einstieg ab. OOP bedeute ganz klar ein Umdenken, man müsse sich der Idee öffnen. Maetzing wüsste die Teilnehmer thematisch abzuholen, zu begeistern und zu inspirieren.
„OOP ist ebenso komplex wie faszinierend. Zieht man den Vergleich zum Fußball, dann wären wir bei der Objektorientierung wohl in der Champions League unterwegs.“