Perl  - Best Practices - Damian Conway

Perl - Best Practices

Die deutsche Ausgabe

(Autor)

Buch | Softcover
584 Seiten
2006
O'Reilly (Verlag)
978-3-89721-454-5 (ISBN)
49,90 inkl. MwSt
  • Titel ist leider vergriffen;
    keine Neuauflage
  • Artikel merken
Viele Programmierer erstellen ihren Code instinktiv und vertrauen dabei auf ihre Intuition. Aber wer professionell mit Perl arbeiten möchte, der darf bei dieser intuitiven Form der Programmierung nicht stehen bleiben. Perl Best Practices erklärt die Regeln, Konventionen, Standards und Praktiken, die es dem Perl-Programmierer erlauben, professionell Code zu erstellen und Software-Projekte erfolgreich abschließen zu können.

Gewürzt mit einer feinen Dosis australischem Humor stellt der Autor Damian Conway insgesamt 256 Grundsätze und Leitlinien vor, mit denen Sie besseren und professionellen Perl-Code programmieren lernen. Das Regelwerk behandelt das Layout von Code, Namenskonventionen, Wahl der Daten- und Kontrollstrukturen, Schnittstellen-Design und –Implementierung, Modularität, Objektorientierung, Fehlerbehandlung, Testing und Debugging.
Die konsequente Anwendung der im Buch aufgeführten Grundsätze und Leitlinien verhilft Ihnen zu übersichtlichem, robustem, effizientem, gut zu pflegendem und präzisem Code. Damian Conway hat diese Leitsätze für professionelles Programmieren nicht im realitätsfernen Elfenbeinturm entwickelt, sondern sie basieren auf der Erfahrung jahrelanger professioneller Arbeit mit Perl, gewonnen in vielen, umfassenden Software-Projekten.
Mit dem Wissen aus Perl Best Practices werden Sie zukünftig Ihre Perl-Programme schneller, klüger und wieder verwendbar erstellen können.

"Als Projektverantwortlicher von großen Perl-Software-Projekten habe ich veranlasst, dass alle Programmierer meines Teams ein Exemplar von Perl Best Practices auf ihren Schreibtischen haben. Wir setzen es wie eine firmeninterne Programmierrichtlinie ein."
- Randal Schwartz, Autor zahlreicher bekannter Perl-Bücher

Inhaltsverzeichnis
Vorwort XV
1
Best Practices 1

Drei Ziele 3
Dieses Buch 6
Das Verhalten ändern 7
2
Code-Layout 9

Klammerung 10
Schlüsselwörter 12
Unterroutinen und Variablen 13
Built-ins 14
Schlüssel und Indizes 15
Operatoren 16
Semikolons 17
Kommas 19
Zeilenlängen 20
Einrückung 21
Tabulatoren 22
Blöcke 24
Segmentierung ("Chunking") 25
Else-Konstrukte 26
Vertikale Ausrichtung 28
Umbrechen langer Zeilen 30
Nichtterminale Ausdrücke 32
Nach Vorrang umbrechen 32
Zuweisungen 33
Ternäre Operatoren 34
Listen 35
Automatisiertes Layout 36
3
Namenskonventionen 39

Identifier 40
Boolesche Werte 44
Referenzvariablen 45
Arrays und Hashes 46
Unterstriche 48
Groß-/Kleinschreibung 49
Abkürzungen 50
Mehrdeutige Abkürzungen 51
Mehrdeutige Namen 52
Utility-Routinen 53
4
Werte und Ausdrücke 55

Trennzeichen für Strings 56
Leerstrings 57
Strings mit nur einem Zeichen 58
Escaping von Zeichen 59
Konstanten 60
Führende Nullen 63
Lange Zahlen 65
Mehrzeilige Strings 65
Here-Dokumente 66
Einrückung von Here-Dokumenten 67
Terminatoren für Here-Dokumente 68
Quoting bei Here-Dokumente 70
Barewords 71
Fette Kommas 72
Dünne Kommas 74
Operatoren mit niedrigem Vorrang 76
Listen 77
Listen-Zugehörigkeit 78
5
Variablen 80

Lexikalische Variablen 80
Paketvariablen 82
Lokalisierung 84
Initialisierung 85
Interpunktionsvariablen 86
Lokalisierung von Interpunktionsvariablen 89
Matching-Variablen 90
Dollar-Unterstrich 93
Array-Indizes 96
Slicing 97
Slice-Layout 98
Slices auslagern 99
6
Kontrollstrukturen 101

If-Blöcke 101
Postfix-Selektoren 102
Andere Postfix-Modifikatoren 104
Negative Kontrollanweisungen 105
Schleifen im C-Stil 108
Unnötige Indizes 110
Notwendige Indizes 112
Iteratorvariablen 114
Nicht-lexikalische Schleifen-Iteratoren 116
Generierung von Listen 119
Auswahl von Listenelementen 121
Listentransformation 122
Komplexe Abbildungen 123
Nebeneffekte der Listenverarbeitung 124
Mehrteilige Auswahl 127
Werte-Switches 127
Tabellarische Ternäre 131
do/while-Schleifen 133
Lineare Codierung 135
Verteilte Kontrolle 137
Redo 138
Schleifen-Label 140
7
Dokumentation 143

Arten der Dokumentation 144
Schablonen 145
Erweiterte Schablonen 149
Speicherort 151
Kontiguität 151
Position 152
Technische Dokumentation 152
Kommentare 153
Algorithmische Dokumentation 154
Erläuternde Dokumentation 155
Defensive Dokumentation 156
Indikative Dokumentation 157
Diskursive Dokumentation 157
Korrekturlesen 160
8
Fest eingebaute Funktionen 161

Sortieren 161
Listen umkehren 165
Skalare umkehren 166
Daten mit fester Breite 166
Getrennte Daten 170
Daten variabler Länge 171
Evaluierung von Strings 174
Das Sortieren automatisieren 177
Teilstrings 178
Hashwerte 179
Globbing 180
Sleep 181
Mapping und Grepping 183
Utilities 184
9
Unterroutinen 189

Aufruf-Syntax 190
Homonyme 192
Argumentlisten 193
Benannte Argumente 196
Fehlende Argumente 198
Standardwerte für Argumente 199
Skalare Rückgabewerte 201
Kontextabhängige Rückgabewerte 203
Kontextabhängige Rückgabewerte 206
Prototypen 209
Implizite Returns 212
Fehler zurückgeben 215
10
I/O 217

Dateihandles 218
Indirekte Dateihandles 220
Lokalisierung von Dateihandles 221
Sauberes Öffnen 222
Fehlerprüfung 224
Aufräumen 225
Eingabeschleifen 226
Zeilenbasierte Eingaben 228
Einfaches Saugen 229
Power-Saugen 230
Standardeingabe 232
Ausgabe an Dateihandles 233
Einfaches Prompting 233
Interaktivität 234
Power-Prompting 236
Fortschrittsanzeigen 238
Automatische Fortschrittsanzeigen 240
Autoflushing 241
11
Referenzen 243

Dereferenzierung 244
Geklammerte Referenzen 245
Symbolische Referenzen 246
Ringförmige Referenzen 248
12
Reguläre Ausdrücke 252

Erweiterte Formatierung 253
Zeilengrenzen 255
String-Grenzen 256
Ende des Strings 257
Alles verarbeiten 258
"Faule" Flags 259
Klammern als Trennsymbole 260
Andere Trennsymbole 263
Metazeichen 264
Benannte Zeichen 265
Eigenschaften 266
Whitespace 267
Beliebige Wiederholungen 268
Einfangende Klammern 270
Eingefangene Werte 271
Capture-Variablen 271
Stückweises Matching 275
Tabellarische Regexes 277
Konstruktion regulärer Ausdrücke 279
Vorgefertigte Regexes 281
Alternierungen 283
Alternierungen ausgliedern 284
Backtracking 287
Stringvergleiche 290
13
Fehlerbehandlung 292

Ausnahmen 293
Fehler bei Built-ins 298
Kontextabhängige Fehler 299
Systemische Fehler 300
Behebbare Fehler 301
Fehler melden 302
Fehlermeldungen 304
Fehler dokumentieren 306
OO-Ausnahmen 307
Volatile Fehlermeldungen 310
Ausnahmehierarchien 311
Ausnahmen verarbeiten 312
Exception-Klassen 313
Ausnahmen entpacken 317
14
Kommandozeilen-Verarbeitung 320

Kommandozeilen-Struktur 321
Kommandozeilen-Konventionen 322
Metaoptionen 324
In-situ-Argumente 325
Kommandozeilen-Verarbeitung 327
Konsistenz der Schnittstelle 332
Konsistenz zwischen verschiedenen Anwendungen 336
15
Objekte 340

OO verwenden 341
Kriterien 342
Pseudohashes 344
Eingeschränkte Hashes 344
Kapselung 345
Konstruktoren 355
Klonen 355
Destruktoren 358
Methoden 360
Zugriffsmethoden 362
Lvalue-Zugriffsmethoden 369
Indirekte Objekte 372
Klassen-Schnittstellen 375
Überladen von Operatoren 378
Implizite Umwandlungen 379
16
Klassenhierarchien 382

Vererbung 383
Objekte 384
Blessing von Objekten 388
Konstruktor-Argumente 391
Initialisierung der Basisklasse 395
Konstruktion und Destruktion 400
Klassenhierarchien automatisieren 408
Attribut-Freigabe 409
Aufbau von Attributen 412
Implizite Umwandlungen 413
Kumulative Methoden 414
Autoloading 419
17
Module 423

Schnittstellen 424
Refactoring 427
Versionsnummern 430
Versionsanforderungen 432
Export 434
Deklarativer Export 436
Schnittstellen-Variablen 438
Module erzeugen 443
Die Standardbibliothek 444
CPAN 446
18
Testen und Debugging 448

Testfälle 448
Modulares Testen 449
Test-Suiten 453
Fehler 454
Was getestet werden soll 454
Debugging und Testen 456
Nehmen Sie es genau 458
Warnungen 460
Korrektheit 461
Überschreiben von strict 462
Der Debugger 466
Manuelles Debugging 466
Halbautomatisches Debugging 468
19
Vermischtes 471

Versionskontrolle 471
Andere Sprachen 472
Konfigurationsdateien 475
Formate 479
Tie 482
Cleverness 484
Gekapselte Cleverness 485
Benchmarking 487
Speicher 490
Caching 491
Memoising 493
Caching zu Optimierungszwecken 494
Profiling 496
Bugs durch Code-Änderungen einführen 498
A
Grundlegende beste Praktiken in Perl 501
B
Beste Praktiken in Perl 504
C
Editor-Konfigurationen 517
D
Empfohlene Module und Utilities 523
E
Bibliografie 529
Index 531

Sprache deutsch
Gewicht 982 g
Einbandart Paperback
Themenwelt Informatik Programmiersprachen / -werkzeuge Perl
Schlagworte Hardcover, Softcover / Informatik, EDV/Programmiersprachen • HC/Informatik, EDV/Programmiersprachen • Perl 6 • Perl, Programmierung, Software-Entwicklung, Skriptsprachen, • Programmieren • Programmierung • Skriptsprache • Software-Entwicklung
ISBN-10 3-89721-454-7 / 3897214547
ISBN-13 978-3-89721-454-5 / 9783897214545
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
Keeping the Easy, Hard, and Impossible Within Reach

von Brian D. Foy

Buch | Softcover (2018)
O'Reilly Media (Verlag)
53,85