Klaus Haeuptle, Florian Hoffmann, Rodrigo Jordão
Clean ABAP
Das offizielle Begleitbuch zum Git-Repository - Clean-Code-Prinzipien für die ABAP-Programmierung
Klaus Haeuptle, Florian Hoffmann, Rodrigo Jordão
Clean ABAP
Das offizielle Begleitbuch zum Git-Repository - Clean-Code-Prinzipien für die ABAP-Programmierung
- Gebundenes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
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.
Aus dem Inhalt:
Klassen und InterfacesMethodenNamen von ObjektenVariablen und LiteraleInterne TabellenKontrollflussKommentareFormatierungFehlerbehandlungUnit-TestsPaketeClean ABAP im Team umsetzen
Andere Kunden interessierten sich auch für
- Thorsten FranzEinstieg in ABAP39,90 €
- Christian ClausenFive Lines of Code34,90 €
- Daniel BertoloziClean SAPUI589,90 €
- Winfried SchwarzmannAgile ABAP-Entwicklung79,90 €
- Felix RothKundeneigene Erweiterungen mit ABAP79,90 €
- Thomas SchneiderErweiterungen für SAP S/4HANA79,90 €
- Renzo ColleCore Data Services für ABAP89,90 €
-
-
-
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.
Aus dem Inhalt:
Klassen und InterfacesMethodenNamen von ObjektenVariablen und LiteraleInterne TabellenKontrollflussKommentareFormatierungFehlerbehandlungUnit-TestsPaketeClean ABAP im Team umsetzen
Aus dem Inhalt:
Klassen und InterfacesMethodenNamen von ObjektenVariablen und LiteraleInterne TabellenKontrollflussKommentareFormatierungFehlerbehandlungUnit-TestsPaketeClean ABAP im Team umsetzen
Produktdetails
- Produktdetails
- SAP PRESS
- Verlag: Rheinwerk Verlag / SAP PRESS
- Artikelnr. des Verlages: 459/08659
- Seitenzahl: 398
- Erscheinungstermin: 3. Februar 2022
- Deutsch
- Abmessung: 245mm x 177mm x 28mm
- Gewicht: 862g
- ISBN-13: 9783836286596
- ISBN-10: 3836286599
- Artikelnr.: 62589047
- SAP PRESS
- Verlag: Rheinwerk Verlag / SAP PRESS
- Artikelnr. des Verlages: 459/08659
- Seitenzahl: 398
- Erscheinungstermin: 3. Februar 2022
- Deutsch
- Abmessung: 245mm x 177mm x 28mm
- Gewicht: 862g
- ISBN-13: 9783836286596
- ISBN-10: 3836286599
- Artikelnr.: 62589047
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.
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
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 ... 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
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