|
RE: zu viele Übergabevariablen/zu wenig Connectors
Also hier auch was Konstruktives - so hoffe ich.
Ich weiß nicht, wie es sich bei Version 7 verhält, aber bei Version 11 habe ich durch eigenes Nachmessen folgendes festgestellt:
Die Behauptung, das globale Variable langsam sind, ist weiter nichts als üble Nachrede. Wahrscheinlich war es früher mal richtig, und was sich einmal in den Köpfen eingebrannt hat ist schwer wieder herauszubekommen.
Von da aus gibt es überhaupt keine Bedenken, globale Variablen zu verwenden.
Ich würde GVs allerdings aus verschiedenen anderen Gründen nicht zum zeitkritischen Datenaustausch verwenden. Die meisten Variablen in einem Programm sind aber keine echten Daten, sondern eher sich selten ändernde Werte und somit eher Konstanten als Daten. (Beispiele: Variable, die nur bei der Initialisierung beschrieben werden. Variable, die sich nur durch Bedienung ändern. Und: Referenzen).
Die Verwendung von globalen Variablen in solchen Fällen ist der Königsweg, um das Drahtwirrwar von und zu SubVIs entscheidend zu beseitigen und die Übersichtlichkeit eines VIs zu verbessern.
Gegenüber FGVs haben globale Variable den Vorteil, dass man alle GVs in einem einzigen VI definieren kann. Bei FGVs bräuchte man für jede Variable ein eigenes SubVI.
Bitte an alle: Jetzt kein weitere Diskussion über das Für und Wider von GVs im Allgemeinen, und bitte auch keine Warnungen über Wettlauferscheinungn usw. Wer es dennoch nicht lassen kann, möge sich bitte auf einen Link zu einem der (gefühlt) 10^6 einschlägigen Warnungen hier im Forum beschränken.
Was mir im Thread auffiel: Da wird vor SubVis in einem Ereigniscase gewarnt, so als ob das 10 mal so lange dauern würde als der direkte Code. Dabei fällt aber wohl keinem auf, dass sich in dem abgebildeten Ereigniscase eine Wartefunktion von sage und schreibe 2 sec befindet, was die Diskusion über den Zeitbdearf der SubVIs völlig verblassen lässt.
|