Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Programmierdogmata (https://www.delphipraxis.net/174155-programmierdogmata.html)

Uwe Raabe 8. Apr 2013 10:17

AW: Programmierdogmata
 
Zitat:

Zitat von Mathematiker (Beitrag 1210503)
Zitat:

Zitat von Furtbichler (Beitrag 1210492)
Globale Variablen bedeuten, das Du faul bist und dir keine Gedanken über dein Systemdesign gemacht hast.

Danke! :lol: Jetzt weiß ich endlich, dass ich faul bin.
Bitte den Umgangston etwas mäßigen! :evil:

Selber Mathematiker, die gemäß Aussage meines alten Profs von Natur aus faul sind, empfinde ich dieses Adjektiv in keiner Weise als Beleidigung! Es ist vielmehr die Grundvoraussetzung für meine stetige Suche nach Vereinfachung.

SubData 8. Apr 2013 11:11

AW: Programmierdogmata
 
Naja... Wenn man es auf Haarspalterei auslegt, dann kann eine Anwendung, die nicht mindestens eine
globale Variable beinhaltet gar nicht existieren ;-)
Oder zumindest in den seltensten Fällen...

Sir Rufo 8. Apr 2013 11:16

AW: Programmierdogmata
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1210506)
Zitat:

Zitat von Mathematiker (Beitrag 1210503)
Zitat:

Zitat von Furtbichler (Beitrag 1210492)
Globale Variablen bedeuten, das Du faul bist und dir keine Gedanken über dein Systemdesign gemacht hast.

Danke! :lol: Jetzt weiß ich endlich, dass ich faul bin.
Bitte den Umgangston etwas mäßigen! :evil:

Selber Mathematiker, die gemäß Aussage meines alten Profs von Natur aus faul sind, empfinde ich dieses Adjektiv in keiner Weise als Beleidigung! Es ist vielmehr die Grundvoraussetzung für meine stetige Suche nach Vereinfachung.

:thumb:

Sir Rufo 8. Apr 2013 11:17

AW: Programmierdogmata
 
Zitat:

Zitat von SubData (Beitrag 1210520)
Naja... Wenn man es auf Haarspalterei auslegt, dann kann eine Anwendung, die nicht mindestens eine
globale Variable beinhaltet gar nicht existieren ;-)
Oder zumindest in den seltensten Fällen...

Warum? Nur weil Borlemba da schlampt und kein echtes Singleton (Application) davon macht?

Furtbichler 8. Apr 2013 11:20

AW: Programmierdogmata
 
Zitat:

Zitat von Delphi-Laie (Beitrag 1210501)
Zitat:

Zitat von Furtbichler (Beitrag 1210492)
Was ist für einen Newbie schlimm

Falls Du mich meinst: Ich programmiere seit 25 Jahren (insofern nicht mehrjährig, sondern eher vieljährig).

Gut, deine Gedanken bzw. Fragen hier im Forum haben einen anderen Eindruck auf mich gemacht. Aber Vorurteile sind ja dazu da, zu erkennen, das man sich irrt.

Zitat:

...Dogma ist ein griechisches Wort. ...man ihm nicht wenigstens ab und zu seine originale Pluralform belassen und die nicht gleich reflexhaft - und fehlerhaft - als falsch verdammen?...
Im Duden steht 'Dogmen' und nicht 'Dogmata'. Also ist es nicht reflexhaft, sondern recherchiert. Wir sprechen hier zudem kein Altgriechisch, sondern Deutsch.

Zitat:

Zitat von Mathematiker (Beitrag 1210503)
Danke! :lol: Jetzt weiß ich endlich, dass ich faul bin.

Wer guten Code schreiben will (und guter Code ist wesentlich mehr als 'funktionierender Code'), der muss auch Kritik einstecken können. Und 'faul' ist einerseits die treibende Kraft, Dinge zu vereinfachen und andererseits eine Charaktereigenschaft, die uns allen eigen ist, und gegen die man etwas unternehmen sollte.

Das mit den globalen Variablen dauert etwas, bis man kapiert, weshalb sie 'böse' sind. Im Endeffekt geht es hier im Wiederverwendbarkeit einzelner Module. Das wird genau dann schwer, wenn sie von globalen Variablen abhängig sind. Denn dann sind sie eben nicht unabhängig.

Daher ist es auch sinniger, sie in statische Klassen zu packen, dann muss man sich wenigstens nicht damit herumschlagen, ob die globale Variable überhaupt instantiiert ist.

Man kann auch mit Singletons arbeiten, die aber auch wieder 'böse' sind (eben wegen der o.g. Abhängigkeiten). Es gibt natürlich Singletons, die da sein müssen, z.B. ist die Festplatte oder der Bildschirm so ein schönes Beispiel.

p80286 8. Apr 2013 11:25

AW: Programmierdogmata
 
Zitat:

Zitat von Furtbichler (Beitrag 1210492)
Was ist für einen Newbie schlimm, sich an Dogmen (Mehrzahl von Dogma) zu halten? Diese Regeln (oder nenne es Dogmen, meine Güte) sind von Leuten erdacht, die 30+ Jahre programmieren und folglich die Essenz aus den Erfahrungen, die Du erst machen musst. Also: Partizipiere!

Die "alten Säcke" tun sich da schwerer, weil sie mit einigen Erfahrungen vorbelastet sind.
1) GOTO ist für mich ebenso wie ein Break eine Todsünde. Allerdings muß ich gestehen, das ich Sourcen gesehen habe wo beides augenscheinlich sinnvoll eingesetzt wurde.

2) Globale Variablen sind zu vermeiden, manchmal geht es allerdings nicht ohne.

3) Oberfläche und Berechnung trennen. Spätestens wenn eine zusätzliche oder abgeänderte Funktionalität benötigt wird, oder aber z.B. die darunterliegende DB sich ändert, erkennt man die Notwendigkeit dieser Trennung.

4) Code Formatieren ist reiner Selbsschutz, da dann der Code leichter zu überblicken ist. Ob man
Delphi-Quellcode:
if b then
  begin
  end
oder
Delphi-Quellcode:
if b then begin
end
nutzt ist meiner Meinung nach Geschmackssache, hingegen
Delphi-Quellcode:
var
  i,j,k,l,cnt,top,base : integer;
ist nicht so toll.

Gruß
K-H

a

Sir Rufo 8. Apr 2013 11:29

AW: Programmierdogmata
 
@p80286

Nenn doch mal ein Beispiel, wo eine globale Variable sinnvoll ist.

Mathematiker 8. Apr 2013 11:33

AW: Programmierdogmata
 
Hallo,
Zitat:

Zitat von Furtbichler (Beitrag 1210524)
Und 'faul' ist einerseits die treibende Kraft, Dinge zu vereinfachen und andererseits eine Charaktereigenschaft, die uns allen eigen ist, und gegen die man etwas unternehmen sollte.

Da Du schon gern den Duden zitierst:
Zitat:

Bedeutungen
1.durch Einwirkung zersetzender Bakterien [und unter Entwicklung übel riechender Gase] in Gärung, Verwesung geraten, übergegangen [und dadurch verdorben, unbrauchbar]
2.(umgangssprachlich abwertend) sehr zweifelhaft, bedenklich; nicht einwandfrei, nicht in Ordnung und daher unbefriedigend
3.abgeneigt zu arbeiten, sich zu bewegen, sich anzustrengen; nicht gern tätig; bequem, träge
4.(veraltend) säumig, nachlässig
1. und 4. stimmen hier wohl nicht. Also bleiben noch 2. und 3.
Was wird wohl auf mich zutreffen?

:gruebel:
Mathematiker

Caps 8. Apr 2013 11:35

AW: Programmierdogmata
 
Hallo,

ich muss sagen ich glaube daran, dass nur die eigenen Erfahrungen einem selbst wirklich etwas bringen. Mir ist auch erst durch das Anpassenmüssen fremden Codes klar geworden, wie schlecht nachvollziehbar das Verhalten eines Programms sein kann, wenn globale Variablen innerhalb einer Routine gesetzt werden (und nicht Objektfelder sind oder in der Signatur übergeben werden) und damit Auswirkungen auf alles mögliche andere hat - man sucht sich den Wolf, bis man kapiert hat, wo der Hase langläuft.

Vorher hatte ich überhaupt kein Problem mit globalen Variablen zum Beispiel. Ich setze auf die Erfahrung, es abstrakt zu vermitteln ist meiner Ansicht nach schwierig.

Beste Grüße
Caps

p80286 8. Apr 2013 11:45

AW: Programmierdogmata
 
Zitat:

Zitat von Sir Rufo (Beitrag 1210527)
@p80286

Nenn doch mal ein Beispiel, wo eine globale Variable sinnvoll ist.

Wenn Du z.B einen "Aufrufzähler" benötigst. Und jetzt sag nicht "das gehört in Form" bei einem Konsolenprogramm hast Du so etwas nicht. Ein anderes Beispiel wäre der Name einer Protokolldatei auch wenn er in der "Base-Date-Unit" untergebracht wurde.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:25 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz