Weniger schlecht programmieren
Ein gelungenes Buch in einem witzigen Schreibstil für alle die wissen das man immer noch besserer bzw. sauberer programmieren kann.— Nina Otto (Buchhändlerin, Lehmanns Media)
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 Fehlern
Wer 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 Wahl
Nicht 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.
»Ein Experte ist jemand, der auf einem Spezialgebiet alle denkbaren Fehler bereits gemacht hat.« Niels Bohr, Nobelpreisträger für Physik
Kathrin Passig, geboren 1970, ist Journalistin, Übersetzerin, Programmiererin und im Internet aufgewachsen. Sie betreibt gemeinsam mit Kollegen das Weblog »riesenmaschine.de« und die virtuelle Firma Zentrale Intelligenz Agentur. 2006 erhielt sie den Bachmannpreis und den Publikumspreis bei den dreißigsten Tagen der deutschsprachigen Literatur in Klagenfurt.
Johannes Jander hat schon als Jugendlicher begeistert programmiert, musste aber erst auf einem Umweg über die Biologie zur Softwareentwicklung zurückfinden. Inzwischen arbeitet er hauptberuflich als Entwickler in einem großen Unternehmen.
Hallo Wels Hallo Welt
Chapter 1 Bin ich hier richtig?
Chapter 2 Zwischen Hybris und Demut
Schwächen als Stärken
Richtiges muss nicht schwierig sein
Programmieren als Verständigung
Chapter 3 Du bist wie die andern
Chapter 4 Konventionen
Englisch oder nicht?
Die Steinchen des Anstoßes
Konventionen im Team
Chapter 5 Namensgebung
Namenskonventionen
Von Byzanz über Konstantinopel nach Istanbul
Was Namen können sollten
Der Stoff, aus dem die Namen sind
Boolesche Variablen
Objektorientierte Programmierung
Datenbanken
Falsche Freunde
Wie es weitergeht
Chapter 6 Kommentare
Mehr ist manchmal mehr
Zur äußeren Form von Kommentaren
Dokumentationskommentare
Wann und was soll man kommentieren?
Anzeichen, dass ein Kommentar eine gute Idee wäre
Problematische Kommentare
Chapter 7 Code lesen
Muss ich wirklich?
Zuerst die Dokumentation lesen
Sourcecode ausdrucken
Zeichnen Sie schematisch auf, was einzelne Programmteile tun
Von oben nach unten, von leicht nach schwer
Lernen Sie Spurenlesen
80/20 ist gut genug (meistens)
Vergessen Sie die Daten nicht
Der Beweis ist das Programm
Gemeinsames Code-Lesen
Chapter 8 Hilfe suchen
Der richtige Zeitpunkt
An der richtigen Stelle fragen
Die Anfrage richtig strukturieren
An den Leser denken
Nicht zu viel erwarten
Keine unbewussten Fallen stellen
Höflich bleiben – egal, was passiert
Chapter 9 Lizenz zum Helfen
Der falsche Anlass
Die eigennützige Motivation
Die fehlende Einfühlung
Zu viel auf einmal
Antworten auf konkrete Fragen
Wenn Sie selbst keine Antwort wissen
Wenn Sie mit schlechteren Programmierern zusammenarbeiten
Schlechten Code gefasst ertragen
Chapter 10 Überleben im Team
Ich war’s nicht!
Der Bus-Faktor
Zusammenarbeit mit Anwendern
Zusammenarbeit mit Freiwilligen
Aussprache von Begriffen
Umgang mit Fehlern
Chapter 11 Unrecht haben für Anfänger
Im Irrtum zu Hause
Fehlerforschung im Alltag
Der Hund hat die Datenbank gefressen!
Der gepolsterte Helm
Chapter 12 Debugging I: Fehlersuche als Wissenschaft
Systematische Fehlersuche
Beobachtung
Was das Beobachten erschwert
Analyse und Hypothesenbildung
Was das Bilden von Hypothesen erschwert
Test der Hypothesen
Was das Testen von Hypothesen erschwert
Chapter 13 Debugging II: Finde den Fehler
Fehlermeldungen sind unsere Freunde
Wer will da was von mir?
Diagnosewerkzeuge und -strategien
Wenn sonst nichts hilft
Wenn auch das nicht hilft
Die häufigsten Fehlerursachen schlechter Programmierer
Chapter 14 Schlechte Zeichen oder Braune M&Ms
Zu große Dateien
Sehr lange Funktionen
Zu breite Funktionen
Tief verschachtelte if/then-Bedingungen
Mitten im Code auftauchende Zahlen
Komplexe arithmetische Ausdrücke im Code
Globale Variablen
Reparaturcode
Eigene Implementierung vorhandener Funktionen
Sonderfälle
Inkonsistente Schreibweisen
Funktionen mit mehr als fünf Parametern
Code-Duplikation
Zweifelhafte Dateinamen
Leselabyrinth
Ratlose Kommentare
Sehr viele Basisklassen oder Interfaces
Sehr viele Methoden oder Member-Variablen
Auskommentierte Codeblöcke und Funktionen
Browservorschriften
Verdächtige Tastaturgeräusche
Chapter 15 Refactoring
Neu schreiben oder nicht?
Wann sollte man refakturieren?
Eins nach dem anderen
Code auf mehrere Dateien verteilen
Ein Codemodul in kleinere aufspalten
Nebenwirkungen entfernen
Code zusammenfassen
Bedingungen verständlicher gestalten
Die richtige Schleife für den richtigen Zweck
Schleifen verständlicher gestalten
Variablen kritisch betrachten
Refactoring von Datenbanken
Was man nebenbei erledigen kann
Ist das jetzt wirklich besser?
Wann man auf Refactoring besser verzichtet
Ein Problem und seine Lösung
Chapter 16 Testing
Warum testen?
Testverfahren
Datenvalidierungen
Performancetests
Richtig testen
Chapter 17 Warnhinweise
GET und POST
Zeichenkodierung
Zeitangaben
Kommazahlen als String, Integer oder Decimal speichern
Variablen als Werte oder Referenzen übergeben
Der schwierige Umgang mit dem Nichts
Rekursion
Usability
Chapter 18 Kompromisse
Trügerische Tugenden
Absolution: Wann Bad Practice okay ist
Wahl der Mittel
Chapter 19 Mach es nicht selbst
Der Weg zur Lösung
Bibliotheken
Umgang mit Fremdcode
Was man nicht selbst zu machen braucht
Chapter 20 Werkzeugkasten
Editoren
Welche Programmiersprache ist die richtige?
REPL
Diff und Patch
Paketmanager
Frameworks
Entwicklungsumgebungen
Chapter 21 Versionskontrolle
Alternativen
Arbeiten mit einem VCS
Konflikte auflösen
Welches Versionskontrollsystem?
Gute Ideen beim Arbeiten mit Versionskontrolle
Schlechte Ideen beim Arbeiten mit Versionskontrolle
Versionskontrollsysteme als Softwarebausteine
Chapter 22 Command and Conquer – vom Überleben auf der Kommandozeile
Mehr Effizienz durch Automatisierung
Unsere langbärtigen Vorfahren
Windows
Was jeder Programmierer wissen sollte
Navigation
Dateien
Betrachten
Suchen und Finden
Ressourcen schonen
Zusammenarbeit
Zeitsteuerung
Editieren auf dem Server
Internet
Muss ich mir das alles merken?
Not the whole Shebang!
Chapter 23 Objektorientierte Programmierung
Vorteile der objektorientierten Programmierung
Die Prinzipien objektorientierter Programmierung
Sinnvoller Einsatz von OOP
Nachteile und Probleme
Unterschiedliche Objektmodelle, je nach Sprache
Objektorientierte Programmierung und Weltherrschaftspläne
Chapter 24 Aufbewahrung von Daten
Dateien
Versionskontrollsysteme
Datenbanken
Chapter 25 Sicherheit
Wichtige Konzepte
Vor- und Nachteile der Offenheit
Vom Umgang mit Passwörtern
Authentifizierungsverfahren
SQL Injection und XSS – die Gefahren in User-Content
Weiße Listen sind besser als schwarze
Alle Regler nach links
Auch die Hintertür abschließen
Penetration Testing
Die Fehler der anderen
Sicherheit ist ein Prozess
Chapter 26 Nützliche Konzepte
Exceptions
Error Handling
State und Statelessness
IDs, GUIDs, UUIDs
Sprachfamilien
Variablentypen
Trennung von Inhalt und Präsentation
Trennung von Entwicklungs- und Produktivserver
Selektoren
Namespaces
Scope von Variablen
Assertions
Transaktionen und Rollbacks
Hashes, Digests, Fingerprints
CRUD und REST
Chapter 27 Wie geht es weiter?
Was ist ein guter Programmierer?
Zum Weiterlesen
Danksagungen
Erscheint lt. Verlag | 3.1.2014 |
---|---|
Sprache | deutsch |
Gewicht | 780 g |
Einbandart | kartoniert |
Themenwelt | Mathematik / Informatik ► Informatik ► Programmiersprachen / -werkzeuge |
Informatik ► Software Entwicklung ► Qualität / Testen | |
Schlagworte | Best Practices • Code • Programmierung • Programmierung; Handbuch/Lehrbuch • Qualität • Softwareentwicklung • Softwareentwicklung, Best Practices, Code, Qualität, testen • Testen |
ISBN-10 | 3-89721-567-5 / 3897215675 |
ISBN-13 | 978-3-89721-567-2 / 9783897215672 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich