Clean ABAP: lesbarer und wartbarer ABAP-Code
Gespeichert in:
Hauptverfasser: | , , , , , |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
Bonn
Rheinwerk Verlag
2022
|
Ausgabe: | 1. Auflage |
Schriftenreihe: | SAP PRESS
|
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | 398 Seiten 24 cm x 16.8 cm |
ISBN: | 9783836286596 3836286599 |
Internformat
MARC
LEADER | 00000nam a22000008c 4500 | ||
---|---|---|---|
001 | BV047839278 | ||
003 | DE-604 | ||
005 | 00000000000000.0 | ||
007 | t | ||
008 | 220215s2022 gw |||| 00||| ger d | ||
015 | |a 21,N38 |2 dnb | ||
016 | 7 | |a 1241345406 |2 DE-101 | |
020 | |a 9783836286596 |c : EUR 79.90 (DE), EUR 82.20 (AT), CHF 102.90 (freier Preis) |9 978-3-8362-8659-6 | ||
020 | |a 3836286599 |9 3-8362-8659-9 | ||
024 | 3 | |a 9783836286596 | |
035 | |a (OCoLC)1295408560 | ||
035 | |a (DE-599)DNB1241345406 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-NW | ||
049 | |a DE-1050 |a DE-M347 | ||
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |8 1\p |a 004 |2 23sdnb | ||
100 | 1 | |a Häuptle, Klaus |e Verfasser |4 aut | |
245 | 1 | 0 | |a Clean ABAP |b lesbarer und wartbarer ABAP-Code |c Klaus Häuptle, Florian Hoffmann, Rodrigo Jordão, Michel Martin, Anagha Ravinarayan, Kai Westerholz |
250 | |a 1. Auflage | ||
264 | 1 | |a Bonn |b Rheinwerk Verlag |c 2022 | |
300 | |a 398 Seiten |c 24 cm x 16.8 cm | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a SAP PRESS | |
650 | 0 | 7 | |a ABAP |0 (DE-588)4610511-6 |2 gnd |9 rswk-swf |
653 | |a Clean Code | ||
653 | |a Robert C. Martin | ||
653 | |a Git Repository | ||
653 | |a SAP Community | ||
653 | |a Softwareentwicklung | ||
653 | |a Robert Martin | ||
653 | |a Functional programming | ||
653 | |a agiles Projektmanagement | ||
653 | |a Debugging | ||
653 | |a Styleguide | ||
653 | |a Hand-Buch Know-how Tutorial Wissen Tipp Anleitung Lernen | ||
653 | |a ABAP-Entwicklung | ||
653 | |a Codebeispiele | ||
689 | 0 | 0 | |a ABAP |0 (DE-588)4610511-6 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Hoffmann, Florian |e Verfasser |4 aut | |
700 | 1 | |a Jordão, Rodrigo |e Verfasser |4 aut | |
700 | 1 | |a Martin, Michel |e Verfasser |4 aut | |
700 | 1 | |a Ravinarayan, Anagha |e Verfasser |4 aut | |
700 | 1 | |a Westerholz, Kai |e Verfasser |4 aut | |
710 | 2 | |a Rheinwerk Verlag |0 (DE-588)1081738405 |4 pbl | |
856 | 4 | 2 | |m X:MVB |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=74c5cd6efa564fcc9130c9c9c351450b&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m DNB Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=033222384&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-033222384 | ||
883 | 1 | |8 1\p |a vlb |d 20210917 |q DE-101 |u https://d-nb.info/provenance/plan#vlb |
Datensatz im Suchindex
_version_ | 1804183395029221376 |
---|---|
adam_text | INHALT
EINLEITUNG
.......................................................................................................................
17
1
EINFUEHRUNG
23
1.1
WAS
IST
CLEAN
ABAP?
........................................................................................
23
1.1.1
WAS
IST
LESBARKEIT?
..............................................................................
24
1.1.2
WAS
IST
DIE
GESCHICHTE
HINTER
CLEAN
ABAP?
........................................
25
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
PRUEFEN?
.......................................................
30
1.5
WIE
STEHT
CLEAN
ABAP
IM
VERHAELTNIS
ZU
ANDEREN
PROGRAMMIERLEITFAEDEN?
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.2.1
CLEAN
CODE
VS.
PERFORMANCE
................................................................
38
2.2.2
SAUBER
STARTEN
UND
NUR
IN
ZWINGENDEN
FAELLEN
ABWEICHEN
................
39
2.2.3
MESSEN,
STATT
NUR
VERMUTEN
................................................................
40
2.3
OBJEKTORIENTIERTE
VS.
PROZEDURALE
PROGRAMMIERUNG
...................................
41
2.3.1
DAS
PROGRAMMIERPARADIGMA
VON
ABAP
..............................................
41
2.3.2
DER
UNTERSCHIED
ZWISCHEN
FUNKTIONSGRUPPEN
UND
KLASSEN
................ 42
2.3.3
BESONDERHEITEN
DER
ABAP-OBJEKTORIENTIERUNG
..................................
46
2.3.4
WENN
SIE
KEINE
WAHL
HABEN
................................................................
48
2.4
FUNKTIONALE
VS.
PROZEDURALE
SPRACHKONSTRUKTE
............................................
49
2.5
OBSOLETE
SPRACHELEMENTE
..............................................................................
52
INHALT
2.6
ENTWURFSMUSTER
................................................................................................
54
2.6.1
ZU
VIELE
SINGLETONS
..............................................................................
54
2.6.2
ZU
VIELE
MUSTER
GEMISCHT
....................................................................
56
2.7
ZUSAMMENFASSUNG
...........................................................................................
56
3
KLASSEN
UND
INTERFACES
59
3.1
OBJEKTORIENTIERUNG
...........................................................................................
59
3.1.1
INTERFACES
.............................................................................................
61
3.1.2
KLASSEN
UND
OBJEKTE
............................................................................
67
3.1.3
ZUSTAND
.................................................................................................
88
3.2
GELTUNGSBEREICH
UND
SICHTBARKEIT
..................................................................
90
3.2.1
GLOBALER
UND
LOKALER
GELTUNGSBEREICH
................................................
90
3.2.2
SICHTBARKEIT
..........................................................................................
95
3.3
KONSTRUKTOREN
...................................................................................................
99
3.3.1
GELTUNGSBEREICH
UND
SICHTBARKEIT
......................................................
99
3.3.2
DEPENDENCY
INJECTION
..........................................................................
101
3.3.3
STATISCHE
ERZEUGUNGSMETHODEN
........................................................
102
3.3.4
ERZEUGUNGSMUSTER
...............................................................................
105
3.3.5
INSTANZIIERUNG
......................................................................................
109
3.4
ZUSAMMENFASSUNG
...........................................................................................
111
4
METHODEN
113
4.1
OBJEKTORIENTIERTE
PROGRAMMIERUNG
.............................................................
113
4.1.1
STATISCHE
METHODEN
UND
INSTANZMETHODEN
.......................................
113
4.1.2
OEFFENTLICHE
INSTANZMETHODEN
............................................................
117
4.1.3
REDEFINITION
EINER
METHODE
................................................................
119
4.2
PARAMETER
..........................................................................................................
121
4.2.1
WIE
VIELE
PARAMETER
SIND
ZU
VIELE?
......................................................
122
4.2.2
OPTIONALE
EINGABEPARAMETER
.............................................................
123
4.2.3
BEVORZUGTE
EINGABEPARAMETER
...........................................................
124
4.2.4
BOOLESCHE
EINGABEPARAMETER
............................................................
125
4.2.5
EXPORTING-PARAMETER........................................................................
127
4.2.6
RETURNING-PARAMETER
.......................................................................
129
INHALT
4.2.7
CHANGING-PARAMETER
........................................................................
131
4.2.8
UEBERGABE
PER
WERT
UND
UEBERGABE
PER
REFERENZ
................................
133
4.3
METHODENINHALT
................................................................................................
137
4.3.1
EINE
SACHE
TUN
......................................................................................
137
4.3.2
EINE
ABSTRAKTIONSSTUFE
ABSTEIGEN
.......................................................
139
4.3.3
METHODEN
KLEIN
HALTEN
........................................................................
142
4.3.4
FRUEH
SCHEITERN
.......................................................................................
144
4.3.5
CHECK
ODER
RETURN
............................................................................
146
4.4
METHODEN
AUF
RUFEN
.........................................................................................
148
4.4.1
EINGABEPARAMETER
UEBERGEBEN
............................................................
148
4.4.2
AUSGABEPARAMETER
EMPFANGEN
.........................................................
149
4.4.3
DAS
KONSTRUKT
CALL
METHOD
.............................................................
150
4.4.4
OPTIONALE
PARAMETERNAMEN
................................................................
151
4.4.5
SELBSTREFERENZEN
..................................................................................
152
4.5
ZUSAMMENFASSUNG
...........................................................................................
153
5
NAMEN
155
5.1
GUTE
NAMEN
......................................................................................................
155
5.1.1
AUSSAGEKRAEFTIGE
NAMEN
...............................................................
156
5.1.2
DOMAENENBEGRIFFE
................................................................................
157
5.1.3
PLURAL
ODER
SINGULAR?
............................................................................
158
5.1.4
ABKUERZUNGEN
........................................................................................
158
5.1.5
KLASSEN
UND
METHODEN
BENENNEN
.....................................................
159
5.1.6
RAUSCHWOERTER
......................................................................................
160
5.1.7
KONSISTENTE
BEGRIFFE
...........................................................................
160
5.1.8
ENTWURFSMUSTER
IM
CODE
...............................................................
161
5.1.9
UNGARISCHE
NOTATION
UND
ANDERE
PRAEFIXE
...........................................
161
5.2
EIGENHEITEN
VON
ABAP
.....................................................................................
162
5.2.1
OBJEKTGRUPPEN
MIT
NAMENSKOLLISIONEN
.............................................
162
5.2.2
SNAKECASE
ODER
CAMEL
CASE?
.............................................................
162
5.3
AFFIXE:
PRAEFIXE,
SUFFIXE
UND
INFIXE
.................................................................
163
5.3.1
NOTWENDIGE
AFFIXE
...............................................................................
164
5.3.2
NUETZLICHE
AFFIXE
..................................................................................
165
5.3.3
UNNUETZE
AFFIXE
.....................................................................................
166
5.4
MIT
LEGACY-CODE
UMGEHEN
.............................................................................
166
5.5
ZUSAMMENFASSUNG
...........................................................................................
167
INHALT
6
VARIABLEN
UND
LITERALE
169
6.1
VARIABLEN
............................................................................................................
170
6.1.1
VARIABLENDEKLARIEREN
...........................................................................
170
6.1.2
KONTROLLFLUSS
UND
GUELTIGKEITSBEREICH
..................................................
173
6.1.3
VERKETTETE
DEKLARATIONEN
....................................................................
174
6.1.4
SCHLEIFENVARIABLEN
...............................................................................
175
6.2
KONSTANTEN
........................................................................................................
177
6.2.1
KONSTANTEN
RICHTIG
NUTZEN
...................................................................
177
6.2.2
AUFZAEHLUNGSKLASSEN
............................................................................
179
6.2.3
KONSTANTEN
GRUPPIEREN
........................................................................
184
6.3
ZEICHENKETTEN
...................................................................................................
186
6.3.1
STRING-LITERALE
.......................................................................................
186
6.3.2
STRINGS
ZUSAMMENBAUEN
.....................................................................
187
6.4
BOOLESCHE
AUSDRUECKE
........................................................................................
188
6.4.1
WANN
BENUTZE
ICH
BOOLESCHE
AUSDRUECKE?
..........................................
188
6.4.2
BOOLESCHE
FUNKTION
XSDBOOL
FUER
INLINE-DEKLARATIONEN
....................
190
6.5
REGULAERE
AUSDRUECKE
..........................................................................................
191
6.5.1
EINFACHE
REGULAERE
AUSDRUECKE
...............................................................
191
6.5.2
GRUNDLEGENDE
PRUEFUNGEN
...................................................................
192
6.5.3
KOMPLEXE
REGULAERE
AUSDRUECKE
............................................................
193
6.6
DAS
SCHLUESSELWORT
REDUCE
.............................................................................
193
6.7
ZUSAMMENFASSUNG
...........................................................................................
196
7
INTERNE
TABELLEN
197
7.1
DIE
RICHTIGE
TABELLENART
VERWENDEN
..............................................................
198
7.1.1
STANDARDTABELLEN
.................................................................................
198
7.1.2
SORTIERTE
TABELLEN
................................................................................
199
7.1.3
HASH-TABELLEN
......................................................................................
199
7.2
DEFAULT
KEY
VERMEIDEN
.................................................................................
200
7.3
ZEILEN
HINZUFUEGEN
MIT
INSERTINTO
TABLE
UND
APPEND
TO
......................
201
7.3.1
DIE
ANWEISUNG
APPEND
.......................................................................
201
7.3.2
DIE
ANWEISUNG
INSERT
........................................................................
202
INHALT
7.4
PRUEFEN,
OB
EINE
TABELLE
EINE
BESTIMMTE
ZEILE
ENTHAELT
................................
202
7.4.1
DIE
ANWEISUNG
READ
TABLE
................................................................
202
7.4.2
DIE
ANWEISUNG
LOOP
AT
......................................................................
203
7.4.3
DIE
ANWEISUNG
LINE_EXISTS
................................................................
203
7.5
TABELLENINHALTE
ABFRAGEN
................................................................................
204
7.5.1
DIE
ANWEISUNG
LOOP
AT
......................................................................
204
7.5.2
DIE
ANWEISUNG
READ
TABLE
................................................................
205
7.6
DIE
ANWEISUNG
LOOP
AT
...
WHERE
...
UND
VERSCHACHTELTE
IF-ANWEISUNGEN
................................................................................................
206
7.6.1
VERSCHACHTELTES
IF
................................................................................
206
7.6.2
DIE
ANWEISUNG
LOOP
AT
...
WHERE
......................................................
207
7.7
UNNOETIGE
TABELLENABFRAGEN
IDENTIFIZIEREN
...................................................
207
7.8
TABELLENZEILEN
BLOCKWEISE
UND
ZEILE
FUER
ZEILE
BEARBEITEN
.........................
208
7.9
DESCRIBE
TABLE
UND
DIE
FUNKTION
LINES
.......................................................
209
7.9.1
DIE
ANWEISUNG
DESCRIBE
TABLE
.........................................................
209
7.9.2
DIE
ANWEISUNG
LINES
...........................................................................
209
7.10
ZUSAMMENFASSUNG
...........................................................................................
210
8
KONTROLLFLUSS
211
8.1
DAS
SCHLUESSELWORT
IF
.........................................................................................
212
8.1.1
IF-AUSFUEHRUNGSPFADE
...........................................................................
212
8.1.2
IF-ANWEISUNGEN
KRITISCH
HINTERFRAGEN
................................................
215
8.2
SCHACHTELUNGSTIEFE
...........................................................................................
217
8.3
BEDINGUNGEN
.....................................................................................................
218
8.3.1
BEDINGUNGEN
POSITIV
FORMULIEREN
.......................................................
219
8.3.2
IS
NOT
ODER
NOT
IS
..............................................................................
222
8.3.3
KOMPLEXE
BEDINGUNGEN
......................................................................
223
8.4
DAS
SCHLUESSELWORT
CASE
...................................................................................
225
8.4.1
CASE
ODER
IF
..........................................................................................
225
8.4.2
CASE
ODER
SWITCH
...............................................................................
227
8.4.3
WIEDERHOLTE
CASE-ODER
SWITCH-ANWEISUNGEN
................................
228
8.5
DIE
ANWEISUNG
DO
1
TIMES
............................................................................
229
8.5.1
PSEUDOSCHLEIFEN
FUER
DEN
KONTROLLFLUSS
...............................................
230
8.5.2
REFACTORING
...........................................................................................
231
8.6
ZUSAMMENFASSUNG
...........................................................................................
233
INHALT
9
KOMMENTARE
235
9.1
PRAEZISER
CODE
BENOETIGT
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
FUERS
LESEN
OPTIMIEREN
...................................................................
249
10.3
DER
PRETTY
PRINTER
............................................................................................
250
10.4
WIE
VIELE
ANWEISUNGEN
PRO
ZEILE?
...............................................................
252
10.5
ZEILENLAENGE
.......................................................................................................
252
10.6
CODE
STRAFFEN
...................................................................................................
254
10.7
LEERZEILEN
.........................................................................................................
255
10.8
ZUWEISUNGEN
AUSRICHTEN
...............................................................................
256
10.9
VARIABLENDEKIARATIONEN
AUSRICHTEN
.............................................................
257
10.10
WOHIN
MIT
DEN
KLAMMERN?
..........................................................................
257
10.11
METHODENPARAMETER
FORMATIEREN
...............................................................
258
10.11.1
AUFRUFE
MIT
EINEM
PARAMETER
..........................................................
258
10.11.2
ZEILENUMBRUECHE
BEI
MEHREREN
PARAMETERN
....................................
259
10.11.3
POSITION
DER
PARAMETER
.......................................................................
259
10.11.4
PARAMETER
EINRUECKEN
..........................................................................
260
10.11.5
VERTIKALE
AUSRICHTUNG
VON
PARAMETERWERTEN
...................................
261
10.11.6
UMBRUECHE
UND
EINRUECKUNGEN
IN
METHODENAUFRUFEN
......................
261
10.11.7
INLINE-DEKLARATIONENEINRUECKEN
.......................................................
262
10.12
ZUSAMMENFASSUNG
.........................................................................................
263
INHALT
11
FEHLERBEHANDLUNG
265
11.1
NACHRICHTEN
.......................................................................................................
265
11.2
RUECKGABEWERTE
.................................................................................................
269
11.2.1
AUSNAHMEN
ODER
RUECKGABEWERTE
.......................................................
270
11.2.2
UMGANG
MIT
FEHLERN
............................................................................
272
11.3
AUSNAHMEN
.......................................................................................................
274
11.3.1
AUSNAHMEN
FUER
FEHLERFAELLE
..................................................................
274
11.3.2
KLASSENBASIERTE
AUSNAHMEN
...............................................................
275
11.3.3
AUSNAHMEN
AUF
BASIS
DER
KLASSE
CX_STATIC_CHECK
.........................
280
11.3.4
AUSNAHMEN
AUF
BASIS
DER
KLASSE
CX_NO_CHECK
..............................
281
11.3.5
AUSNAHMEN
AUF
BASIS
DER
KLASSE
CX_DYNAMIC_EXCEPTION
............
282
11.4
AUSNAHMEN
AUSLOESEN
UND
BEHANDELN
............................................................
284
11.4.1
AUSNAHMEN-OBERKLASSEN
AUSWAEHLEN
.................................................
284
11.4.2
AUSNAHMEN
AUSLOESEN
..........................................................................
286
11.4.3
AUSNAHMEN
BEHANDELN
.......................................................................
288
11.4.4
WANN
SOLLTE
EIN
DUMP
AUSGELOEST
WERDEN?
.........................................
290
11.5
ZUSAMMENFASSUNG
...........................................................................................
291
12
UNIT
TESTS
293
12.1
TESTKLASSEN
........................................................................................................
294
12.1.1
EIGENSCHAFTEN
VON
TESTKLASSEN
............................................................
295
12.1.2
GUELTIGKEITSBEREICH
VON
TESTKLASSEN
....................................................
298
12.1.3
TESTHELFERKLASSEN
................................................................................
300
12.1.4
TESTSAUSFUEHREN
..................................................................................
301
12.2
TESTMETHODEN
...................................................................................................
304
12.2.1
METHODEN
FUER
DEN
TESTAUFBAU
............................................................
304
12.2.2
DERGIVEN-WHEN-THEN-STIL
..................................................................
308
12.3
DIE
GETESTETE
KLASSE
.........................................................................................
309
12.4
NAMEN
VON
TESTKLASSEN
UND
-METHODEN
.......................................................
310
12.5
ASSERTIONS
..........................................................................................................
313
12.5.1
EFFIZIENTE
ASSERTIONS
SCHREIBEN
..........................................................
314
12.5.2
ERWARTETE
AUSNAHMEN
PRUEFEN
............................................................
318
12.5.3
UNERWARTETE
STATISCHE
AUSNAHMEN
...................................................
319
12.5.4
EIGENE
ASSERTIONS
................................................................................
321
12.5.5
CONSTRAINTS
...........................................................................................
323
INHALT
12.6
TEST-DOUBLES
......................................................................................................
325
12.6.1
DEPENDENCY
INVERSION
UND
TEST-DOUBLES
...........................................
326
12.6.2
ABAP
TEST
DOUBLE
FRAMEWORK
.............................................................
331
12.6.3
WEITERE
TESTWERKZEUGE
......................................................................
335
12.7
TEST-SEAMS
........................................................................................................
337
12.8
KONZEPTE
ZUM
UMGANG
MIT
UNIT
TESTS
..........................................................
339
12.8.1
TESTGETRIEBENE
ENTWICKLUNG
................................................................
339
12.8.2
EIGENSCHAFTEN
SAUBERER
TESTS
.............................................................
341
12.8.3
TESTABDECKUNG
.....................................................................................
342
12.9
ZUSAMMENFASSUNG
...........................................................................................
343
13
PAKETE
345
13.1
ALLGEMEINE
PAKETKONZEPTE
.............................................................................
345
13.1.1
ANWENDUNGSFAELLE
.................................................................................
346
13.1.2
WIEDERVERWENDUNGSEBENEN
...............................................................
346
13.1.3
KOHAESION
...............................................................................................
347
13.2
PAKETKONZEPT
IN
ABAP
......................................................................................
347
13.2.1
PAKETTYPEN
...........................................................................................
348
13.2.2
GEKAPSELTE
PAKETE
................................................................................
349
13.2.3
PAKETSCHNITTSTELLEN
..............................................................................
349
13.2.4
BEST
PRACTICES
.......................................................................................
352
13.3
OPTIONEN
FUER
DAS
PAKETDESIGN
........................................................................
353
13.3.1
ANWENDUNGSBASIERTE
HIERARCHIE
........................................................
354
13.3.2
SCHICHTENBASIERTE
HIERARCHIE
..............................................................
355
13.3.3
AUFTEILUNG
DER
HIERARCHIEN
NACH
UEBERSETZUNGSRELEVANZ
...................
356
13.4
PAKETPRUEFUNGEN
................................................................................................
358
13.4.1
WAS
SIND
PAKETPRUEFUNGEN?
..................................................................
359
13.4.2
MANUELLE
DURCHFUEHRUNG
VON
PAKETPRUEFUNGEN
...................................
361
13.4.3
AUTOMATISIERTE
AUSFUEHRUNG
VON
PAKETPRUEFUNGEN
.............................
362
13.4.4
BEHEBUNG
VON
PAKETPRUEFUNGSFEHLERN
.................................................
363
13.4.5
BEST
PRACTICES
.......................................................................................
366
13.5
KONSEQUENZEN
EINER
MANGELHAFTEN
ODER
FEHLENDEN
PAKETSTRATEGIE
........
367
13.6
ZUSAMMENFASSUNG
...........................................................................................
368
INHALT
14
WIE
SIE
CLEAN
ABAP
UMSETZEN
369
14.1
GEMEINSAMES
VERSTAENDNIS
DER
TEAMMITGLIEDER
..........................................
370
14.1.1
KOLLEKTIVE
CODE
OWNERSHIP
..................................................................
370
14.1.2
CLEAN
CODE
DEVELOPER
INITIATIVE
..........................................................
372
14.2
DEN
BROKEN-WINDOW-EFFEKT
ANGEHEN
............................................................
374
14.2.1
STATISCHE
CODE-PRUEFUNG
.......................................................................
376
14.2.2
METRIKEN
...............................................................................................
377
14.2.3
CODE-ABDECKUNG
.................................................................................
377
14.3
CODE-REVIEWS
UND
LERNEN
...............................................................................
378
14.3.1
CODE-REVIEW-PRAEFIX
.............................................................................
378
14.3.2
STYLEGUIDE
............................................................................................
378
14.3.3
SICHTBAR
MACHEN
..................................................................................
379
14.3.4
FEEDBACK-KULTUR
...................................................................................
379
14.4
CLEAN
CODE
ADVISOR
...........................................................................................
382
14.5
LERNTECHNIKEN
...................................................................................................
382
14.5.1
KATA
......................................................................................................
383
14.5.2
DOJO
......................................................................................................
384
14.5.3
CODE-RETREAT
........................................................................................
384
14.5.4
FELLOWSHIP
............................................................................................
385
14.5.5
PAIR
PROGRAMMING
................................................................................
385
14.5.6
MOB
PROGRAMMING
...............................................................................
386
14.5.7
GEWOHNHEITEN
.....................................................................................
386
14.6
CONTINUOUS
LEARNING
IN
FUNKTIONSUEBERGREIFENDEN
TEAMS
..........................
387
14.6.1
PROFIL
EINES
TEAMMITGLIEDS
..................................................................
388
14.6.2
FUNKTIONSUEBERGREIFENDE
TEAMS
..........................................................
389
14.6.3
MULTIPLIKATOREN
IM
TEAM
.....................................................................
389
14.6.4
COMMUNITY
OF
PRACTICE
........................................................................
390
14.7
ZUSAMMENFASSUNG
...........................................................................................
390
DAS
AUTORENTEAM
...........................................................................................................
391
INDEX
...............................................................................................................................
393
|
adam_txt |
INHALT
EINLEITUNG
.
17
1
EINFUEHRUNG
23
1.1
WAS
IST
CLEAN
ABAP?
.
23
1.1.1
WAS
IST
LESBARKEIT?
.
24
1.1.2
WAS
IST
DIE
GESCHICHTE
HINTER
CLEAN
ABAP?
.
25
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
PRUEFEN?
.
30
1.5
WIE
STEHT
CLEAN
ABAP
IM
VERHAELTNIS
ZU
ANDEREN
PROGRAMMIERLEITFAEDEN?
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.2.1
CLEAN
CODE
VS.
PERFORMANCE
.
38
2.2.2
SAUBER
STARTEN
UND
NUR
IN
ZWINGENDEN
FAELLEN
ABWEICHEN
.
39
2.2.3
MESSEN,
STATT
NUR
VERMUTEN
.
40
2.3
OBJEKTORIENTIERTE
VS.
PROZEDURALE
PROGRAMMIERUNG
.
41
2.3.1
DAS
PROGRAMMIERPARADIGMA
VON
ABAP
.
41
2.3.2
DER
UNTERSCHIED
ZWISCHEN
FUNKTIONSGRUPPEN
UND
KLASSEN
. 42
2.3.3
BESONDERHEITEN
DER
ABAP-OBJEKTORIENTIERUNG
.
46
2.3.4
WENN
SIE
KEINE
WAHL
HABEN
.
48
2.4
FUNKTIONALE
VS.
PROZEDURALE
SPRACHKONSTRUKTE
.
49
2.5
OBSOLETE
SPRACHELEMENTE
.
52
INHALT
2.6
ENTWURFSMUSTER
.
54
2.6.1
ZU
VIELE
SINGLETONS
.
54
2.6.2
ZU
VIELE
MUSTER
GEMISCHT
.
56
2.7
ZUSAMMENFASSUNG
.
56
3
KLASSEN
UND
INTERFACES
59
3.1
OBJEKTORIENTIERUNG
.
59
3.1.1
INTERFACES
.
61
3.1.2
KLASSEN
UND
OBJEKTE
.
67
3.1.3
ZUSTAND
.
88
3.2
GELTUNGSBEREICH
UND
SICHTBARKEIT
.
90
3.2.1
GLOBALER
UND
LOKALER
GELTUNGSBEREICH
.
90
3.2.2
SICHTBARKEIT
.
95
3.3
KONSTRUKTOREN
.
99
3.3.1
GELTUNGSBEREICH
UND
SICHTBARKEIT
.
99
3.3.2
DEPENDENCY
INJECTION
.
101
3.3.3
STATISCHE
ERZEUGUNGSMETHODEN
.
102
3.3.4
ERZEUGUNGSMUSTER
.
105
3.3.5
INSTANZIIERUNG
.
109
3.4
ZUSAMMENFASSUNG
.
111
4
METHODEN
113
4.1
OBJEKTORIENTIERTE
PROGRAMMIERUNG
.
113
4.1.1
STATISCHE
METHODEN
UND
INSTANZMETHODEN
.
113
4.1.2
OEFFENTLICHE
INSTANZMETHODEN
.
117
4.1.3
REDEFINITION
EINER
METHODE
.
119
4.2
PARAMETER
.
121
4.2.1
WIE
VIELE
PARAMETER
SIND
ZU
VIELE?
.
122
4.2.2
OPTIONALE
EINGABEPARAMETER
.
123
4.2.3
BEVORZUGTE
EINGABEPARAMETER
.
124
4.2.4
BOOLESCHE
EINGABEPARAMETER
.
125
4.2.5
EXPORTING-PARAMETER.
127
4.2.6
RETURNING-PARAMETER
.
129
INHALT
4.2.7
CHANGING-PARAMETER
.
131
4.2.8
UEBERGABE
PER
WERT
UND
UEBERGABE
PER
REFERENZ
.
133
4.3
METHODENINHALT
.
137
4.3.1
EINE
SACHE
TUN
.
137
4.3.2
EINE
ABSTRAKTIONSSTUFE
ABSTEIGEN
.
139
4.3.3
METHODEN
KLEIN
HALTEN
.
142
4.3.4
FRUEH
SCHEITERN
.
144
4.3.5
CHECK
ODER
RETURN
.
146
4.4
METHODEN
AUF
RUFEN
.
148
4.4.1
EINGABEPARAMETER
UEBERGEBEN
.
148
4.4.2
AUSGABEPARAMETER
EMPFANGEN
.
149
4.4.3
DAS
KONSTRUKT
CALL
METHOD
.
150
4.4.4
OPTIONALE
PARAMETERNAMEN
.
151
4.4.5
SELBSTREFERENZEN
.
152
4.5
ZUSAMMENFASSUNG
.
153
5
NAMEN
155
5.1
GUTE
NAMEN
.
155
5.1.1
AUSSAGEKRAEFTIGE
NAMEN
.
156
5.1.2
DOMAENENBEGRIFFE
.
157
5.1.3
PLURAL
ODER
SINGULAR?
.
158
5.1.4
ABKUERZUNGEN
.
158
5.1.5
KLASSEN
UND
METHODEN
BENENNEN
.
159
5.1.6
RAUSCHWOERTER
.
160
5.1.7
KONSISTENTE
BEGRIFFE
.
160
5.1.8
ENTWURFSMUSTER
IM
CODE
.
161
5.1.9
UNGARISCHE
NOTATION
UND
ANDERE
PRAEFIXE
.
161
5.2
EIGENHEITEN
VON
ABAP
.
162
5.2.1
OBJEKTGRUPPEN
MIT
NAMENSKOLLISIONEN
.
162
5.2.2
SNAKECASE
ODER
CAMEL
CASE?
.
162
5.3
AFFIXE:
PRAEFIXE,
SUFFIXE
UND
INFIXE
.
163
5.3.1
NOTWENDIGE
AFFIXE
.
164
5.3.2
NUETZLICHE
AFFIXE
.
165
5.3.3
UNNUETZE
AFFIXE
.
166
5.4
MIT
LEGACY-CODE
UMGEHEN
.
166
5.5
ZUSAMMENFASSUNG
.
167
INHALT
6
VARIABLEN
UND
LITERALE
169
6.1
VARIABLEN
.
170
6.1.1
VARIABLENDEKLARIEREN
.
170
6.1.2
KONTROLLFLUSS
UND
GUELTIGKEITSBEREICH
.
173
6.1.3
VERKETTETE
DEKLARATIONEN
.
174
6.1.4
SCHLEIFENVARIABLEN
.
175
6.2
KONSTANTEN
.
177
6.2.1
KONSTANTEN
RICHTIG
NUTZEN
.
177
6.2.2
AUFZAEHLUNGSKLASSEN
.
179
6.2.3
KONSTANTEN
GRUPPIEREN
.
184
6.3
ZEICHENKETTEN
.
186
6.3.1
STRING-LITERALE
.
186
6.3.2
STRINGS
ZUSAMMENBAUEN
.
187
6.4
BOOLESCHE
AUSDRUECKE
.
188
6.4.1
WANN
BENUTZE
ICH
BOOLESCHE
AUSDRUECKE?
.
188
6.4.2
BOOLESCHE
FUNKTION
XSDBOOL
FUER
INLINE-DEKLARATIONEN
.
190
6.5
REGULAERE
AUSDRUECKE
.
191
6.5.1
EINFACHE
REGULAERE
AUSDRUECKE
.
191
6.5.2
GRUNDLEGENDE
PRUEFUNGEN
.
192
6.5.3
KOMPLEXE
REGULAERE
AUSDRUECKE
.
193
6.6
DAS
SCHLUESSELWORT
REDUCE
.
193
6.7
ZUSAMMENFASSUNG
.
196
7
INTERNE
TABELLEN
197
7.1
DIE
RICHTIGE
TABELLENART
VERWENDEN
.
198
7.1.1
STANDARDTABELLEN
.
198
7.1.2
SORTIERTE
TABELLEN
.
199
7.1.3
HASH-TABELLEN
.
199
7.2
DEFAULT
KEY
VERMEIDEN
.
200
7.3
ZEILEN
HINZUFUEGEN
MIT
INSERTINTO
TABLE
UND
APPEND
TO
.
201
7.3.1
DIE
ANWEISUNG
APPEND
.
201
7.3.2
DIE
ANWEISUNG
INSERT
.
202
INHALT
7.4
PRUEFEN,
OB
EINE
TABELLE
EINE
BESTIMMTE
ZEILE
ENTHAELT
.
202
7.4.1
DIE
ANWEISUNG
READ
TABLE
.
202
7.4.2
DIE
ANWEISUNG
LOOP
AT
.
203
7.4.3
DIE
ANWEISUNG
LINE_EXISTS
.
203
7.5
TABELLENINHALTE
ABFRAGEN
.
204
7.5.1
DIE
ANWEISUNG
LOOP
AT
.
204
7.5.2
DIE
ANWEISUNG
READ
TABLE
.
205
7.6
DIE
ANWEISUNG
LOOP
AT
.
WHERE
.
UND
VERSCHACHTELTE
IF-ANWEISUNGEN
.
206
7.6.1
VERSCHACHTELTES
IF
.
206
7.6.2
DIE
ANWEISUNG
LOOP
AT
.
WHERE
.
207
7.7
UNNOETIGE
TABELLENABFRAGEN
IDENTIFIZIEREN
.
207
7.8
TABELLENZEILEN
BLOCKWEISE
UND
ZEILE
FUER
ZEILE
BEARBEITEN
.
208
7.9
DESCRIBE
TABLE
UND
DIE
FUNKTION
LINES
.
209
7.9.1
DIE
ANWEISUNG
DESCRIBE
TABLE
.
209
7.9.2
DIE
ANWEISUNG
LINES
.
209
7.10
ZUSAMMENFASSUNG
.
210
8
KONTROLLFLUSS
211
8.1
DAS
SCHLUESSELWORT
IF
.
212
8.1.1
IF-AUSFUEHRUNGSPFADE
.
212
8.1.2
IF-ANWEISUNGEN
KRITISCH
HINTERFRAGEN
.
215
8.2
SCHACHTELUNGSTIEFE
.
217
8.3
BEDINGUNGEN
.
218
8.3.1
BEDINGUNGEN
POSITIV
FORMULIEREN
.
219
8.3.2
IS
NOT
ODER
NOT
IS
.
222
8.3.3
KOMPLEXE
BEDINGUNGEN
.
223
8.4
DAS
SCHLUESSELWORT
CASE
.
225
8.4.1
CASE
ODER
IF
.
225
8.4.2
CASE
ODER
SWITCH
.
227
8.4.3
WIEDERHOLTE
CASE-ODER
SWITCH-ANWEISUNGEN
.
228
8.5
DIE
ANWEISUNG
DO
1
TIMES
.
229
8.5.1
PSEUDOSCHLEIFEN
FUER
DEN
KONTROLLFLUSS
.
230
8.5.2
REFACTORING
.
231
8.6
ZUSAMMENFASSUNG
.
233
INHALT
9
KOMMENTARE
235
9.1
PRAEZISER
CODE
BENOETIGT
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
FUERS
LESEN
OPTIMIEREN
.
249
10.3
DER
PRETTY
PRINTER
.
250
10.4
WIE
VIELE
ANWEISUNGEN
PRO
ZEILE?
.
252
10.5
ZEILENLAENGE
.
252
10.6
CODE
STRAFFEN
.
254
10.7
LEERZEILEN
.
255
10.8
ZUWEISUNGEN
AUSRICHTEN
.
256
10.9
VARIABLENDEKIARATIONEN
AUSRICHTEN
.
257
10.10
WOHIN
MIT
DEN
KLAMMERN?
.
257
10.11
METHODENPARAMETER
FORMATIEREN
.
258
10.11.1
AUFRUFE
MIT
EINEM
PARAMETER
.
258
10.11.2
ZEILENUMBRUECHE
BEI
MEHREREN
PARAMETERN
.
259
10.11.3
POSITION
DER
PARAMETER
.
259
10.11.4
PARAMETER
EINRUECKEN
.
260
10.11.5
VERTIKALE
AUSRICHTUNG
VON
PARAMETERWERTEN
.
261
10.11.6
UMBRUECHE
UND
EINRUECKUNGEN
IN
METHODENAUFRUFEN
.
261
10.11.7
INLINE-DEKLARATIONENEINRUECKEN
.
262
10.12
ZUSAMMENFASSUNG
.
263
INHALT
11
FEHLERBEHANDLUNG
265
11.1
NACHRICHTEN
.
265
11.2
RUECKGABEWERTE
.
269
11.2.1
AUSNAHMEN
ODER
RUECKGABEWERTE
.
270
11.2.2
UMGANG
MIT
FEHLERN
.
272
11.3
AUSNAHMEN
.
274
11.3.1
AUSNAHMEN
FUER
FEHLERFAELLE
.
274
11.3.2
KLASSENBASIERTE
AUSNAHMEN
.
275
11.3.3
AUSNAHMEN
AUF
BASIS
DER
KLASSE
CX_STATIC_CHECK
.
280
11.3.4
AUSNAHMEN
AUF
BASIS
DER
KLASSE
CX_NO_CHECK
.
281
11.3.5
AUSNAHMEN
AUF
BASIS
DER
KLASSE
CX_DYNAMIC_EXCEPTION
.
282
11.4
AUSNAHMEN
AUSLOESEN
UND
BEHANDELN
.
284
11.4.1
AUSNAHMEN-OBERKLASSEN
AUSWAEHLEN
.
284
11.4.2
AUSNAHMEN
AUSLOESEN
.
286
11.4.3
AUSNAHMEN
BEHANDELN
.
288
11.4.4
WANN
SOLLTE
EIN
DUMP
AUSGELOEST
WERDEN?
.
290
11.5
ZUSAMMENFASSUNG
.
291
12
UNIT
TESTS
293
12.1
TESTKLASSEN
.
294
12.1.1
EIGENSCHAFTEN
VON
TESTKLASSEN
.
295
12.1.2
GUELTIGKEITSBEREICH
VON
TESTKLASSEN
.
298
12.1.3
TESTHELFERKLASSEN
.
300
12.1.4
TESTSAUSFUEHREN
.
301
12.2
TESTMETHODEN
.
304
12.2.1
METHODEN
FUER
DEN
TESTAUFBAU
.
304
12.2.2
DERGIVEN-WHEN-THEN-STIL
.
308
12.3
DIE
GETESTETE
KLASSE
.
309
12.4
NAMEN
VON
TESTKLASSEN
UND
-METHODEN
.
310
12.5
ASSERTIONS
.
313
12.5.1
EFFIZIENTE
ASSERTIONS
SCHREIBEN
.
314
12.5.2
ERWARTETE
AUSNAHMEN
PRUEFEN
.
318
12.5.3
UNERWARTETE
STATISCHE
AUSNAHMEN
.
319
12.5.4
EIGENE
ASSERTIONS
.
321
12.5.5
CONSTRAINTS
.
323
INHALT
12.6
TEST-DOUBLES
.
325
12.6.1
DEPENDENCY
INVERSION
UND
TEST-DOUBLES
.
326
12.6.2
ABAP
TEST
DOUBLE
FRAMEWORK
.
331
12.6.3
WEITERE
TESTWERKZEUGE
.
335
12.7
TEST-SEAMS
.
337
12.8
KONZEPTE
ZUM
UMGANG
MIT
UNIT
TESTS
.
339
12.8.1
TESTGETRIEBENE
ENTWICKLUNG
.
339
12.8.2
EIGENSCHAFTEN
SAUBERER
TESTS
.
341
12.8.3
TESTABDECKUNG
.
342
12.9
ZUSAMMENFASSUNG
.
343
13
PAKETE
345
13.1
ALLGEMEINE
PAKETKONZEPTE
.
345
13.1.1
ANWENDUNGSFAELLE
.
346
13.1.2
WIEDERVERWENDUNGSEBENEN
.
346
13.1.3
KOHAESION
.
347
13.2
PAKETKONZEPT
IN
ABAP
.
347
13.2.1
PAKETTYPEN
.
348
13.2.2
GEKAPSELTE
PAKETE
.
349
13.2.3
PAKETSCHNITTSTELLEN
.
349
13.2.4
BEST
PRACTICES
.
352
13.3
OPTIONEN
FUER
DAS
PAKETDESIGN
.
353
13.3.1
ANWENDUNGSBASIERTE
HIERARCHIE
.
354
13.3.2
SCHICHTENBASIERTE
HIERARCHIE
.
355
13.3.3
AUFTEILUNG
DER
HIERARCHIEN
NACH
UEBERSETZUNGSRELEVANZ
.
356
13.4
PAKETPRUEFUNGEN
.
358
13.4.1
WAS
SIND
PAKETPRUEFUNGEN?
.
359
13.4.2
MANUELLE
DURCHFUEHRUNG
VON
PAKETPRUEFUNGEN
.
361
13.4.3
AUTOMATISIERTE
AUSFUEHRUNG
VON
PAKETPRUEFUNGEN
.
362
13.4.4
BEHEBUNG
VON
PAKETPRUEFUNGSFEHLERN
.
363
13.4.5
BEST
PRACTICES
.
366
13.5
KONSEQUENZEN
EINER
MANGELHAFTEN
ODER
FEHLENDEN
PAKETSTRATEGIE
.
367
13.6
ZUSAMMENFASSUNG
.
368
INHALT
14
WIE
SIE
CLEAN
ABAP
UMSETZEN
369
14.1
GEMEINSAMES
VERSTAENDNIS
DER
TEAMMITGLIEDER
.
370
14.1.1
KOLLEKTIVE
CODE
OWNERSHIP
.
370
14.1.2
CLEAN
CODE
DEVELOPER
INITIATIVE
.
372
14.2
DEN
BROKEN-WINDOW-EFFEKT
ANGEHEN
.
374
14.2.1
STATISCHE
CODE-PRUEFUNG
.
376
14.2.2
METRIKEN
.
377
14.2.3
CODE-ABDECKUNG
.
377
14.3
CODE-REVIEWS
UND
LERNEN
.
378
14.3.1
CODE-REVIEW-PRAEFIX
.
378
14.3.2
STYLEGUIDE
.
378
14.3.3
SICHTBAR
MACHEN
.
379
14.3.4
FEEDBACK-KULTUR
.
379
14.4
CLEAN
CODE
ADVISOR
.
382
14.5
LERNTECHNIKEN
.
382
14.5.1
KATA
.
383
14.5.2
DOJO
.
384
14.5.3
CODE-RETREAT
.
384
14.5.4
FELLOWSHIP
.
385
14.5.5
PAIR
PROGRAMMING
.
385
14.5.6
MOB
PROGRAMMING
.
386
14.5.7
GEWOHNHEITEN
.
386
14.6
CONTINUOUS
LEARNING
IN
FUNKTIONSUEBERGREIFENDEN
TEAMS
.
387
14.6.1
PROFIL
EINES
TEAMMITGLIEDS
.
388
14.6.2
FUNKTIONSUEBERGREIFENDE
TEAMS
.
389
14.6.3
MULTIPLIKATOREN
IM
TEAM
.
389
14.6.4
COMMUNITY
OF
PRACTICE
.
390
14.7
ZUSAMMENFASSUNG
.
390
DAS
AUTORENTEAM
.
391
INDEX
.
393 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Häuptle, Klaus Hoffmann, Florian Jordão, Rodrigo Martin, Michel Ravinarayan, Anagha Westerholz, Kai |
author_facet | Häuptle, Klaus Hoffmann, Florian Jordão, Rodrigo Martin, Michel Ravinarayan, Anagha Westerholz, Kai |
author_role | aut aut aut aut aut aut |
author_sort | Häuptle, Klaus |
author_variant | k h kh f h fh r j rj m m mm a r ar k w kw |
building | Verbundindex |
bvnumber | BV047839278 |
classification_rvk | ST 250 |
ctrlnum | (OCoLC)1295408560 (DE-599)DNB1241345406 |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 1. Auflage |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02530nam a22006618c 4500</leader><controlfield tag="001">BV047839278</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">00000000000000.0</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">220215s2022 gw |||| 00||| ger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">21,N38</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1241345406</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783836286596</subfield><subfield code="c">: EUR 79.90 (DE), EUR 82.20 (AT), CHF 102.90 (freier Preis)</subfield><subfield code="9">978-3-8362-8659-6</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3836286599</subfield><subfield code="9">3-8362-8659-9</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9783836286596</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1295408560</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1241345406</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-NW</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-1050</subfield><subfield code="a">DE-M347</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="8">1\p</subfield><subfield code="a">004</subfield><subfield code="2">23sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Häuptle, Klaus</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Clean ABAP</subfield><subfield code="b">lesbarer und wartbarer ABAP-Code</subfield><subfield code="c">Klaus Häuptle, Florian Hoffmann, Rodrigo Jordão, Michel Martin, Anagha Ravinarayan, Kai Westerholz</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1. Auflage</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Bonn</subfield><subfield code="b">Rheinwerk Verlag</subfield><subfield code="c">2022</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">398 Seiten</subfield><subfield code="c">24 cm x 16.8 cm</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">SAP PRESS</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">ABAP</subfield><subfield code="0">(DE-588)4610511-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Clean Code</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Robert C. Martin</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Git Repository</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">SAP Community</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Softwareentwicklung</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Robert Martin</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Functional programming</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">agiles Projektmanagement</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Debugging</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Styleguide</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Hand-Buch Know-how Tutorial Wissen Tipp Anleitung Lernen</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">ABAP-Entwicklung</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Codebeispiele</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">ABAP</subfield><subfield code="0">(DE-588)4610511-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Hoffmann, Florian</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Jordão, Rodrigo</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Martin, Michel</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Ravinarayan, Anagha</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Westerholz, Kai</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="710" ind1="2" ind2=" "><subfield code="a">Rheinwerk Verlag</subfield><subfield code="0">(DE-588)1081738405</subfield><subfield code="4">pbl</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">X:MVB</subfield><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=74c5cd6efa564fcc9130c9c9c351450b&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">DNB Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=033222384&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-033222384</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">vlb</subfield><subfield code="d">20210917</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#vlb</subfield></datafield></record></collection> |
id | DE-604.BV047839278 |
illustrated | Not Illustrated |
index_date | 2024-07-03T19:11:17Z |
indexdate | 2024-07-10T09:22:45Z |
institution | BVB |
institution_GND | (DE-588)1081738405 |
isbn | 9783836286596 3836286599 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-033222384 |
oclc_num | 1295408560 |
open_access_boolean | |
owner | DE-1050 DE-M347 |
owner_facet | DE-1050 DE-M347 |
physical | 398 Seiten 24 cm x 16.8 cm |
publishDate | 2022 |
publishDateSearch | 2022 |
publishDateSort | 2022 |
publisher | Rheinwerk Verlag |
record_format | marc |
series2 | SAP PRESS |
spelling | Häuptle, Klaus Verfasser aut Clean ABAP lesbarer und wartbarer ABAP-Code Klaus Häuptle, Florian Hoffmann, Rodrigo Jordão, Michel Martin, Anagha Ravinarayan, Kai Westerholz 1. Auflage Bonn Rheinwerk Verlag 2022 398 Seiten 24 cm x 16.8 cm txt rdacontent n rdamedia nc rdacarrier SAP PRESS ABAP (DE-588)4610511-6 gnd rswk-swf Clean Code Robert C. Martin Git Repository SAP Community Softwareentwicklung Robert Martin Functional programming agiles Projektmanagement Debugging Styleguide Hand-Buch Know-how Tutorial Wissen Tipp Anleitung Lernen ABAP-Entwicklung Codebeispiele ABAP (DE-588)4610511-6 s DE-604 Hoffmann, Florian Verfasser aut Jordão, Rodrigo Verfasser aut Martin, Michel Verfasser aut Ravinarayan, Anagha Verfasser aut Westerholz, Kai Verfasser aut Rheinwerk Verlag (DE-588)1081738405 pbl X:MVB text/html http://deposit.dnb.de/cgi-bin/dokserv?id=74c5cd6efa564fcc9130c9c9c351450b&prov=M&dok_var=1&dok_ext=htm Inhaltstext DNB Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=033222384&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis 1\p vlb 20210917 DE-101 https://d-nb.info/provenance/plan#vlb |
spellingShingle | Häuptle, Klaus Hoffmann, Florian Jordão, Rodrigo Martin, Michel Ravinarayan, Anagha Westerholz, Kai Clean ABAP lesbarer und wartbarer ABAP-Code ABAP (DE-588)4610511-6 gnd |
subject_GND | (DE-588)4610511-6 |
title | Clean ABAP lesbarer und wartbarer ABAP-Code |
title_auth | Clean ABAP lesbarer und wartbarer ABAP-Code |
title_exact_search | Clean ABAP lesbarer und wartbarer ABAP-Code |
title_exact_search_txtP | Clean ABAP lesbarer und wartbarer ABAP-Code |
title_full | Clean ABAP lesbarer und wartbarer ABAP-Code Klaus Häuptle, Florian Hoffmann, Rodrigo Jordão, Michel Martin, Anagha Ravinarayan, Kai Westerholz |
title_fullStr | Clean ABAP lesbarer und wartbarer ABAP-Code Klaus Häuptle, Florian Hoffmann, Rodrigo Jordão, Michel Martin, Anagha Ravinarayan, Kai Westerholz |
title_full_unstemmed | Clean ABAP lesbarer und wartbarer ABAP-Code Klaus Häuptle, Florian Hoffmann, Rodrigo Jordão, Michel Martin, Anagha Ravinarayan, Kai Westerholz |
title_short | Clean ABAP |
title_sort | clean abap lesbarer und wartbarer abap code |
title_sub | lesbarer und wartbarer ABAP-Code |
topic | ABAP (DE-588)4610511-6 gnd |
topic_facet | ABAP |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=74c5cd6efa564fcc9130c9c9c351450b&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=033222384&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT hauptleklaus cleanabaplesbarerundwartbarerabapcode AT hoffmannflorian cleanabaplesbarerundwartbarerabapcode AT jordaorodrigo cleanabaplesbarerundwartbarerabapcode AT martinmichel cleanabaplesbarerundwartbarerabapcode AT ravinarayananagha cleanabaplesbarerundwartbarerabapcode AT westerholzkai cleanabaplesbarerundwartbarerabapcode AT rheinwerkverlag cleanabaplesbarerundwartbarerabapcode |