Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#44

AW: Uses: Interface vs. Implementation Section

  Alt 21. Dez 2011, 07:49
Ich bin weder kein Praktiker noch bin ich kein Ästhet, deshalb noch meine 3. Meinung:

Alle Units da hin, wo sie hingehören, weil
- es sich so gehört (Convention), ...
Die Ästheten sagen "Alle Units da hin, wo sie hingehören, ..."
Sei mir nicht böse, aber ich finde, Du bist ein Ästhet. Aber einer, der weiss, warum er einer ist. Noch besser.

Zitat:
... und es kompiliert trotzdem: Ist das nicht herrlich?!
Ick könnt heulen vor Glück

ich bin jetzt der "andere", für mich ist es nicht leichter zu warten...
Für dich besteht 'warten' offenbar nur aus der Tätigkeit, fremden Code erstmalig zum kompilieren zu bringen. Klar, dafür ist es natürlich einfacher, wenn alle Units im Interface-Teil sind. Es ist übrigens noch einfacher, wenn alle Units im Projektquellcode angegeben sind. Denn dann muss ich nicht mal in die einzelnen Units rein. Also fordern wir: Alle Units im Projektquelltext angeben?

Code zu warten bedeutet aber in erster Linie: Verstehen. Und zum Verständnis der Funktion ist es nun mal besser, unwichtige Details zu verstecken. Das gilt nicht nur für Programmcode, sondern ist generell wichtig.

Wenn ich jemanden den Auftrag gebe, Brötchen zu holen, ist es mir vollkommen egal, ob er dazu seinen braunen Mantel oder die Schijacke anzieht. Und ob er bar oder mit Karte bezahlt. D.h. der Auftrag (Inteface) enthält die Information 'Ich will Brötchen vom (uses) Bäcker'. Ich bevorzuge nämlich Brötchen vom Bäcker. Vom Supermarkt schmecken sie mir nicht.

Also:
Delphi-Quellcode:
Unit Frühstück;
Interface
uses BrotSorten, Bäcker;
Procedure BesorgeBrötchen (MeinLieblingsBäcker : TBäcker; Anzahl : Integer; out MeineBrötchen : TBrötchenTüte);

// Und wie Du das machst ist mir sowas von egal
Implementation
uses SkiJacke, BraunerMantel;
So. Wenn es mir denn nur um die Brötchen ginge, dann so:
Delphi-Quellcode:
Unit Frühstück;
Interface
uses BrotSorten;
Procedure BesorgeBrötchen (Anzahl : Integer; out MeineBrötchen : TBrötchenTüte);

// Und wie Du das machst und woher Du die Dinger holst ist mir sowas von egal
Implementation
uses Bäcker, Supermarkt,SkiJacke, BraunerMantel;
Nun kommt brechi und sagt: "Alles ins Interface, dann ist das leicher zu verstehen"
Delphi-Quellcode:
Unit Frühstück;
Interface
uses BrotSorten, // BrechiSeinLibOrdner/Brote/Src
    Bäcker, Supermarkt, // ..fasel
    SkiJacke, BraunerMantel; // blub

Procedure BesorgeBrötchen (Anzahl : Integer; out MeineBrötchen : TBrötchenTüte);

Implementation
brechi, Du kannst uns auch erklären, was der braune Mantel und die Skijacke mit dem Brötchenholen zu tun haben (sollen).

Delphi-Quellcode:
  uses
    windows, classes, sysutils, // delphi
    fastreport, fastscript, fastirgendwas // fastreport: libs/fastreport/src
    teechart, teetools; // teechart: libs/teechart/src
Ahso. Wenn ich das so mache, und dann aber noch etwas auf meine Form schmeisse (eine von 670 übrigens, wer soll das so hübsch formatieren?), dann passiert was..? Die Unit wird hintenran gepackt und ich darf sie wieder einsortieren. Du scheinst nicht unter Arbeitsüberlastung zu leiden. Ich habe jedenfalls keine Zeit für so einen Schnickschnack.

Übrigens... Was passiert, wenn der "Andere" seine Bibliotheken nicht unter "libs/irgendwas/src' hat? Dann ist dieser Kommentar eine ... Genau. Eine Lüge. Unnütz und häßlich. Aber es kompiliert ja.

Diese Diskussion ist nicht nur flüssig, sie ist schon überflüssig.
Nö. Der Stil ist daneben, die Diskussion nicht.
Zitat:
Sich hier gegenseitig anzupflaumen ... ist doch eher kontraproduktiv.
Jau.
Zitat:
...oder mit irgendwelchen Prinzipien um sich zu werfen
Da es sich bei den 'Prinzipien' nicht um 'irgendwelche' handelt, sondern um die, an die sich jeder Programmierer halten sollte, finde ich es auch wichtig, diese zu nennen.

Wie gesagt: Wer meint, das er nur einen Uses-Teil braucht (wie alle C# Programmierer), soll es gerne so machen. Aber bitte nicht mit Wartbarkeit kommen, und 'Kompilieren' meinen. Und nicht mit 'Übersichtlich' kommen, wenn man komplexen Code nicht mal im Ansatz versteht.

Da nun aber letztendlich jeder seinen eigenen Geschmack hat und selbst ein Messi in seiner Welt Ordnung im Chaos hat, kann man sich natürlich immer hinter dem Argument: "Also für mich ist das eben übersichtlicher" verstecken.

Aber eins ist klar: Freundlich bleiben und respektvoll reden. Und das fehlt hier zum Schluss doch etwas.