Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.
-
Upload
menno-ament -
Category
Documents
-
view
109 -
download
4
Transcript of Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.
Beuth HochschuleJakob Schillinger
Programmierstil
Objektorientierte Programmierung
MPM M13
Jakob Schillinger
Grundlagen
“If builders built buildings the way programmers write programs, then the first woodpecker that came along would destroy civilization. “
~ Gerald Weinberg
XX-ST-2
Jakob Schillinger
TIPPS FÜR JEDEN PROGRAMMIERER
Programmierstil
XX-ST-3
Jakob Schillinger
Übersichtlichkeit
XX-ST-4
Problem: Andere Programmierer w
ollen Änderungen im
Quelltext s
o schnell und einfach w
ie möglic
h umsetzen!
Übersichtlichkeit des Quelltextes
reduzieren.
Funktionen mit m
ehreren Zwecken!
So lange Codeabschnitte w
ie möglich!
Jakob Schillinger
Namenskonventionen
XX-ST-5
So viele Abkürzungen wie möglich. Jeder vernünftige
Programmierer hat einen angeborenen Instinkt, was die
AbkürzungCAPIAT heißt!
Verwenden Sie Zahlen und Buchstaben als Variablen.
In der Kürze liegt die Würze!
Verwenden Sie sehr lange, zusammengesetzte Namen
für Variablen. Unterschiedliche Variablen sollten sich um
einzelne Zeichen unterscheiden!
Jakob Schillinger
Programmfluss
XX-ST-6
Jede Funktion sollte etwas mehr oder weniger tun als ihr
Name verspricht.
Goto erleichtert den Sprung zwischen Programmteilen.
Verwenden Sie Copy&Paste so viel wie möglich.
Greifen Sie möglichst häufig auf Inhalte anderer
Objekte zu. Dies verkürzt den Aufbau der Zielfunktion.
Die Verwendung von Ausnahmebehandlungen macht
Lücken im Code sichtbar. Vermeiden Sie das!
Löschen Sie nie!!! ungenutzten Code aus dem
Programm. Man kann nicht wissen, wann man ihn noch
mal braucht.
Alle Variablen und Funktionen werden öffentlich deklariert. Dies minimiert den Aufwand beim
Datenaustausch.
Jakob Schillinger
Dokumentation
XX-ST-7
Verh
inde
rn S
ie, d
ass m
an e
rken
nen
kann
auf
wel
chen
Softw
ares
tand
Sie
sich
bez
iehe
n!
Wenn Sie ein Feature nicht u
msetzen konnten,
schreiben Sie trotzd
em in die Doku, d
ass Sie es
umgesetzt haben!
Verwenden Sie Kommentare wie */1 zu i addieren/*,
schwierigere Sachverhalte nicht kommentieren!
Ein Kunde, der weiß was er tut, braucht keine Dokumentation!
Beuth HochschuleJakob Schillinger
Sauberer ProgrammierstilProgrammierstil
MPM M13
Jakob Schillinger
Grundlagen
• Unter Programmierstil wird ein Satz von Regeln verstanden, denen sich ein Programmierer bei der Erstellung von Code unterwirft.
• Programmierstil dient der Kommunikation im Team und der schnellen Erfassbarkeit des Quelltextes.– Lesbarkeit– Verständlichkeit– Wartbarkeit
XX-ST-9
Jakob Schillinger
Programmierrichtlinien
• Große Softwareprojekte hängen maßgeblich von der Kommunikation im Projekt ab.
• Im Projekt werden deswegen oft Regeln als Richtlinien vorab aufgestellt.
• Aus Richtlinien können Stereotypen und Entwurfsmuster abgeleitet werden.
XX-ST-10
Jakob Schillinger
Kommentare
• Abwesenheit von Kommentaren ist schlechter Programmierstil!
• Kommentare erhöhen die Lesbarkeit für Andere!• Kommentare verwenden:
– Kopf einer Datei– Übergabewerte einer Funktion– Beschreiben einer Funktion– Beschreiben von Attributen
XX-ST-11
Jakob Schillinger
Einrückstil
• Verschachtelung von Codeelementen.• Positionierung von Syntaxelementen.• Einsatz von Leerzeichen und Leerzeilen.
XX-ST-12
Jakob Schillinger
Namenskonventionen
• Der Name einer Variable weist auf ihren Zweck hin oder deutet ihn zumindest an.
• Namen werden nach Notationen, z.B. der ungarischen Notation vergeben.
• Eine Variable wird für einen Zweck und nicht für mehrere verwendet.
• Variablenrecycling vermeiden.
XX-ST-13
Jakob Schillinger
Zeilenlänge
• Kurze Zeilenlänge fördert die Menschenlesbarkeit und Vergleichbarkeit durch Textprogramme.
• Beschränkung der Zeilenlänge ist manueller Aufwand.
• Generell gilt, nicht mehr als eine Anweisung pro Zeile.
XX-ST-14
Jakob Schillinger
Programmfluß
• Keine Sprünge zwischen Programmteilen, z.B. mit GoTo, verwenden.
• Unkontrollierten Zugriff auf globale Variablen durch definierte Schnittstellen zwischen Funktionen ersetzen.
XX-ST-15
Jakob Schillinger
Objektorientierte Programmierung
• Anwendung der objektorientierten Programmierung kapselt Funktionen und somit die Fehleranfälligkeit.
• Bauweise im Model erhöht die Wieder-verwendbarkeit und Unabhängigkeit.
• Vererbung erhöht die Übersichtlichkeit im Projekt.
XX-ST-16
Jakob Schillinger
Robustheit
• Fehlerbehandlung durch expliziten Aufruf aller möglichen Werte.
• Ausnahmebehandlung durch Meldung von Ausnahmewerten.
XX-ST-17
Jakob Schillinger
Verhältnismäßigkeit
• Sauberer Programmierstil soll ein Hilfsmittel sein, keine zusätzliche Hürde.
XX-ST-18
Beuth HochschuleJakob Schillinger
Ungarische Notation
Programmierstil
MPM M13
Jakob Schillinger
Grundlagen
• Die ungarische Notation ist eine Richtlinie zur Benennung von Codeelementen.
• In der Notation werden sprechende Variablennamen verwendet und um Präfixe und Modifikatoren erweitert.
XX-ST-20
Jakob Schillinger
Präfix
Präfix Bedeutung Beispiel
b boolean bool bHasEffect;
c (or none*) class Creature cMonster;
ch char (used as a char) char chLetterGrade;
d double, long double double dPi;
f float float fPercent;
nshort, int, longchar used as an integer
int nValue;
s struct Rectangle sRect;
str C++ string std::string strName;
XX-ST-21
Jakob Schillinger
Modifikation nach Typ
Modifikation Bedeutung Beispiel
a array on stack int anValue[10];
p pointer int* pnValue;
r reference int rnValue;
• Wenn anwendbar, werden die folgenden Modifikationen vor den Präfix gesetzt.
XX-ST-22
Jakob Schillinger
Präfixe der Sichtbarkeit
Präfix Bedeutung Beispiel
g_ global variable int g_nGlobalValue;
m_ member of class int m_nMemberValue;
s_ static member of class int s_nValue;
• Wenn anwendbar, werden die folgenden Präfixe vor die Modifikation gesetzt.
XX-ST-23
Jakob Schillinger
LITERATUR UND QUELLENGuter Programmierstil
XX-ST-24
Jakob Schillinger
Literatur und Quellen
• www.learncpp.com (24.06.2010)• http://www.cs.purdue.edu/homes/jv/510s05/unm
aint.pdfI (24.06.2010)
• Helmut Balzert, Lehrbuch der Software-Technik, Software-Entwicklung, 3827400422, Spektrum Akad. Vlg
• Helmut Erlenkötter, C++: Objektorientiertes Programmieren von Anfang an, 3499600773 , rororo
XX-ST-25