AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Unit-Design - was bevorzugt ihr?

Ein Thema von a.def · begonnen am 3. Jan 2017 · letzter Beitrag vom 5. Jan 2017
Antwort Antwort
a.def
(Gast)

n/a Beiträge
 
#1

AW: Unit-Design - was bevorzugt ihr?

  Alt 3. Jan 2017, 16:49
Ich ändere gerade auch alles um, damit mein Chaos etwas geordneter wird.
In eine eben angelegte Datei habe ich bereits 22 Methoden gesteckt. Die Datei hat mittlerweile komplett 745 Zeilen.
Bis wie viel Zeilen ist eine Datei denn noch OK, wenn thematisch alle Methoden die da drin sind zusammenpassen?
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.165 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Unit-Design - was bevorzugt ihr?

  Alt 4. Jan 2017, 15:32
Ich ändere gerade auch alles um, damit mein Chaos etwas geordneter wird.
In eine eben angelegte Datei habe ich bereits 22 Methoden gesteckt. Die Datei hat mittlerweile komplett 745 Zeilen.
Bis wie viel Zeilen ist eine Datei denn noch OK, wenn thematisch alle Methoden die da drin sind zusammenpassen?
Ich denke das ist gar nicht die Frage...

Ich habe auch noch Projekte wo es Units gibt, die gesammelte Proceduren und Funktionen habe... (> 7000 LOC)

Da hat aber auch so gut wie keine Procedure etwas mit der anderen zu tun... Und i.d.R haben die alle 2 Versionen

Delphi-Quellcode:
Procedure Foo(Const AValue : AnsiString);overload;
Procedure Foo(Const AValue : WideString);overload;
Ich rede mich raus mit : Gewachsener Code seit 1984.

Wenn ich Proceduren für Typen baue, dann immer in einer Class Abstract oder z.B. für TArray<T> hier ist alleine die Klassendefinition fast 200 LOC.

Mavarik
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: Unit-Design - was bevorzugt ihr?

  Alt 4. Jan 2017, 16:21
Ich ändere gerade auch alles um, damit mein Chaos etwas geordneter wird.
Das glaube ich ist der Punkt: Irgendwann wird ein ungeordnetes System chaotisch. Wichtiger ist also meiner Meinung nach mehr, dass man überhaupt ein System verwendet. Welches ist dann wiederum davon abhängig, ob man das System nur für sich selber verwendet, oder in der Gruppe.

Bis wie viel Zeilen ist eine Datei denn noch OK, wenn thematisch alle Methoden die da drin sind zusammenpassen?
Wenn alles was drin steckt thematisch zusammen passt, und entsprechend geordnet ist, gibt es wahrscheinlich keine Größenvorgabe. Jedenfalls mache ich mir keine.

Zitat von Mavarik:
Procedure Foo(Const AValue : AnsiString);overload;
Procedure Foo(Const AValue : WideString);overload;
Darüber muss man sich nicht raus reden. Solche Leichen hat wohl fast jeder im Keller, der die Ansistring-Umstellung hinter sich hat
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.240 Beiträge
 
Delphi 12 Athens
 
#4

AW: Unit-Design - was bevorzugt ihr?

  Alt 4. Jan 2017, 16:25
Gewachsene Libraries sind/werden wohl immer chaotisch, ich sehe das ganz locker.

Man sollte nur permanent an Verbesserungen und Reduzierungen von Redundanz und Kopplung arbeiten.
Dann wir schon alles gut

Hauptsache der Codeowner kennt sich im Dschungel noch aus.

Rollo
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#5

AW: Unit-Design - was bevorzugt ihr?

  Alt 4. Jan 2017, 23:01
Darüber muss man sich nicht raus reden. Solche Leichen hat wohl fast jeder im Keller, der die Ansistring-Umstellung hinter sich hat
Meine ist aktuell....

Delphi-Quellcode:
function IfThen(aValue: Boolean; const ATrue, AFalse: Integer): Integer; overload;
begin
 if aValue then
  Result := ATrue
 else
  Result := AFalse;
end;

function IfThen(aValue: Boolean; const ATrue, AFalse: string): string; overload;
begin
 if aValue then
  Result := ATrue
 else
  Result := AFalse;
end;

function IfThen(aValue: Boolean; const ATrue, AFalse: Boolean): Boolean; overload;
begin
 if aValue then
  Result := ATrue
 else
  Result := AFalse;
end;
Mir ging es auf die Nerven, dass es von offizieller Seit nur eine davon gab. Also habe ich mir die genommen, in meine Sammlung gepackt und zwei hinzugefügt.
Auf diese Art und Weise konnte ich viel Code sparen alà
Delphi-Quellcode:
// Vorher
if A = B then
 s := 'C'
else
 s := 'D';

// Nachher
s := IfThen(A = B, 'C', 'D');
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#6

AW: Unit-Design - was bevorzugt ihr?

  Alt 4. Jan 2017, 23:09
Mir ging es auf die Nerven, dass es von offizieller Seit nur eine davon gab.
In System.Math sind noch sechs andere. Fehlt nur die für Boolean.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#7

AW: Unit-Design - was bevorzugt ihr?

  Alt 4. Jan 2017, 23:26
In System.Math sind noch sechs andere.
Kommt mir ein bisschen vor wie die Suche nach den Eiern an Ostern
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#8

AW: Unit-Design - was bevorzugt ihr?

  Alt 5. Jan 2017, 07:07
Könnte man das nicht auch so lösen (ungetestet)?
Delphi-Quellcode:
type
  TGenericCompare<T> = record
  public
    class function IfThen(Expression: Boolean; const AThen, AElse: T): T; static;
  end;

class function TGenericCompare<T>.IfThen(Expression: Boolean; const AThen,
  AElse: T): T;
begin
  if Expression then
    Result := AThen
  else
    Result := AElse;
end;
Aufruf dann z.B.
Delphi-Quellcode:
procedure TfrmTest.ButtonTestClick(Sender: TObject);
var
  s: string;
begin
  s := TGenericCompare<string>.IfThen(1 = 1, 'Ja', 'Nein');
  ShowMessage(s);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.055 Beiträge
 
Delphi 12 Athens
 
#9

AW: Unit-Design - was bevorzugt ihr?

  Alt 5. Jan 2017, 07:40
Kann man, so etwas ähnliches benutze ich selbst auch, nur dass ich den generischen Parameter der Methode statt der Klasse bzw. dem Record gegeben habe.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#10

AW: Unit-Design - was bevorzugt ihr?

  Alt 5. Jan 2017, 07:42
Der Nachteil dieser Funktion im Gegensatz zum direkten Ausschreiben ist halt, daß beide Ergebnisse als Funktionsparameter ausgewertet werden. Das mag nicht immer wünschenswert sein:

IfThen(Sender <> nil, Sender.Classname, '');
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 22:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz