Clean ABAP

Lesbarer und wartbarer ABAP-Code
Buch | Hardcover
398 Seiten
2022 | 1. Auflage
Rheinwerk (Verlag)
978-3-8362-8659-6 (ISBN)

Lese- und Medienproben

Clean ABAP - Klaus Häuptle, Florian Hoffmann, Rodrigo Jordão, Michel Martin, Anagha Ravinarayan, Kai Westerholz
79,90 inkl. MwSt
Das offizielle Begleitbuch zum Git-Repository – Clean-Code-Prinzipien für die ABAP-Programmierung

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

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.

Konzepte
Warum Clean ABAP? Welche Vorteile hat dieser Ansatz für Performance, Tests und Legacy Code? Sie erfahren, warum sauberer Code effektiver ist und sich effizienter warten lässt.

Bewährte Vorgehensweisen
Positivbeispiele zu Klassen, Interfaces, Methoden u. v. m. zeigen Ihnen, wie Sie guten ABAP-Code schreiben können. Dabei erklärt Ihnen das Autorenteam stets auch die Hintergründe und Vorteile der Clean-Code-Prinzipien.

Praxistaugliche Beispiele
Das Expertenteam vermittelt seine Erfahrungen in ausführlichen Beispielen zu internen Tabellen, IF-Abfragen, Paketen u. v. m. Setzen Sie Ihr Wissen gleich im nächsten Projekt in die Praxis um!

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.

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.

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.

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.

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.

Kai Westerholz arbeitet bei SAP als Senior-Entwickler im Bereich des Quote-to-Crash-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.



1. Einstieg in die Welt von C++ ... 17


1.1 ... Der C++-Standard ... 17

1.2 ... Die nötigen Werkzeuge für C++ ... 18

1.3 ... Übersetzen mit g++ und clang++ ... 22

1.4 ... Übersetzen mit einer Entwicklungsumgebung ... 24

1.5 ... Listings zum Buch ... 28

1.6 ... Kontrollfragen und Aufgaben im Buch ... 28

1.7 ... Aufgabe ... 28



2. Erste Schritte in C++ ... 30


2.1 ... Das erste Programm in C++ ... 30

2.2 ... Anweisungen und Ausdrücke ... 32

2.3 ... Die Standard-Eingabe- und Ausgabestreams ... 33

2.4 ... Einige Begriffe zu C++ ... 38

2.5 ... Kontrollfragen und Aufgaben ... 40



3. Die eingebauten C++-Basisdatentypen ... 41


3.1 ... Variablen ... 41

3.2 ... Definition und Deklaration von Variablen ... 42

3.3 ... Initialisierung und Zuweisung von Werten ... 43

3.4 ... Ganzzahltypen ... 45

3.5 ... Ganzzahldatentyp für Zeichen ... 53

3.6 ... Fließkommazahlentypen ... 62

3.7 ... Der »auto«-Typ ... 64

3.8 ... Konstanten ... 66

3.9 ... Die Byte-Größe mit dem »sizeof«-Operator ... 67

3.10 ... Limits für die Basisdatentypen ... 68

3.11 ... Kontrollfragen und Aufgaben ... 71



4. Arbeiten mit den eingebauten Typen ... 72


4.1 ... Arithmetische Operatoren ... 72

4.2 ... Ungenaue Fließkommazahlen ... 79

4.3 ... Typumwandlung ... 81

4.4 ... Kontrollfragen und Aufgaben ... 87



5. Kontrollstrukturen ... 88


5.1 ... Der eingebaute Datentyp »bool« ... 88

5.2 ... Vergleichsoperatoren ... 89

5.3 ... Bedingte Anweisung mit »if« ... 91

5.4 ... Anweisungsblock für Kontrollstrukturen ... 93

5.5 ... Alternative »else«-Verzweigung ... 94

5.6 ... Bedingte Anweisung mit Initialisierung ... 95

5.7 ... Mehrfache Verzweigung ... 96

5.8 ... Der Bedingungsoperator »?:« ... 99

5.9 ... Logische Operatoren ... 100

5.10 ... Die Fallunterscheidung -- »switch« ... 102

5.11 ... Die kopfgesteuerte »while«-Schleife ... 105

5.12 ... Die fußgesteuerte »do while«-Schleife ... 107

5.13 ... Die Zählschleife »for« ... 108

5.14 ... Kontrollierte Sprunganweisungen ... 112

5.15 ... Kontrollfragen und Aufgaben ... 115



6. Arrays und Strings ... 116


6.1 ... Arrays ... 116

6.2 ... Strings in C++ ... 130

6.3 ... Kontrollfragen und Aufgaben ... 136



7. Referenzen und Zeiger ... 137


7.1 ... Referenzen ... 137

7.2 ... Zeiger ... 139

7.3 ... Kontrollfragen und Aufgaben ... 148



8. Funktionen ... 150


8.1 ... Grundlage zu den Funktionen ... 150

8.2 ... Referenzen als Parameter und Rückgabe ... 171

8.3 ... Zeiger als Parameter und Rückgabewert ... 178

8.4 ... Übergabe großer Elemente als Funktionsparameter ... 179

8.5 ... C-Arrays oder C-Strings als Funktionsparameter ... 181

8.6 ... Kontrollfragen und Aufgaben ... 182



9. Modularisierung und Präprozessor ... 184


9.1 ... Präprozessor-Direktiven ... 184

9.2 ... Modularisierung ... 189

9.3 ... Namensräume ... 195

9.4 ... Spezifizierer und Qualifikatoren ... 206

9.5 ... Kontrollfragen und Aufgaben ... 213



10. Strukturen, Aufzählungen und dynamische Speicherobjekte ... 215


10.1 ... Erste eigene Datentypen mit Strukturen ... 215

10.2 ... Aufzählungstyp »enum« ... 223

10.3 ... Eigene Namen mit »using« ... 225

10.4 ... Dynamische Speicherobjekte ... 226

10.5 ... Kontrollfragen und Aufgaben ... 236



11. Klassen ... 237


11.1 ... Klassen ... 237

11.2 ... Konstruktoren ... 251

11.3 ... Destruktoren ... 268

11.4 ... Weitere Formen von Methoden ... 273

11.5 ... Kontrollfragen und Aufgaben ... 281



12. Objekte und Klassenelemente ... 283


12.1 ... Objekt als Parameter ... 283

12.2 ... Freundfunktionen (»friend«) ... 288

12.3 ... Objekte einer Klasse als Rückgabewerte ... 290

12.4 ... Arrays von Objekten ... 296

12.5 ... Dynamische Objekte ... 297

12.6 ... Klassenobjekte als Klassenattribute ... 299

12.7 ... Containerklasse als Klassenattribut ... 304

12.8 ... Smart Pointer als Klassenattribut ... 307

12.9 ... Statische und konstante Klassenelemente ... 311

12.10 ... Die Nullregel (Rule of Zero) ... 318

12.11 ... Kontrollfragen und Aufgaben ... 322



13. Operatoren überladen ... 323


13.1 ... Das Schlüsselwort »operator« ... 325

13.2 ... Zweistellige (arithmetische) Operatoren überladen ... 326

13.3 ... Einstellige Operatoren überladen ... 333

13.4 ... Den Zuweisungsoperator überladen ... 337

13.5 ... Ausgabe- und Eingabeoperatoren überladen ... 342

13.6 ... Vergleichsoperatoren ... 345

13.7 ... Weitere Operatorüberladungen ... 348

13.8 ... Konvertierungsoperatoren ... 348

13.9 ... Kontrollfragen und Aufgaben ... 352



14. Vererbung (Abgeleitete Klassen) ... 354


14.1 ... Die Vorbereitung ... 355

14.2 ... Das Ableiten einer Klasse ... 357

14.3 ... Kontrollfragen und Aufgaben ... 375



15. Templates ... 376


15.1 ... Funktions-Templates ... 376

15.2 ... Klassen-Templates ... 385

15.3 ... Templates der Standardbibliothek ... 390

15.4 ... Kontrollfragen und Aufgaben ... 397



16. Ausnahmebehandlung (Fehlerbehandlung) ... 399


16.1 ... Eine Ausnahme auslösen ... 401

16.2 ... Ausnahme auffangen und behandeln ... 402

16.3 ... Ausnahmeklassen (Fehlerklassen) ... 412

16.4 ... Standardausnahmen ... 415

16.5 ... Systemausnahmen ... 420

16.6 ... Kontrollfragen ... 421



17. Ein-/Ausgabestreams für Dateien ... 422


17.1 ... Der Umgang mit Dateien in C++ ... 422

17.2 ... Verschiedene Streams für Dateien ... 422

17.3 ... Datei öffnen und schließen ... 423

17.4 ... Kontrollfragen und Aufgaben ... 434



18. Weitere Sprachelemente und die Bibliotheken ... 435


18.1 ... Weitere Sprachelemente ... 435

18.2 ... Smart Pointer ... 442

18.3 ... Elemente der Standardbibliothek ... 452

18.4 ... Die Zeitbibliothek ... 458

18.5 ... Die »ratio«-Bibliothek ... 463

18.6 ... Multithreading ... 464



Lösungen der Übungsaufgaben ... 466


Index ... 489

Erscheinungsdatum
Reihe/Serie SAP PRESS
Verlagsort Bonn
Sprache deutsch
Maße 168 x 240 mm
Einbandart gebunden
Themenwelt Mathematik / Informatik Informatik Netzwerke
Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Informatik Weitere Themen SAP
Schlagworte ABAP-Entwicklung • Agiles Projektmanagement • Clean Code • Clean Code deutsch • Codebeispiele • Code Complete • Debugging • Functional Programming • Git Repository • Hand-Buch Know-how Tutorial Wissen Anleitung Lernen • Hand-Buch Know-how Tutorial Wissen Lernen • Hand-Buch Know-how Tutorial Wissen Tipp Anleitung Lernen • Robert C. Martin • robert martin • SAP Community • Softwareentwicklung • Steve McConnell • Styleguide
ISBN-10 3-8362-8659-9 / 3836286599
ISBN-13 978-3-8362-8659-6 / 9783836286596
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich