Cover von Weniger schlecht programmieren wird in neuem Tab geöffnet

Weniger schlecht programmieren

Verfasser*in: Suche nach Verfasser*in Passig, Kathrin; Jander, Johannes
Verfasser*innenangabe: Kathrin Passig ; Johannes Jander
Jahr: 2013
Verlag: Köln [u.a.], O'Reilly
Mediengruppe: Buch
verfügbar

Exemplare

AktionZweigstelleStandorteStatusFristVorbestellungen
Vorbestellen Zweigstelle: 07., Urban-Loritz-Pl. 2a Standorte: NT.EQ Pass / College 6c - Informatik & Computer Status: Verfügbar Frist: Vorbestellungen: 0
Vorbestellen Zweigstelle: 07., Urban-Loritz-Pl. 2a Standorte: NT.EQ Pass / College 6c - Informatik & Computer Status: Verfügbar Frist: Vorbestellungen: 0
Vorbestellen Zweigstelle: 12., Meidlinger Hauptstraße 73 Standorte: NT.EQ Pass Status: Verfügbar Frist: Vorbestellungen: 0

Inhalt

Kathrin Passig gilt als Meisterin des unorthodoxen Blickwinkels, und wenn sie sich zusammen tut mit einem gestandenen Entwickler, um ein Programmierbuch zu schreiben, darf man gespannt sein. Mit Sachverstand und Witz widmen sich die beiden den Holzwegen, Fehleinschätzungen und Irrtümern, die insbesondere Programmier-Neulingen und Hobby-Entwicklern das Leben schwer machen. Ein Buch für alle, die ahnen, dass ein besserer Programmierer in ihnen steckt.
Hätte ich das früher gewusst!Auch wenn es nicht unbedingt auf der Hand liegt: Programmieren hat viel mit Kommunikation zu tun. Programmierstil, Namensgebung, Umgang mit Kommentaren oder mit Fremdcode - oftmals haben sich gerade dort Konventionen etabliert, wo eine Sprache keine strengen Vorgaben macht. Lernen Sie die unterschiedlichen Traditionen der verschiedenen Sprachen kennen und erfahren Sie, wie Sie sich auf diesem unsicheren Terrain halbwegs unfallfrei bewegen.
Vom Umgang mit FehlernWer hat nicht schon Stunden damit verbracht, nach einem Fehler im Programm zu suchen, um herauszufinden, warum etwas nicht so funktioniert, wie eigentlich geplant? Es gibt eine Menge Anzeichen, die darauf schließen lassen, wo genau etwas im Code nicht stimmt. Lernen Sie, wie Sie solche Roststellen erkennen, wie Sie mit systematischem Debugging Fehler finden und durch Tests dauerhaft bändigen.
Die Qual der WahlNicht jede Programmiersprache eignet sich gleich gut für jede Aufgabe, Daten lassen sich auf unterschiedliche Weise vorhalten, Entwicklungsumgebungen und Versionskontrollsysteme gibt es viele - auf technischer Ebene gilt es jede Menge Entscheidungen zu treffen, deren Konsequenzen schwer zu überreißen sind. Universell gültige Empfehlungen kann niemand abgeben, aber mit den Erfahrungswerten und Entscheidungshilfen der Autoren fahren Sie für den Anfang nicht schlecht.
Quelle: Verlagstext
 
/ AUS DEM INHALT: / / /
Inhaltsverzeichnis:
Vorwort XIII
Teil 1:Hallo Wels Hallo Welt
1 Bin ich hier richtig? 3
2 Zwischen Hybris und Demut 7
Schwächen als Stärken 9
Richtiges muss nicht schwierig sein 12
Teil 2: Programmieren als Verständigung
3 Du bist wie die andern 17
4 Konventionen 19
Englisch oder nicht? 20
Die Steinchen des Anstoßes 23
Konventionen im Team 26
5 Namensgebung 29
Namenskonventionen 29
Von Byzanz über Konstantinopel nach Istanbul 31
Was Namen können sollten 33
Der Stoff, aus dem die Namen sind 40
Boolesche Variablen 50
Objektorientierte Programmierung 52
Datenbanken 53
Falsche Freunde 55
Wie es weitergeht 58
6 Kommentare 61
Mehr ist manchmal mehr 63
Zur äußeren Form von Kommentaren 64
Dokumentationskommentare 66
Wann und was soll man kommentieren? 67
Anzeichen, dass ein Kommentar eine gute Idee wäre 69
Problematische Kommentare ' 74
7 Code lesen 77
Muss ich wirklich? 77
Zuerst die Dokumentation lesen 79
Sourcecode ausdrucken 80
Zeichnen Sie schematisch auf, was einzelne Programmteile tun 81
Von oben nach unten, von leicht nach schwer 82
Lernen Sie Spurenlesen 82
80/20 ist gut genug (meistens) 83
Vergessen Sie die Daten nicht 84
Der Beweis ist das Programm 84
Gemeinsames Code-Lesen 85
8 Hilfe suchen 87
Der richtige Zeitpunkt 88
An der richtigen Stelle fragen 91
Die Anfrage richtig strukturieren 91
An den Leser denken 94
Nicht zu viel erwarten 95
Keine unbewussten Fallen stellen 96
Höflich bleiben - egal, was passiert 96
9 Lizenz zum Helfen 99
Der falsche Anlass 99
Die eigennützige Motivation 101
Die fehlende Einfühlung 102
Zu viel auf einmal 103
Antworten auf konkrete Fragen 105
Wenn Sie selbst keine Antwort wissen 106
Wenn Sie mit schlechteren Programmierern zusammenarbeiten 107
Schlechten Code gefasst ertragen 108
10 Überleben im Team 111
Ich war's nicht! 113
Der Bus-Faktor 114
Zusammenarbeit mit Anwendern 116
Zusammenarbeit mit Freiwilligen 117
Aussprache von Begriffen 117
Teil 3: Umgang mit Fehlern
11 Unrecht haben für Anfänger 123
Im Irrtum zu Hause 124
Fehlerforschung im Alltag 125
Der Hund hat die Datenbank gefressen! 126
Der gepolsterte Helm 127
12 Debugging I: Fehlersuche als Wissenschaft 131
Systematische Fehlersuche 133
Beobachtung 135
Was das Beobachten erschwert 136
Analyse und Hypothesenbildung 138
Was das Bilden von Hypothesen erschwert 138
Test der Hypothesen 139
Was das Testen von Hypothesen erschwert 140
13 Debugging II: Finde den Fehler 143
Fehlermeldungen sind unsere Freunde 143
Wer will da was von mir? 144
Diagnosewerkzeuge und -Strategien 147
Wenn sonst nichts hilft 160
Wenn auch das nicht hilft 162
Die häufigsten Fehlerursachen schlechter Programmierer 163
14 Schlechte Zeichen oder Braune M&Ms 165
Zu große Dateien 166
Sehr lange Funktionen 167
Zu breite Funktionen 167
Tief verschachtelte if/then-Bedingungen 168
Mitten im Code auftauchende Zahlen 170
Komplexe arithmetische Ausdrücke im Code 170
Globale Variablen 171
Reparaturcode 172
Eigene Implementierung vorhandener Funktionen 173
Sonderfälle 174
Inkonsistente Schreibweisen 174
Funktionen mit mehr als fünf Parametern 174
Code-Duplikation 175
Zweifelhafte Dateinamen 176
Leselabyrinth 176
Ratlose Kommentare 176
Sehr viele Basisklassen oder Interfaces 177
Sehr viele Methoden oder Member-Variablen 177
Auskommentierte Codeblöcke und Funktionen 178
Browservorschriften 178
Verdächtige Tastaturgeräusche 179
15 Refactoring 181
Neu schreiben oder nicht? 182
Wann sollte man refakturieren? 183
Eins nach dem anderen 186
Code auf mehrere Dateien verteilen 191
Ein Codemodul in kleinere aufspalten 191
Nebenwirkungen entfernen 194
Code zusammenfassen 195
Bedingungen verständlicher gestalten 198
Die richtige Schleife für den richtigen Zweck 201
Schleifen verständlicher gestalten 201
Variablen kritisch betrachten 203
Refactoring von Datenbanken 204
Was man nebenbei erledigen kann 206
Ist das jetzt wirklich besser? 208
Wann man auf Refactoring besser verzichtet 208
Ein Problem und seine Lösung 211
16 Testing 213
Warum testen? 213
Testverfahren 214
Datenvalidierungen 220
Performancetests 222
Richtig testen 225
17 Warnhinweise 227
GET und POST 228
Zeichenkodierung 229
Zeitangaben 230
Kommazahlen als String, Integer oder Decimal speichern 232
Variablen als Werte oder Referenzen übergeben 233
Der schwierige Umgang mit dem Nichts 236
Rekursion 237
Usability 238
18 Kompromisse 241
Trügerische Tugenden 243
Absolution: Wann Bad Practice okay ist 247
Teil 4: Wahl der Mittel
19 Mach es nicht selbst 255
Der Weg zur Lösung 257
Bibliotheken 258
Umgang mit Fremdcode 261
Was man nicht selbst zu machen braucht 262
20 Werkzeugkasten 273
Editoren 274
Welche Programmiersprache ist die richtige? 275
REPL 279
Diff und Patch 282
Paketmanager 284
Frameworks 286
Entwicklungsumgebungen 289
21 Versionskontrolle 297
Alternativen 299
Arbeiten mit einem VCS 300
Konflikte auflösen 302
Welches Versionskontrollsystem? 303
Gute Ideen beim Arbeiten mit Versionskontrolle 305
Schlechte Ideen beim Arbeiten mit Versionskontrolle 306
Versionskontrollsysteme als Softwarebausteine 307
22 Command and Conquer-vom Überleben auf der Kommandozeile 309
Mehr Effizienz durch Automatisierung 310
Unsere langbärtigen Vorfahren 312
Windows 313
Was jeder Programmierer wissen sollte 313
Navigation 318
Dateien 318
Betrachten 321
Suchen und Finden 322
Ressourcen schonen 325
Zusammenarbeit 326
Zeitsteuerung 326
Editieren auf dem Server 328
Internet 328
Muss ich mir das alles merken? 330
Not the whole Shebang! 330
23 Objektorientierte Programmierung 333
Vorteile der objektorientierten Programmierung 335
Die Prinzipien objektorientierter Programmierung 337
Sinnvoller Einsatz von OOP 344
Nachteile und Probleme 347
Unterschiedliche Objektmodelle, je nach Sprache 348
Objektorientierte Programmierung und Weltherrschaftspläne 348
24 Aufbewahrung von Daten 351
Dateien 352
Versionskontrollsysteme 357
Datenbanken 357
25 Sicherheit 365
Wichtige Konzepte 366
Vor- und Nachteile der Offenheit 368
Vom Umgang mit Passwörtern 370
Authentifizierungsverfahren 371
SQL Injection und XSS - die Gefahren in User-Content 375
Weiße Listen sind besser als schwarze 380
Alle Regler nach links 381
Auch die Hintertür abschließen 383
Penetration Testing 384
Die Fehler der anderen 385
Sicherheit ist ein Prozess 386
26 Nützliche Konzepte 389
Exceptions 389
Error Handling 392
State und Statelessness 396
IDs, GUIDs, UUIDs 397
Sprachfamilien 399
Variablentypen 401
Trennung von Inhalt und Präsentation 404
Trennung von Entwicklungs-und Produktivserver 405
Selektoren 406
Namespaces 408
Scope von Variablen 410
Assertions 411
Transaktionen und Rollbacks 414
Hashes, Digests, Fingerprints 415
CRUD und REST 417
27 Wie geht es weiter? 419
Was ist ein guter Programmierer? 420
Zum Weiterlesen 421
Danksagungen 422
Index 423

Details

Verfasser*in: Suche nach Verfasser*in Passig, Kathrin; Jander, Johannes
Verfasser*innenangabe: Kathrin Passig ; Johannes Jander
Jahr: 2013
Verlag: Köln [u.a.], O'Reilly
opens in new tab
Systematik: Suche nach dieser Systematik NT.EQ
Suche nach diesem Interessenskreis
ISBN: 978-3-89721-567-2
2. ISBN: 3-89721-567-5
Beschreibung: 1. Aufl., XX, 431 S. : Ill.
Schlagwörter: Programmfehler, Programmierung, Computer / Programmierung, Computerprogrammierung, Programmieren <Informatik>, Programmierfehler, Programmiertechnik
Suche nach dieser Beteiligten Person
Sprache: Deutsch
Mediengruppe: Buch