Delphi-PRAXiS
Seite 5 von 7   « Erste     345 67      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Uses: Interface vs. Implementation Section (https://www.delphipraxis.net/165159-uses-interface-vs-implementation-section.html)

neo4a 21. Dez 2011 06:51

AW: Uses: Interface vs. Implementation Section
 
Zitat:

Zitat von brechi (Beitrag 1142497)
Zitat:

Zitat von neo4a (Beitrag 1142485)
- es für mich und andere leichter zu verstehen und zu warten ist (Clean Code),

ich bin jetzt der "andere", für mich ist es nicht leichter zu warten,

Wir reden offensichtlich aneinander vorbei. Beschäftige Dich einfach auch einmal mit Clean Code. Es lohnt sich bestimmt auch für Dich und es ist auch auf Deutsch:

Interface Segregation Principle
Information Hiding Principle

BTW, es macht mir keinen Spaß mehr, mich mit Deiner Argumentation auseinanderzusetzen, weil ich Deinen "Ich bin nicht Deiner Meinung, denn ich mache es ja anders"-Stil substantiell etwas fade finde.

DeddyH 21. Dez 2011 07:11

AW: Uses: Interface vs. Implementation Section
 
Diese Diskussion ist nicht nur flüssig, sie ist schon überflüssig. Beide Varianten haben ihre Vor- und Nachteile, also finde ich, das soll jeder so machen, wie er für richtig hält. Sich hier gegenseitig anzupflaumen oder mit irgendwelchen Prinzipien um sich zu werfen ist doch eher kontraproduktiv.

Bummi 21. Dez 2011 07:22

AW: Uses: Interface vs. Implementation Section
 
@DeddyH :thumb:

Furtbichler 21. Dez 2011 07:49

AW: Uses: Interface vs. Implementation Section
 
Zitat:

Zitat von neo4a (Beitrag 1142485)
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), ...

Zitat:

Zitat von Furtbichler (Beitrag 1142482)
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 ;-)

Zitat:

Zitat von brechi (Beitrag 1142497)
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). ;-)

Zitat:

Zitat von brechi (Beitrag 1142497)
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.

Zitat:

Zitat von DeddyH (Beitrag 1142507)
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.

neo4a 21. Dez 2011 07:51

AW: Uses: Interface vs. Implementation Section
 
Zitat:

Zitat von DeddyH (Beitrag 1142507)
Diese Diskussion ist nicht nur flüssig, sie ist schon überflüssig. Beide Varianten haben ihre Vor- und Nachteile, also finde ich, das soll jeder so machen, wie er für richtig hält.

Diese Diskussion hat eine Eigendynamik bekommen und die Frage, was wohin gehört, ist dabei m.E. nur der Platzhalter zu einer grunsätzlicheren Überlegung.

Ein Bild: Solange ich mit meinem Motorrad nur in meinem Hühnerstall fahre, interessiert es kaum jemand, ob ich Links- oder Rechtsverkehr praktiziere. Sobald ich mich auf die öffentliche Straße ...

Auf unsere Diskussion übertragen bedeutet das: Jeder darf gern seine eigene Meinung haben, solange er in seinem Delphi-Hühnerstall nur sich selbst verantwortlich ist. Darüber hinaus gelten halt längst anerkannte Regeln und die Meinung eines Einzelnen ist da nicht mehr so sehr maßgeblich. Ich gebe zu, es ist nur für die relevant, die bestrebt sind, es "richtig" zu machen.

Aus diesem Blickwinkel ist die Diskussion inhaltlich tatsächlich längst entschieden.

DeddyH 21. Dez 2011 07:56

AW: Uses: Interface vs. Implementation Section
 
Nur ist es bei diesen Regeln oftmals so, dass man sich nur schwer konsequent an eine halten kann, ohne damit eine andere zu verletzen.

neo4a 21. Dez 2011 08:02

AW: Uses: Interface vs. Implementation Section
 
Zitat:

Zitat von DeddyH (Beitrag 1142515)
Nur ist es bei diesen Regeln oftmals so, dass man sich nur schwer konsequent an eine halten kann, ohne damit eine andere zu verletzen.

In der Tat überlappen sich an manchen Stellen die Bedeutungen und führen je nach Gewichtung zu anderen Ausführungen. Das ist schon okay. Aber man muss sie ja deswegen nicht komplett ignorieren, oder?!

DeddyH 21. Dez 2011 08:04

AW: Uses: Interface vs. Implementation Section
 
Das hat ja auch niemand behauptet. Die richtige Balance zu finden ist die Kunst. Und hier muss eben jeder für sich entscheiden, welche Regel ihm wichtiger ist.

Daniel 21. Dez 2011 08:11

AW: Uses: Interface vs. Implementation Section
 
Zitat:

Zitat von DeddyH (Beitrag 1142507)
Diese Diskussion ist nicht nur flüssig, sie ist schon überflüssig. Beide Varianten haben ihre Vor- und Nachteile, also finde ich, das soll jeder so machen, wie er für richtig hält. Sich hier gegenseitig anzupflaumen oder mit irgendwelchen Prinzipien um sich zu werfen ist doch eher kontraproduktiv.

Zitat:

Zitat von Bummi (Beitrag 1142511)
@DeddyH :thumb:

Bei manchen Themen gibt es halt kein "richtiges" Ergebnis. Wichtig ist - denke ich - das Bewusstsein, dass es hier verschiedene Arten gibt, die beide mit individuellen Merkmalen behaftet sind.

neo4a 21. Dez 2011 08:15

AW: Uses: Interface vs. Implementation Section
 
Zitat:

Zitat von DeddyH (Beitrag 1142517)
Das hat ja auch niemand behauptet. Die richtige Balance zu finden ist die Kunst. Und hier muss eben jeder für sich entscheiden, welche Regel ihm wichtiger ist.

Genau das meine ich mit substantiell: Ausgehend von Regeln und Konventionen. Wer hier aber seine Meinung den Regeln und Konventionen gleichstellt oder sogar überordnet, verabschiedet sich leider inhaltlich aus der Diskussionsrunde, weil dann vor allem die gemeinsame Basis fehlt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 Uhr.
Seite 5 von 7   « Erste     345 67      

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