Clean ABAP
Rheinwerk (Verlag)
978-3-8362-8659-6 (ISBN)
- 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 | 21.01.2022 |
---|---|
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 |
Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich