AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi uses im interface und implementation-Teil

uses im interface und implementation-Teil

Ein Thema von mashutu · begonnen am 15. Jan 2009 · letzter Beitrag vom 16. Jan 2009
Antwort Antwort
Seite 1 von 3  1 23   
mashutu

Registriert seit: 15. Nov 2007
195 Beiträge
 
#1

uses im interface und implementation-Teil

  Alt 15. Jan 2009, 12:29
Hi,

ich hatte gerade Streit mit einem Kollegen, der der Meinung ist man sollte unbedingt alle uses-Anweisungen, die nicht im Interface-Teil zwingend benoetigt werden, in den Implementation-Teil verschieben.

Ich persoenlich vermeide das vollstaendig und bislang kannte ich eigentlich auch nur Leute, die das ebenfalls gemieden haben wie der Teufel das Weihwasser.

Meine (zugegeben sehr wenigen) Argumente konnten ihn nicht ueberzeugen:

+ man baut (evtl. unbeabsichtigt) zirkulaere Bezuege auf
+ ist die Uses-Klausel nur an einer Stelle definiert sehe ich viel schneller und leichter, was da schon drin ist, als wenn ich an zwei Stellen suchen muss
+ durch zirkulaere Bezuege werden Unit-Tests schwerer zu handlen

Da gibt es doch aber noch mehr Argumente, warum man das nicht machen soll. Hat jemand Links oder Argumente?

Ich nehme auch Argumente an, die DAFUER sprechen, moeglichst viel im uses-Teil der Implementation unterzubringen (der Kollege behauptet es kompiliert dann schneller).

Danke im Voraus
utu

if it was hard to write it should be hard to read
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: uses im interface und implementation-Teil

  Alt 15. Jan 2009, 12:35
Zitat:
+ man baut (evtl. unbeabsichtigt) zirkulaere Bezuege auf
Gerade andersrum, wenn du alles immer im Implementierungsteil einbindest verhinderst du das
Markus Kinzler
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.882 Beiträge
 
Delphi 12 Athens
 
#3

Re: uses im interface und implementation-Teil

  Alt 15. Jan 2009, 12:42
Du solltest nach Möglichkeit nur Units im Interface uses angeben die du da angeben musst.
Alles andere gehört in das uses des Implementationteil um zirkuläre Verknüpfungen zu vermeiden.

Tut mir leid dir das zu sagen aber der Kollege hat sowas von Recht. Ich würde mir einfach überlegen
wie du ihm deine Einsicht mitteilst und den Streit als Freunde beilegst.

Ansonsten es gibt Argumente dafür, Denkfaulheit zum Beispiel.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
mashutu

Registriert seit: 15. Nov 2007
195 Beiträge
 
#4

Re: uses im interface und implementation-Teil

  Alt 15. Jan 2009, 12:48
Zitat von mkinzler:
Zitat:
+ man baut (evtl. unbeabsichtigt) zirkulaere Bezuege auf
Gerade andersrum, wenn du alles immer im Implementierungsteil einbindest verhinderst du das
Das meine ich ja, wenn man immer alles im Interfaceteil einbindet, macht dich der Compiler schon auf den zirkulaeren Bezug aufmerksam.
Wenn man aber generell alles in den Implementation-Teil schiebt, dann bekommt man das u.U. gar nicht mit.
utu

if it was hard to write it should be hard to read
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.882 Beiträge
 
Delphi 12 Athens
 
#5

Re: uses im interface und implementation-Teil

  Alt 15. Jan 2009, 12:52
Zitat von mashutu:
Zitat von mkinzler:
Zitat:
+ man baut (evtl. unbeabsichtigt) zirkulaere Bezuege auf
Gerade andersrum, wenn du alles immer im Implementierungsteil einbindest verhinderst du das
Das meine ich ja, wenn man immer alles im Interfaceteil einbindet, macht dich der Compiler schon auf den zirkulaeren Bezug aufmerksam.
Wenn man aber generell alles in den Implementation-Teil schiebt, dann bekommt man das u.U. gar nicht mit.
Hääää, die Typen sind doch dann bereits bekannt...also vollkommen unproblematisch... weist du eigentlich
was du da schreibst?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: uses im interface und implementation-Teil

  Alt 15. Jan 2009, 12:53
Der Fehler tritt nur auf wenn du die Units beidseitig im Interface-Teil einindest! Deshalb verhindert das Einbinden in der Implementierung genau das.
Markus Kinzler
  Mit Zitat antworten Zitat
mashutu

Registriert seit: 15. Nov 2007
195 Beiträge
 
#7

Re: uses im interface und implementation-Teil

  Alt 15. Jan 2009, 12:54
Zitat von QuickAndDirty:
Du solltest nach Möglichkeit nur Units im Interface uses angeben die du da angeben musst.
Alles andere gehört in das uses des Implementationteil um zirkuläre Verknüpfungen zu vermeiden.
Nein mit uses Anweisungen im Implementation-Teil werden zirkulaere Verknuepfungen erst moeglich. Ansonsten meckert schon der Compiler.

Zitat von QuickAndDirty:
Tut mir leid dir das zu sagen aber der Kollege hat sowas von Recht. Ich würde mir einfach überlegen
wie du ihm deine Einsicht mitteilst und den Streit als Freunde beilegst.

Ansonsten es gibt Argumente dafür, Denkfaulheit zum Beispiel.
Ok, ich habe kein Problem damit einen Irrtum/Fehler hier oder meinem Kollegen gegenueber zuzugeben, aber was ist denn (ausser dem fuer mich nicht ueberpruefbaren Geschwindigkeitsvorteil) sonst noch ein Grund fuer deine Argumentation. Denkfaulheit ist wohl ein ebenso schwaches Argument wie mein Argument, dass ich nicht gerne an zwei Stellen im Quelltext suche.
utu

if it was hard to write it should be hard to read
  Mit Zitat antworten Zitat
mashutu

Registriert seit: 15. Nov 2007
195 Beiträge
 
#8

Re: uses im interface und implementation-Teil

  Alt 15. Jan 2009, 12:58
Zitat von mkinzler:
Der Fehler tritt nur auf wenn du die Units beidseitig im Interface-Teil einindest! Deshalb verhindert das Einbinden in der Implementierung genau das.
Ich will zirkulaere Bezuege gaenzlich vermeiden und moechte daher, dass der Compiler den Entwickler auf diesen Misstand aufmerksam macht - das funktioniert aber nicht, wenn jeder alles in die uses-clause des Implementation-Teils schaufelt.
utu

if it was hard to write it should be hard to read
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.882 Beiträge
 
Delphi 12 Athens
 
#9

Re: uses im interface und implementation-Teil

  Alt 15. Jan 2009, 13:00
Zitat von mashutu:
Zitat von QuickAndDirty:
Du solltest nach Möglichkeit nur Units im Interface uses angeben die du da angeben musst.
Alles andere gehört in das uses des Implementationteil um zirkuläre Verknüpfungen zu vermeiden.
Nein mit uses Anweisungen im Implementation-Teil werden zirkulaere Verknuepfungen erst moeglich. Ansonsten meckert schon der Compiler.
Ja, weil es vollkommen OK ist überkreuz oder zirkulär zu verweisen.

Es geht nur wegen des beschränkten Konzpets von Objekt-Pascal nicht im Interfaceteil.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#10

Re: uses im interface und implementation-Teil

  Alt 15. Jan 2009, 13:30
Moin, Moin.

Die bisherigen Beiträge bringen mich als Laien-Programmierer doch sehr durcheinander. Die von mashutu im ersten Beitrag genannten Argumente halte ich für absolut zutreffend; sie entsprechen exakt meiner Denk- und Vorgehensweise!

Zirkuläre Bezüge können, auch wenn sie manchmal recht praktisch sind, letztendlich mehr Ärger machen als Nutzen bringen. Aufgrund eigener negativer Erfahrungen vermeide ich sie grundsätzlich. Daher kommt bei mir auch alles in den interface-Teil - weil ich, ebenso wie mashutu, ein Meckern des Compilers provozieren will. Allein dies ist für mich bereits Grund genug, genau diese Vorgehensweise zu wählen.

Die Aussage von mkinzler in Beitrag #2 - gilt sie noch? - ist doch vor dem Hintergrund des Grundgedankens "ich will, dass es knallt" nicht richtig. Nur mittels "verteilter" Angabe der uses im interface- und implementation-Abschnitt sind doch zirkuläre Bezüge möglich.
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

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 08:18 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