Optimieren Sie Ihren SAPUI5-Code für bessere Lesbarkeit und Wartbarkeit! Entdecken Sie bewährte Methoden von Experten in diesem Buch, um JavaScript-Funktionen effektiv zu nutzen und Ihren SAPUI5-Code zu verbessern. Module, Klassen, Funktionen, Namen, Variablen, Literalen, Kommentaren, Code-Metriken: Übernehmen Sie Best Practices für Formatierung, Testen, Implementierung und vieles mehr! Aus dem Inhalt: JavaScript Module und Klassen Funktionen Namensgebung Variablen und Literale Kontrollstruktur Fehlerbehandlung Formatierung Statische Code-Prüfung Testen Implementierung Inhaltsverzeichnis Einleitung ... 17 1. Einführung ... 25 1.1 ... Was ist Clean SAPUI5? ... 26 1.2 ... Erste Schritte mit Clean SAPUI5 ... 28 1.3 ... Umgang mit Legacy-Code ... 30 1.4 ... Code automatisch prüfen ... 32 1.5 ... Wie hängt Clean SAPUI5 mit anderen Leitfäden zusammen? ... 32 1.6 ... Zusammenfassung ... 34 2. JavaScript und SAPUI5 ... 35 2.1 ... Funktionen von JavaScript ES6+ ... 36 2.2 ... TypeScript ... 119 2.3 ... Zusammenfassung ... 131 3. Projektstruktur ... 133 3.1 ... Komponenten in SAPUI5 ... 133 3.2 ... Wichtige Artefakte ... 136 3.3 ... Freestyle-Anwendungen ... 145 3.4 ... SAP Fiori Elements ... 147 3.5 ... Bibliotheksprojekte ... 155 3.6 ... Model-View-Controller-Assets ... 158 3.7 ... Zusammenfassung ... 161 4. Module und Klassen ... 163 4.1 ... Controller-Inflation ... 164 4.2 ... Modullebenszyklus ... 199 4.3 ... Wiederverwendbarkeit und Testbarkeit ... 208 4.4 ... Servicemodule vs. Klassenmodule ... 219 4.5 ... Zusammenfassung ... 226 5. Funktionen ... 229 5.1 ... Funktionsdefinition ... 229 5.2 ... Funktionsobjekt ... 231 5.3 ... Instanzmethoden ... 233 5.4 ... Event-Handler und Callbacks ... 236 5.5 ... Ausführungskontext der Callback-Funktion ... 236 5.6 ... Getter und Setter ... 238 5.7 ... Anonyme Funktionen ... 241 5.8 ... Funktionsparameter ... 243 5.9 ... Promises ... 258 5.10 ... Generatoren ... 265 5.11 ... Funktionskörper ... 266 5.12 ... Funktionen aufrufen ... 274 5.13 ... Closures ... 277 5.14 ... Zusammenfassung ... 278 6. Namensgebung ... 281 6.1 ... Beschreibende Namen ... 282 6.2 ... Domänenbegriffe ... 283 6.3 ... Entwurfsmuster ... 285 6.4 ... Konsistenz ... 285 6.5 ... Namen kürzen ... 287 6.6 ... Füllwörter ... 288 6.7 ... Casing ... 289 6.8 ... Klassen und Enums ... 291 6.9 ... Funktionen und Methoden ... 292 6.10 ... Variablen und Parameter ... 294 6.11 ... Private Elemente ... 300 6.12 ... Namensräume ... 302 6.13 ... Control-IDs ... 304 6.14 ... Ungarische Notation ... 305 6.15 ... Alternative Regeln ... 307 6.16 ... Zusammenfassung ... 309 7. Variablen und Literale ... 311 7.1 ... Variablen ... 311 7.2 ... Literale ... 316 7.3 ... Zusammenfassung ... 335 8. Kontrollfluss ... 337 8.1 ... Bedingungen ... 338 8.2 ... Schleifen ... 342 8.3 ... Bedingte Komplexität ... 345 8.4 ... Zusammenfassung ... 353 9. Fehlerbehandlung ... 355 9.1 ... »throw«- und »try/catch«-Anweisungen ... 355 9.2 ... Fehlerobjekte verwenden ... 357 9.3 ... Fehlerbehandlung über Meldungen ... 359 9.4 ... Fehlerbehandlung mit Controls ... 361 9.5 ... Best Practices für die Fehlerbehandlung ... 365 9.6 ... Zusammenfassung ... 369 10. Formatierung ... 371 10.1 ... Motivation ... 371 10.2 ... Vertikale und horizontale Formatierung ... 372 10.3 ... Textbereich ein- oder ausrücken ... 382 10.4 ... XML-Views ... 385 10.5 ... Weitere Hinweise ... 391 10.6 ... Formatierung für TypeScript in SAPUI5 ... 395 10.7 ... Erstellen und Pflegen eines Codestil-Leitfadens ... 407 10.8 ... Formatierungswerkzeuge ... 409 10.9 ... Zusammenfassung ... 415 11. Kommentare ... 417 11.1 ... Drücken Sie Ihre Absicht im Code aus ... 418 11.2 ... Das Gute: Kommentarplatzierung und -nutzung ... 419 11.3 ... Das Schlechte: Zu vermeidende oder umzustrukturierende Kommentare ... 431 11.4 ... Das Hässliche: Sonderkommentare ... 442 11.5 ... Zusammenfassung ... 445 12. Statische Codeprüfungen und Codemetriken ... 447 12.1 ... Linting ... 449 12.2 ... Codemetriken ... 469 12.3 ... Zusammenfassung ... 491 13. Testen ... 493 13.1 ... Prinzipien ... 494 13.2 ... Zu testender Code ... 508 13.3 ... Injektion ... 510 13.4 ... Testmethoden und Journeys ... 516 13.5 ... Testdaten ... 519 13.6 ... Assertions ... 523 13.7 ... Zusammenfassung ... 529 14. TypeScript und verwandte Technologien ... 531 14.1 ... TypeScript ... 531 14.2 ... UI5 Web Components ... 547 14.3 ... Fundamental Library ... 556 14.4 ... Zusammenfassung ... 560 15. Wie Sie Clean SAPUI5 umsetzen ... 561 15.1 ... Gemeinsames Verständnis der Teammitglieder ... 562 15.2 ... Kollektive Code Ownership ... 562 15.3 ... Clean Code Developer Initiative ... 564 15.4 ... Den Broken-Window-Effekt angehen ... 566 15.5 ... Code-Reviews und Lernen ... 570 15.6 ... Clean Code Advisor ... 574 15.7 ... Lerntechniken ... 574 15.8 ... Continuous Learning in funktionsübergreifenden Teams ... 579 15.9 ... Zusammenfassung ... 582 Die Autoren ... 583 Index ... 585
Rodrigo Jordão Knihy


Clean ABAP
Das offizielle Begleitbuch zum Git-Repository - Clean-Code-Prinzipien für die ABAP-Programmierung
- 398 stránok
- 14 hodin čítania
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 Interfaces Methoden Namen von Objekten Variablen und Literale Interne Tabellen Kontrollfluss Kommentare Formatierung Fehlerbehandlung Unit-Tests Pakete Clean ABAP im Team umsetzen Inhaltsverzeichnis 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