Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

25
Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13

Transcript of Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

Page 1: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

Beuth HochschuleJakob Schillinger

Programmierstil

Objektorientierte Programmierung

MPM M13

Page 2: Beuth Hochschule Jakob 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

Page 3: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

Jakob Schillinger

TIPPS FÜR JEDEN PROGRAMMIERER

Programmierstil

XX-ST-3

Page 4: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

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!

Page 5: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

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!

Page 6: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

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.

Page 7: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

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!

Page 8: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

Beuth HochschuleJakob Schillinger

Sauberer ProgrammierstilProgrammierstil

MPM M13

Page 9: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung 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

Page 10: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

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

Page 11: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

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

Page 12: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

Jakob Schillinger

Einrückstil

• Verschachtelung von Codeelementen.• Positionierung von Syntaxelementen.• Einsatz von Leerzeichen und Leerzeilen.

XX-ST-12

Page 13: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

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

Page 14: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

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

Page 15: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

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

Page 16: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

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

Page 17: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

Jakob Schillinger

Robustheit

• Fehlerbehandlung durch expliziten Aufruf aller möglichen Werte.

• Ausnahmebehandlung durch Meldung von Ausnahmewerten.

XX-ST-17

Page 18: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

Jakob Schillinger

Verhältnismäßigkeit

• Sauberer Programmierstil soll ein Hilfsmittel sein, keine zusätzliche Hürde.

XX-ST-18

Page 19: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

Beuth HochschuleJakob Schillinger

Ungarische Notation

Programmierstil

MPM M13

Page 20: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung 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

Page 21: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

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

Page 22: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

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

Page 23: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

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

Page 24: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

Jakob Schillinger

LITERATUR UND QUELLENGuter Programmierstil

XX-ST-24

Page 25: Beuth Hochschule Jakob Schillinger Programmierstil Objektorientierte Programmierung MPM M13.

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