Einzelnen Beitrag anzeigen

BKempf

Registriert seit: 1. Jun 2004
103 Beiträge
 
Delphi 6 Enterprise
 
#31

Re: Neuer Artikel auf meiner HP: "Code-Design"

  Alt 5. Jun 2004, 08:24
Wenn ich ein "end" sehe, suche ich dazu automatisch das "begin".
Ich habe mal eine Weile mit

Delphi-Quellcode:
if eins then begin
  foo;
end else if zwei then begin
  bar;
end else begin
  blubb;
end;
und aehnlichen Dingern experimentiert. Das ist fuerchterlich schiefgegangen, weil ich meine Bloecke nicht durch Draufsehen erkennen konnte, sondern immer das Ende der Zeile suchen musste. So etwas zu debuggen hat ewig gedauert.


Mein persoenlicher Styleguide sagt jetzt:
- Nach einem then folgt immer ein begin/end-Block. Ausnahmen, wenn ueberhaupt, nur zum Debuggen und dann mit (**) gekennzeichnet (das ist mein Zeichen fuer Baustellen, da ich als echte Kommentare nur die beiden anderen Typen verwende).
- Auch vor einem "end" steht ein Semikolon, ob ueberfluessig oder nicht. Es koennten ja noch Anweisungen hinzugefuegt werden, und dann ist dafuer schon alles vorbereitet . Sieht ausserdem einheitlicher aus.
- "begin" und "end" ("case xy of" und das dazugehoerige "end", "record"/"end", ...) beginnen grundsaetzlich auf einer Spaltenebene, die vom IDE-Editor mit einer ungeraden Zahl bedacht wurde.
- "else" steht auf geraden Ebenen. Das trennt mehrere aufeinanderfolgende begin..end-Bloecke optisch ein wenig.
- Bei mehreren if-Abfragen (quasi "case of" mit komplexeren Abfragen, die ein einfaches echtes "Case of" verhindern, etwa Stringueberpruefungen) stehen alle "if" in derselben Spalte.

Delphi-Quellcode:
// (Die Unterstriche bitte einfach mal wegdenken)
if eins then
begin
  foo;
end
_else
if zwei then
begin
  bar;
end
_else
begin
  blubb;
end;
Das ist zwar nicht so schoen kompakt wie andere Varianten, aber ich finds uebersichtlicher und das faellt ohnehin nicht sehr ins Gewicht, weil ich grosszuegig Leerzeilen einstreue.
The problem with troubleshooting is that sometimes the trouble shoots back.
  Mit Zitat antworten Zitat