Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#38

AW: Uses: Interface vs. Implementation Section

  Alt 20. Dez 2011, 18:59
Dann ist es doch viel einfacher und schneller, einfach oben im interface-Abschnitt zu schauen
. Nee, ganz sicher nicht schneller. Den Compiler gegen die Wand fahren lassen, ist am schnellsten. Schon soo oft machen müssen. Soll ich bei einem fremden Projekt etwa erst alle Uses-Klauseln analyiseren? Ja bin ich denn bescheuert? F9 und fertig. Wenns passt, dann Ctrl+F9, bis es passt. Wobei ich mich ab -sagen wir- 5.000.000 Codezeilen umorientieren würde. Vielleicht.

"Ausprobieren und den Compiler in den Fehler laufen lassen, dann wird man schon sehen, was er nicht findet" - denn das ist jawohl die unsauberste Methode überhaupt.
WTF. Das Resultat ist 100% das gleiche, wenn nicht sogar optimaler, denn so habe ich garantiert keine unnütze Unit eingebunden.

Dein Vergleich mit dem Code ist zwar stark hinkend aber auch nicht blöd. Denn Exceptions sind doch der OOP, oder?

Im Übrigen ist 'gegen die Wand fahren lassen' ein anerkanntes Preventive-Maintenance-Werkzeug und nicht so leicht zu verbessern.

Dein Argument mit den 1000 Zeilen bis zum implementation kann ich aber nachvollziehen. Wer so etwas ständig machen muss, wünscht sich, das die benötigten Units alle oben stehen. Na ja, dann soll er doch. Einfach den GExperts Uses Clause Manager starten, alle Units ins Interface verschieben, fertig.

Eins noch:
Die Units im Interface-Teil helfen, die Bedeutung der Unit im Kontext des Systems zu verstehen. Werden hier auch Units aufgelistet, die nur in der Implementierung benötigt werden, irritiert das. Was interessiert es mich, das der TCP-Wrapper mit ICS umgesetzt wurde (oder was weiss ich).

Was ist denn nun klarer?
Delphi-Quellcode:
Unit MyUnit;
Interface
uses BarDefinition;

Function AnExtremelyTrickyCalculation(SomeParameters : TBar) : Extended;

implementation
uses Wow, HardCore, DirtyStuff, EvenMoreDirtyStuff, PetersTricks, MikesHacks, DontPublishThis, VerySecret;
...
oder
Delphi-Quellcode:
Unit MyUnit;
Interface
uses BarDefinition, Wow, HardCore, DirtyStuff, EvenMoreDirtyStuff,
  PetersTricks, MikesHacks, DontPublishThis, VerySecret;

Function AnExtremelyTrickyCalculation(SomeParameters : TBar) : Extended;

implementation
...
Also von der Seite aus betrachtet, würde ich den Autor der 2.Variante vierteilen.


So wie ich das sehe gibts hier zwei Meinungen:
Die Praktiker sagen "Alle Units nach oben, sonst kriech ich Augenkrebs"
Die Ästheten sagen "Alle Units da hin, wo sie hingehören, sonst kriech ich Augenkrebs"

Tja.

Geändert von Furtbichler (20. Dez 2011 um 19:12 Uhr)