Globale Variablen
Globale Variablen können überall im Programmcode verwendet und verändert werden. Es ist allgemeine Überzeugung, dass die Verwendung von globalen Variablen schlechter Programmierstil ist.
Nachteile
Seit ich einmal ein großes Programm weiterentwicklen musste, weiß ich, warum man globale Variablen vermeiden sollte:
- Ändert man Prozeduren, deren Verhalten von globalen Variablen abhängig ist, übersieht man leicht den Effekt dieser globalen Variablen. – Besser: alle notwendigen Variablen als Parameter übergeben
- Man kann leicht etwas in einem ganz anderen Programmteil zerstören, wenn man die globalen Variablen nicht beachtet. – In dem besagten Programm hatte ich den Eindruck, dass jede kleine Änderung den ganzen Programmaufbau wie ein Kartenhaus zusammenbrechen lässt.
- Fehler, die durch falsches Setzen der globalen Variable entstehen, können sich an ganz anderer Stelle auswirken und schwer zu finden sein.
- Nach jeder Änderung müsste man das ganze Programm testen.
Vorteile
Bei aller berechtigten Kritik glaube ich jedoch, dass die Programmierer, die globale Variablen strikt ablehnen, über das Ziel hinausschießen.
- Es ist meines Erachtens sicher nicht sinnvoll, Konstanten, die überall gleich sein sollen, in jedem einzelnen Modul zu wiederholen. – Besser: redundanzfreies Programmieren
- Dasselbe gilt meiner Meinung nach für Variablen, die einen globalen Zustand beschreiben. Oder soll man etwa den Querystring, den eine Webseite bekommt, an jede Unterprozedur weiterreichen?
Mein Fazit
Intelligente, wohldefinierte Verwendung von globalen Variablen kann das Leben des Programmierers einfacher machen.