Weniger schlecht programmieren (eBook)
456 Seiten
O'Reilly Verlag
978-3-95561-568-0 (ISBN)
Kathrin Passig ist bekannt geworden als Sachbuchautorin (unter anderem 'Internet - Fluch oder Segen', zusammen mit Sascha Lobo oder 'Lexikon des Unwissens', zusammen mit Aleks Scholz). Sie blickt aber auch auf fünfzehn Jahre Erfahrung mit wirklich schlechter Programmierung zurück. 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.
Kathrin Passig ist bekannt geworden als Sachbuchautorin (unter anderem "Internet - Fluch oder Segen", zusammen mit Sascha Lobo oder "Lexikon des Unwissens", zusammen mit Aleks Scholz). Sie blickt aber auch auf fünfzehn Jahre Erfahrung mit wirklich schlechter Programmierung zurück. 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.
»In der Informatik gibt es nur zwei echte Probleme: Cache-Verwaltung und Namensgebung.«
—Phil Karlton, Netscape-Programmierer
Viele nicht so gute Programmierer weigern sich, ihre wertvolle Lebenszeit auf das Ausdenken von Variablen- oder Funktionsnamen zu verwenden. Sie wollen schnell ein Ergebnis sehen und auf dem Weg dorthin nicht aufgehalten werden. Also wählen sie einen Namen, der gerade gut zu passen scheint und kurz und knapp ist, zum Beispiel tmp
oder var1
. Notfalls sogar dings
.
Andere stutzen, wenn sie eine Variable oder Funktion benennen sollen. Sie fühlen, dass hier etwas Großes passieren soll, etwas, das den Fortgang des Projekts beeinflussen wird. Die Entscheidung fällt ihnen schwer, der gewählte Funktionsname könnte ja unvorteilhaft sein. Bei der nächsten Funktion wiederholt sich das gleiche Spiel. Tage später stellt sich dann heraus, dass der erste Name gar nicht so recht zum zweiten passen will, es drückt und kneift alles. Aber jetzt ist es zu spät, eine Angleichung der Namen würde vermutlich Probleme verursachen.
Wer schon einmal mit sich gerungen hat, ob die Umbenennung einer Variable wirklich den Aufwand lohnt, wer sich gefragt hat, ob er lieber ganz kurze oder lieber aussagekräftigere Namen verwenden soll, und wer in fremdem Code Namensmonstern wie lpszStreetNameKey
begegnet, hat vermutlich das nagende Gefühl, dass eine Auseinandersetzung mit diesem Thema eine gute Sache sein könnte.
Die Namen von Klassen und Exceptions stehen also in CamelCase, für globale Variablen verwendet man Großbuchstaben, alles andere schreibt man klein und mit Unterstrichen getrennt.
Ein Problem, das auch besseren Programmierern immer wieder zu schaffen macht, ist der konsistente Umgang mit Komposita, d.h. mit Begriffen, die aus mehreren Wörtern bestehen. Im Deutschen schreibt man Begriffe wie Dateiname oder Hintergrundfarbe zusammen. Im Englischen jedoch heißt es korrekt: file name und background color. Während Letzteres in der freien Wildbahn als backgroundColor
oder background_color
auftaucht, also immer getrennt geschrieben wird, ist die Sache im Fall von file name weniger eindeutig: Die Schreibweisen getFileName
und getFilename
bzw. get_filename
und get_file_name
ringen um die Vormachtstellung. Wenn man jedoch eine Ausnahme für filename
macht, wie schreibt man dann filePath
? Und wie heißt die Variable, die den Namen des Lieblingstiers beinhaltet, favoriteAnimalname
?
Dieses Problem berührt den Grundsatz, dass Funktionsnamen und Variablennamen einem konsequenten Schema folgen sollten, damit sie erratbar sind und der Programmierer Zeit spart. Man orientiert sich dann generell an einem bestimmten Prinzip und merkt sich nur noch das Prinzip anstelle der Namensdetails. Im Sinne dieser Konsequenz empfehlen wir, alles, was sich als eigenes Wort verstehen lässt, mit einem Großbuchstaben bzw. Unterstrich abzuteilen, also getFileHandleForPathName
bzw. get_file_handle_for_path_name
zu schreiben.
Auch auf die Frage, ob Variablennamen im Singular oder im Plural stehen sollten, gibt es keine allgemein akzeptierte Antwort. Wenn eine Sammlung benannt werden soll, also zum Beispiel ein Array, das die Farben red
, green
, blue
und yellow
enthält, liegt es nahe, dieser Sammlung einen Namen im Plural zu geben, denn schließlich enthält sie mehrere Dinge. Andererseits verwendet man die Einzelteile dieser Sammlung später oft im Singular: if (isPrimaryColor(colors[$i])) ...
Manche Programmierer argumentieren, dass ein Singularname sich hier grammatikalisch ordentlicher anfühlt, andere ziehen es vor, dem Namen der Variable direkt entnehmen zu können, dass sie mehrere Dinge enthält. Versuchen Sie auch hier, sich für eine Variante zu entscheiden (oder die Ihres Teams zu übernehmen) und dann konsequent dabei zu bleiben.
Wie ein Funktions- oder Variablenname geschrieben wird und formal aufgebaut sein soll, ist ein vergleichsweise kleines Problem, das sich – inklusive der Suche nach einer sprachspezifischen Anleitung – in einer halben Stunde für immer lösen lässt. Die Suche nach passenden Namen hingegen ist schwieriger und beschäftigt Programmierer ein Leben...
Erscheint lt. Verlag | 5.12.2013 |
---|---|
Verlagsort | Heidelberg |
Sprache | deutsch |
Themenwelt | Mathematik / Informatik ► Informatik ► Programmiersprachen / -werkzeuge |
Schlagworte | Best Practices • Code • Qualität • Softwareentwicklung • Testen |
ISBN-10 | 3-95561-568-5 / 3955615685 |
ISBN-13 | 978-3-95561-568-0 / 9783955615680 |
Haben Sie eine Frage zum Produkt? |
Größe: 3,6 MB
Digital Rights Management: ohne DRM
Dieses eBook enthält kein DRM oder Kopierschutz. Eine Weitergabe an Dritte ist jedoch rechtlich nicht zulässig, weil Sie beim Kauf nur die Rechte an der persönlichen Nutzung erwerben.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
Größe: 3,7 MB
Digital Rights Management: ohne DRM
Dieses eBook enthält kein DRM oder Kopierschutz. Eine Weitergabe an Dritte ist jedoch rechtlich nicht zulässig, weil Sie beim Kauf nur die Rechte an der persönlichen Nutzung erwerben.
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich