AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Code-Desgin Frage

Ein Thema von Luckie · begonnen am 25. Sep 2003 · letzter Beitrag vom 25. Sep 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Code-Desgin Frage

  Alt 25. Sep 2003, 08:27
Ich habe mal eine Frage bzw. will mal eure Meinung hören.

Ich habe hier vor mir eine Prozedur die über eine Bildschirmseite geht. In dieser Prozedur habe ich eine case-verzweigung:
Delphi-Quellcode:
case StrToInt(Line[0]) of
      0: // Filelist files to copy
        begin
          if FindWildcard(Line[1]) then // Wildcard file
          begin
            SourceFilename := FindWildCardFile(Drive + ':\' + Line[1]);
            SourcePath := Drive + ':\' + SourceFilename;
          end
          else // exact file
          begin
            SourceFilename := CutPathname(Line[1]);
            SourcePath := Drive + ':\' + Line[1];
          end;
          TargetPath := CutFilename(ParamStr(0)) + BOOTCDFILESDIR + Line[2] +
            SourceFilename;
          bSuccess := CopyFile(pointer(SourcePath), pointer(TargetPath), True);
          SendMessage(hWnd, CEM_COPIEDFILE, Integer(bSuccess), i);
        end;
      1: ; // Filelist files to expand
      2: // Filelist files - project files
        begin
          SourceFilename := CutPathname(Line[1]);
          SourcePath := CutFilename(ParamStr(0)) + PROJECTFILESDIR + '\' +
            SourceFilename;
          TargetPath := CutFilename(ParamStr(0)) + BOOTCDFILESDIR + Line[2] +
            SourceFilename;
          bSuccess := CopyFile(pointer(SourcePath), pointer(TargetPath), True);
          SendMessage(hWnd, CEM_COPIEDFILE, Integer(bSuccess), i);
        end;
    end;
Jetzt die Frage: Würdet hier den Code in der case-Verzweigung auslagern, damit die Prozedur wieder auf eine Bildschirmseite paßt oder nicht?
Was ist übersichtlicher, das zu zerstücklen oder zusammen zu lassen, auch wenn es dann nicht mehr auf eine Bildschirmseite paßt?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
LoL
(Gast)

n/a Beiträge
 
#2

Re: Code-Desgin Frage

  Alt 25. Sep 2003, 08:34
ich würds so lassen wies ist, ist doch übersichtlich
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Code-Desgin Frage

  Alt 25. Sep 2003, 08:36
Das ist ja nicht alles. Davor ist ja auch noch was:
Delphi-Quellcode:
procedure ProcessFilelist(Filename: string; Drive: Char; hWnd: THandle);
var
  Line: TStringDynArray;
  tf: Textfile;
  s: string;
  i: Integer;
  bSuccess: Boolean;
  SourceFilename, SourcePath, TargetPath: string;
begin
  Line := nil;
  i := 1;
  // count files
  AssignFile(tf, Filename);
  Reset(tf);
  while not EOF(tf) do
  begin
    readln(tf, s);
    if (s = '') or (s[1] = ':') then // skip empty or comment (:) lines
      continue;
    Inc(i);
  end;
  CloseFile(tf);
  // send number of files to proccess
  SendMessage(hWnd, CEM_MAXFILES, 0, i);
  // process filelist
  i := 0;
  AssignFile(tf, Filename);
  Reset(tf);
  while not EOF(tf) do
  begin
    readln(tf, s);
    if (s = '') or (s[1] = ':') then // skip empty or comment (:) lines
      continue;
    Line := Explode(DELIMITER, s);
Dann paßt es wie gesagt nicht mehr auf eine Monitorseite.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Code-Desgin Frage

  Alt 25. Sep 2003, 08:38
wenn dus übersichtlicher findest wenns dann eine seite braucht wird ichs mit case machen ansonsten so lassen. mit bissl kommentaren wirds auch übersichtlicher (obwohl eigentlich schon übersichtlich ist)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
LoL
(Gast)

n/a Beiträge
 
#5

Re: Code-Desgin Frage

  Alt 25. Sep 2003, 08:39
solang du immer einrückst und du nicht ne auflösung von 800x600 verwendest wür ichs so lassen
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Code-Desgin Frage

  Alt 25. Sep 2003, 08:51
Hallo Luckie,

im vor-vorletzten c't 17/2003 steht ein interessanter Artikel über
Refaktorisierung (Quelltexte lesbarer machen, S. 204),
soweit ich mich erinnere, wird dort die Theorie vertreten, dass
man auf die "kleinstmögliche Modulgrösse" herunterbrechen soll,
damit der Code lesbarer, und besser anpassbarer wird...
(kommt aus dem eXtrem programming glaube ich, und vom Hausverstand)

Ich selbst mache das mit den Modulen ebenso, allerdings eher nach Gefühl,
d.h. "wichtige" Teile bleiben auch mal zusammen...

Leider kann man in der Delphi-IDE Prozeduren/Funktionen nicht aus- und einblenden...
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#7

Re: Code-Desgin Frage

  Alt 25. Sep 2003, 08:56
Hi Luckie,

an solchen Stellen, wenn ich nicht gerade ModelMaker nutze , präferiere ich die längeren "cases" in eigene Prozedure auszulagern.

An der Uni hat man uns damals auf den Weg gegeben, daß Prozeduren, Methoden, Funktionen mit ca. 25 bis 75 Zeilen Code (für Hochsprachen wie Pascal/Delphi) i.A. die fehlerfreiesten sind. Kleinere verführen schnell dazu, daß man sich nicht ordentlich mit denen auseinandersetzt, weil die ja sooo übersichtlich sind und größere sind halt einfach zu überladen in deren Funktionalität

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Code-Desgin Frage

  Alt 25. Sep 2003, 09:05
@sakura: war des jetzt ein "ja" oder "nein"? Muß man denn alles aus dir rausprügeln?

Das blöde ist, die case-Verzweigung hängt in einer Schleife drin und ich müßte jedesmal noch den Zähler mit übergeben, damit ich weiß, wo ich bin. Und diese parameterliste macht dass dann wohl wieder unübersichtlich. Deswegen neige ich dazu es erstmal so zu lassen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Burning_Chrome
Burning_Chrome

Registriert seit: 15. Sep 2003
Ort: Austria
25 Beiträge
 
Delphi 7 Architect
 
#9

Re: Code-Desgin Frage

  Alt 25. Sep 2003, 09:15
Hi!

@Luckie: ich wuerde es so lassen... zerteilt wirds IMHO eher schlechter lesbar und zu lang ist es noch nicht.

Best_Regards
Burning_Chrome
Ich hab keine Ahnung - aber wenigstens bin ich nicht allein!
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#10

Re: Code-Desgin Frage

  Alt 25. Sep 2003, 09:15
Wenn Du ModelMaker nutzt (ich glaube nicht), dann lass es so. ModelMaker bietet Dir die Möglichkeit solche Stellen logisch zu trennen.

Wenn Du ModelMaker nicht nutzt, würde ich es trennen. Allerdings hast Du gerade noch einen wichtigen Punkt genannt. Es liegt in einer Schleife. Prozeduraufrufe kosten Zeit. Wenn Du die Schleife also mehrere 1000 Male durchläufst, lass es wieder...

Ja? Nein? Ich weiss es auch nicht Aber Du hast jetzt ein paar Anhaltspunkte, die Deine Entscheidu7ng unterstützen sollten.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz