Haeuptle / Hoffmann / Jordão | Clean ABAP | E-Book | www.sack.de
E-Book

E-Book, Deutsch, 398 Seiten

Reihe: SAP Press

Haeuptle / Hoffmann / Jordão Clean ABAP

Lesbarer und wartbarer ABAP-Code
1. Auflage 2022
ISBN: 978-3-8362-8661-9
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

Lesbarer und wartbarer ABAP-Code

E-Book, Deutsch, 398 Seiten

Reihe: SAP Press

ISBN: 978-3-8362-8661-9
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



Ihr Leitfaden zur besseren ABAP-Programmierung!

Schluss mit unleserlichen ABAP-Programmen! Dieses offizielle Begleitbuch zum Repository »Clean ABAP« auf GitHub zeigt Ihnen, wie Sie intuitiv verständlichen und leicht zu wartenden Code schreiben. Gespickt mit Best Practices zu Namenskonventionen, Kommentaren und Formatierungen, ist dieser Leitfaden unverzichtbar für den Programmieralltag und dient als offizielle Programmierrichtlinie für SAP S/4HANA. Für das Autorenteam waren insbesondere die Bücher »Clean Code« von Robert C. Martin und »Code Complete« von Steve McConnell eine Inspiration für ihr eigenes Werk.

  • Clean Code für ABAP-Programme
  • Praktische Beispiele für Klassen, Methoden, Interfaces, Tabellen und Variablen
  • Namenskonventionen, Formatierung, Kommentare u. v. m.

Aus dem Inhalt:

  • Klassen und Interfaces
  • Methoden
  • Namen von Objekten
  • Variablen und Literale
  • Interne Tabellen
  • Kontrollfluss
  • Kommentare
  • Formatierung
  • Fehlerbehandlung
  • Unit-Tests
  • Pakete
  • Clean ABAP im Team umsetzen


Klaus Häuptle ist Entwickler, Trainer und Product Owner im Bereich Anwendungsentwicklung. Für SAP hat er an der Entstehung verschiedener Produkte mitgewirkt, die auf unterschiedlichen Technologien basierten. Er unterstützt die SAP-Community dabei, Wissen zu teilen und Methoden und Arbeitsmittel zu verbessern. Unter anderem beeinflusste er die Verbesserung der Testmöglichkeiten für ABAP, SAP HANA und SAPUI5. Zusammen mit Florian Hoffmann entwickelte er einen zunächst internen Clean-ABAP-Leitfaden, der später als Open-Source-Projekt veröffentlicht wurde und als Grundlage dieses Buches dient.
Haeuptle / Hoffmann / Jordão Clean ABAP jetzt bestellen!

Weitere Infos & Material




  Einleitung ... 17


  1.  Einführung ... 23


       1.1 ... Was ist Clean ABAP? ... 23

       1.2 ... Wie kann ich mit Clean ABAP anfangen? ... 26

       1.3 ... Wie gehe ich mit Legacy-Code um? ... 28

       1.4 ... Wie kann ich Code automatisch prüfen? ... 30

       1.5 ... Wie steht Clean ABAP im Verhältnis zu anderen Programmierleitfäden? ... 32

       1.6 ... Wie kann ich mich in der Clean-ABAP-Community engagieren? ... 33

       1.7 ... Zusammenfassung ... 34



  2.  Die Programmiersprache ABAP ... 35


       2.1 ... Legacy-Code ... 35

       2.2 ... Performance ... 38

       2.3 ... Objektorientierte vs. prozedurale Programmierung ... 41

       2.4 ... Funktionale vs. prozedurale Sprachkonstrukte ... 49

       2.5 ... Obsolete Sprachelemente ... 52

       2.6 ... Entwurfsmuster ... 54

       2.7 ... Zusammenfassung ... 56



  3.  Klassen und Interfaces ... 59


       3.1 ... Objektorientierung ... 59

       3.2 ... Geltungsbereich und Sichtbarkeit ... 90

       3.3 ... Konstruktoren ... 99

       3.4 ... Zusammenfassung ... 111



  4.  Methoden ... 113


       4.1 ... Objektorientierte Programmierung ... 113

       4.2 ... Parameter ... 121

       4.3 ... Methodeninhalt ... 137

       4.4 ... Methoden aufrufen ... 148

       4.5 ... Zusammenfassung ... 153



  5.  Namen ... 155


       5.1 ... Gute Namen ... 155

       5.2 ... Eigenheiten von ABAP ... 162

       5.3 ... Affixe: Präfixe, Suffixe und Infixe ... 163

       5.4 ... Mit Legacy-Code umgehen ... 166

       5.5 ... Zusammenfassung ... 167



  6.  Variablen und Literale ... 169


       6.1 ... Variablen ... 170

       6.2 ... Konstanten ... 177

       6.3 ... Zeichenketten ... 186

       6.4 ... Boolesche Ausdrücke ... 188

       6.5 ... Reguläre Ausdrücke ... 191

       6.6 ... Das Schlüsselwort REDUCE ... 193

       6.7 ... Zusammenfassung ... 196



  7.  Interne Tabellen ... 197


       7.1 ... Die richtige Tabellenart verwenden ... 198

       7.2 ... DEFAULT KEY vermeiden ... 200

       7.3 ... Zeilen hinzufügen mit INSERT INTO TABLE und APPEND TO ... 201

       7.4 ... Prüfen, ob eine Tabelle eine bestimmte Zeile enthält ... 202

       7.5 ... Tabelleninhalte abfragen ... 204

       7.6 ... Die Anweisung LOOP AT ... WHERE ... und verschachtelte IF-Anweisungen ... 206

       7.7 ... Unnötige Tabellenabfragen identifizieren ... 207

       7.8 ... Tabellenzeilen blockweise und Zeile für Zeile bearbeiten ... 208

       7.9 ... DESCRIBE TABLE und die Funktion LINES ... 209

       7.10 ... Zusammenfassung ... 210



  8.  Kontrollfluss ... 211


       8.1 ... Das Schlüsselwort IF ... 212

       8.2 ... Schachtelungstiefe ... 217

       8.3 ... Bedingungen ... 218

       8.4 ... Das Schlüsselwort CASE ... 225

       8.5 ... Die Anweisung DO 1 TIMES ... 229

       8.6 ... Zusammenfassung ... 233



  9.  Kommentare ... 235


       9.1 ... Präziser Code benötigt keine Kommentare ... 235

       9.2 ... Kommentare richtig platzieren und verwenden ... 238

       9.3 ... Kommentare, die Sie vermeiden sollten ... 239

       9.4 ... FIXME-, TODO- und XXX-Kommentare ... 242

       9.5 ... Spezielle Kommentare: ABAP Doc, Pragmas und Pseudokommentare ... 244

       9.6 ... Zusammenfassung ... 245



10.  Formatierung ... 247


       10.1 ... Einen konsistenten Stil verfolgen ... 248

       10.2 ... Den Code fürs Lesen optimieren ... 249

       10.3 ... Der Pretty Printer ... 250

       10.4 ... Wie viele Anweisungen pro Zeile? ... 252

       10.5 ... Zeilenlänge ... 252

       10.6 ... Code straffen ... 254

       10.7 ... Leerzeilen ... 255

       10.8 ... Zuweisungen ausrichten ... 256

       10.9 ... Variablendeklarationen ausrichten ... 257

       10.10 ... Wohin mit den Klammern? ... 257

       10.11 ... Methodenparameter formatieren ... 258

       10.12 ... Zusammenfassung ... 263



11.  Fehlerbehandlung ... 265


       11.1 ... Nachrichten ... 265

       11.2 ... Rückgabewerte ... 269

       11.3 ... Ausnahmen ... 274

       11.4 ... Ausnahmen auslösen und behandeln ... 284

       11.5 ... Zusammenfassung ... 291



12.  Unit Tests ... 293


       12.1 ... Testklassen ... 294

       12.2 ... Testmethoden ... 304

       12.3 ... Die getestete Klasse ... 309

       12.4 ... Namen von Testklassen und -methoden ... 310

       12.5 ... Assertions ... 313

       12.6 ... Test-Doubles ... 325

       12.7 ... Test-Seams ... 337

       12.8 ... Konzepte zum Umgang mit Unit Tests ... 339

       12.9 ... Zusammenfassung ... 343



13.  Pakete ... 345


       13.1 ... Allgemeine Paketkonzepte ... 345

       13.2 ... Paketkonzept in ABAP ... 347

       13.3 ... Optionen für das Paketdesign ... 353

       13.4 ... Paketprüfungen ... 358

       13.5 ... Konsequenzen einer mangelhaften oder fehlenden Paketstrategie ... 367

       13.6 ... Zusammenfassung ... 368



14.  Wie Sie Clean ABAP umsetzen ... 369


       14.1 ... Gemeinsames Verständnis der Teammitglieder ... 370

       14.2 ... Den Broken-Window-Effekt angehen ... 374

       14.3 ... Code-Reviews und Lernen ... 378

       14.4 ... Clean Code Advisor ... 382

       14.5 ... Lerntechniken ... 382

       14.6 ... Continuous Learning in funktionsübergreifenden Teams ... 387

       14.7 ... Zusammenfassung ... 390



  Das Autorenteam ... 391


  Index ... 393


Einleitung


Clean Code ist seit vielen Jahren fester Bestandteil der agilen Softwareentwicklung. Code wird häufiger gelesen als geschrieben, daher ist es essenziell, dass Code leicht verständlich ist und seine Ziele klar erkennbar sind. Mit seinem Fokus auf Lesbarkeit und Verständlichkeit trägt Clean Code wesentlich zur Wartbarkeit und Testbarkeit von Programm-Code bei.

Dieses Buch ist eine Sammlung von Regeln, Richtlinien und Empfehlungen, die Ihren ABAP-Code »sauber« machen: lesbar, verständlich, wartbar und testbar. Es bespricht Entwurfsmuster und Sprachmuster ebenso wie generelle Abwägungen beim Softwaredesign. Auch Prozesse und organisatorische Feinheiten bei der Umsetzung von Clean Code in einem Unternehmen werden wir im Laufe des Buches besprechen.

An wen sich dieses Buch richtet


Dieses Buch haben wir vorrangig für ABAP-Entwicklerinnen und -Entwickler sowie Testerinnen und Tester mit einem Hang zur Entwicklung geschrieben. Sie finden hier viele verschiedene Code-Beispiele mit technischen Details.

Clean ABAP ist für Neulinge und erfahrene Programmiererinnen und Programmierer gleichermaßen geeignet. Je nach Kenntnisstand werden Sie möglicherweise von unterschiedlichen Themen profitieren oder sich mit bestimmten Bereichen näher auseinandersetzen wollen. Die meisten Ideen und Empfehlungen setzen jedoch keine großen Vorkenntnisse voraus, und Sie werden sie von der ersten Zeile Code an einsetzen können.

Wir ermutigen insbesondere auch Softwarearchitektinnen und -architekten, sich mit diesem Buch und Clean ABAP generell auseinanderzusetzen. Einige Themen in diesem Buch beschäftigen sich direkt mit Fragen, die typischerweise in den Aufgabenbereich der Architektinnen und Architekten fallen, z. B. Pakete und Objektorientierung. Selbst wenn Sie selbst nicht (mehr) programmieren, sollten Sie auch über die anderen Bereiche zumindest grundlegend Bescheid wissen, um sich mit Ihrem Team darüber austauschen zu können.

Wir haben in dieses Buch gezielt Kapitel aufgenommen, die Ihnen helfen sollen, mit Clean ABAP anzufangen, egal wann, egal in was für einer Art von Projekt und egal in welcher Art von Team Sie mit ABAP zu tun haben.

Wie dieses Buch aufgebaut ist


Dieses Buch beginnt mit einer Einführung in Clean ABAP und einer generellen Betrachtung der ABAP-Programmiersprache in Kapitel 1, »Einführung«, und Kapitel 2, »Die Programmiersprache ABAP«. In Kapitel 3, »Klassen und Interfaces«, und Kapitel 4, »Methoden«, besprechen wir Methoden, mit denen Sie größere Entwicklungsteile wie Klassen, Interfaces und Methoden sauber strukturieren können. Kapitel 5, »Namen«, beschäftigt sich mit dem zentralen Thema der Namensgebung. Kapitel 6 bis Kapitel 11 gehen auf Detailbereiche ein, von Variablen über Literale bis zur Fehlerbehandlung. Unit Tests in ABAP werden im gleichnamigen Kapitel 12 genauer untersucht, gefolgt von Kapitel 13, »Pakete«. Kapitel 14, »Wie Sie Clean ABAP umsetzen«, beschäftigt sich schließlich eingehender damit, wie Sie Clean ABAP auf individueller, Team- oder Organisationsebene einführen können.

Die Kapitel 1 und 2 legen die Grundlage für die weiteren Erklärungen in diesem Buch, und Sie sollten sie daher nicht überspringen. Die Kapitel 3 und 4 gehören eng zueinander, da Klassen, Interfaces und Methoden natürlich ineinander übergehen. Die übrigen Kapitel sind unabhängiger, und Sie können sie problemlos in beliebiger Reihenfolge lesen oder auch als Referenz für später nutzen. Abschnitt 1.2, »Wie kann ich mit Clean ABAP anfangen?«, macht einen genaueren Vorschlag, welche Kapitel sich besonders für Anfängerinnen, Skeptiker oder Alleingelassene eignen. Das letzte Kapitel können Sie jederzeit heranziehen, wenn Sie Probleme mit der Umsetzung von Clean ABAP in Ihrem Arbeitskreis haben.

Hier eine genauere Inhaltsangabe der Kapitel:

  • Kapitel 1, »Einführung«
    Dieses Kapitel führt in die Konzepte von Clean ABAP ein. Warum ist es wichtig, sauberen Code zu schreiben? Wie fange ich damit an? Sie erfahren auch, wie sich Clean ABAP zu anderen Leitfäden verhält und mit welchen Ressourcen Sie Ihr Verständnis von Clean ABAP vertiefen können.

  • Kapitel 2, »Die Programmiersprache ABAP«
    Dieses Kapitel betrachtet die Programmiersprache ABAP an sich und ihre grundlegenden Besonderheiten. Sie erfahren mehr darüber, wie Sie mit Legacy-Code und Performance umgehen können. Allgemeine Fragen zu den Themen Objektorientierung, Sprachelementen und Entwurfsmustern werden geklärt.

  • Kapitel 3, »Klassen und Interfaces«
    Dieses Kapitel beschreibt, wie sich Clean ABAP auf Klassen und Interfaces auswirkt. Wir erforschen, welche Teile der Objektorientierung Ihnen dabei helfen, ein sauberes Design zu erhalten, und welche Sie besser vermeiden sollten.

  • Kapitel 4, »Methoden«
    Dieses Kapitel untersucht Methoden. Wie können Sie sie übersichtlich definieren? Wie kurz müssen sie sein, um verständlich zu bleiben? Wie können Sie Komplexität durch sorgsamen Umgang mit Parametern reduzieren?

  • Kapitel 5, »Namen«
    Dieses Kapitel zeigt Ihnen, wie extrem sich gute Namen auf Lesbarkeit auswirken. Wir vergleichen gute mit schlechten Namen und geben Ihnen Ratschläge im Umgang mit Kürzeln und Abkürzungen.

  • Kapitel 6, »Variablen und Literale«
    Dieses Kapitel bespricht, wie Variablen und Konstanten mit minimalem Aufwand für Übersichtlichkeit sorgen. Wir zeigen Ihnen auch, wie Code leichter verständlich wird, wenn Sie komplexe Literale und Ausdrücke in einfachere Bestandteile zerlegen.

  • Kapitel 7, »Interne Tabellen«
    Dieses Kapitel wiederholt die Tabellenarten in ABAP und erklärt, welche wann geeignet sind. Anschließend vergleichen wir typische Muster, um mit Tabellen zu interagieren, und arbeiten heraus, welche Varianten davon besonders lesbar sind.

  • Kapitel 8, »Kontrollfluss«
    Dieses Kapitel betrachtet, wie Zweige und alternative Ausführungspfade die Komplexität von Code verschlechtern können und wie Sie dem durch sorgsamen Umgang mit Bedingungen und Fallunterscheidungen entgegenwirken können.

  • Kapitel 9, »Kommentare«
    Dieses Kapitel erforscht, wann sich Kommentare lohnen und wann nicht. Wir gehen darauf ein, wo Kommentare am besten stehen, wie ausführlich sie sein sollten und warum ihr Weglassen überraschend oft die beste Wahl ist.

  • Kapitel 10, »Formatierung«
    Dieses Kapitel zeigt auf, wie Formatierung die Lesbarkeit von Code verbessert. Neben generellen Erwägungen zu Konsistenz und Lesen-vor-Schreiben schlagen wir Ihnen einige einfache Regeln vor, wie Sie zu gut lesbarem Code kommen können.

  • Kapitel 11, »Fehlerbehandlung«
    Dieses Kapitel untersucht das Thema Fehlerbehandlung im Detail. Wir vergleichen Meldungen, Rückgabewerte und Ausnahmen, und vertiefen bei letzteren, wie Sie sie am besten aufbauen, auslösen und abfangen.

  • Kapitel 12, »Unit Tests«
    Dieses Kapitel geht detailliert auf die Prinzipien und Techniken automatischer Tests ein. Wir beschreiben das ABAP Unit Test Framework und weitere Werkzeuge, die bei der Implementierung helfen. Dazu kommen grundlegende Empfehlungen, wie Sie Tests übersichtlich gestalten und langfristig am Leben halten können.

  • Kapitel 13, »Pakete«
    Dieses Kapitel zeigt Ihnen, wie Sie ABAP-Code übersichtlich in Paketen organisieren können. Wir beschreiben die Grundlagen der Paketverwaltung und gehen näher auf Paketschnittstellen und -hierarchien ein.

  • Kapitel 14, »Wie Sie Clean ABAP umsetzen«
    Dieses...


Ravinarayan, Anagha
Anagha Ravinarayan ist Entwicklerin bei SAP und arbeitet an der SAP S/4HANA Cloud sowie an On-Premise-Anwendungen in den Bereichen der Kapazitätsplanung und nachfragegesteuerten Lageraufstockung. Dabei verwendet sie Technologien wie ABAP, SAP HANA und SAPUI5. Sie begann ihre Karriere als Full-Stack-Entwicklerin im Bereich der Beschaffungsanwendungen für SAP S/4HANA. Sie begeistert sich nebenbei für die Webentwicklung unter Verwendung von TypeScript, Node.js, React.js, MySQL und MongoDB und ist starke Befürworterin von Open-Source-Software.

Hoffmann, Florian
Florian Hoffmann ist Softwarearchitekt für GRC-Anwendungen (Governance, Risk and Complicance) von SAP. Sein Ziel ist es, die agile Entwicklung voranzutreiben, und in diesem Zuge arbeitet er stets daran, das Schreiben von Code effizienter zu gestalten. Zusammen mit Klaus Häuptle initiierte er den Clean-ABAP-Leitfaden auf GitHub, der dieses Werk ergänzt.

Martin, Michel
Michel Martin ist Development Architect bei SAP. Neben der Leitung von Projekten und Durchführung von Trainings war er unter anderem auch für das Coaching von Teams zu ASE, Lean-Management-Prinzipien und Scrum-Methodologien zuständig. Aufgrund seines technischen Hintergrunds ist er immer auf der Suche nach neuen Möglichkeiten, um die Leistungsfähigkeit von Entwicklungsteams und die Qualität ihrer Arbeit zu verbessern, seien es neue Technologien und Werkzeuge oder Methoden.

Haeuptle, Klaus
Klaus Häuptle ist Entwickler, Trainer und Product Owner im Bereich Anwendungsentwicklung. Für SAP hat er an der Entstehung verschiedener Produkte mitgewirkt, die auf unterschiedlichen Technologien basierten. Er unterstützt die SAP-Community dabei, Wissen zu teilen und Methoden und Arbeitsmittel zu verbessern. Unter anderem beeinflusste er die Verbesserung der Testmöglichkeiten für ABAP, SAP HANA und SAPUI5. Zusammen mit Florian Hoffmann entwickelte er einen zunächst internen Clean-ABAP-Leitfaden, der später als Open-Source-Projekt veröffentlicht wurde und als Grundlage dieses Buches dient.

Westerholz, Kai
Kai Westerholz arbeitet bei SAP als Senior-Entwickler im Bereich des Quote-to-Cash-Prozesses. Sein Schwerpunkt liegt auf der Entwicklung von APIs wie der Sales Order Simulation API oder der Sales Order Bulk Processing API. Des Weiteren beschäftigt er sich damit, Machine Learning im Bereich des Verkaufsauftrags nutzbar zu machen, und führt Clean Code und testgetriebene Entwicklung in seinem Team ein. Zuvor arbeitete er als Berater für SAP Cloud for Customer. Hier war er auf die Integration von SAP- und Nicht-SAP-Systemen mit verschiedenen Technologien spezialisiert.

Jordão, Rodrigo
Rodrigo Jordão arbeitet als Development Architect bei SAP. Aktuell ist er im Bereich Integrated Business Planning (IBP) mit Schwerpunkt auf dem SAP Supply Chain Control Tower tätig. Im Rahmen seiner Karriere bei SAP war er an der Entwicklung verschiedener SAP-Produkte beteiligt – von branchenspezifischen Lösungen wie SAP Intellectual Property Management bis hin zu grundlegenden Komponenten wie SD. Zuvor arbeitete als Webentwickler mit Perl and Java sowie als Berater mit Microsoft.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.