AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programmierdogmata

Ein Thema von Delphi-Laie · begonnen am 7. Apr 2013 · letzter Beitrag vom 8. Apr 2013
Antwort Antwort
Seite 1 von 2  1 2      
Furtbichler
(Gast)

n/a Beiträge
 
#1

AW: Programmierdogmata

  Alt 8. Apr 2013, 09:10
Hi, mein Senf:
Grundsätzlich kannst Du so schlampig programmieren, wie Du willst. Aber wenn Du dich stetig verbessern willst, dann schreib die besten und saubersten Programme der Welt.

1. Die Verteufelung des GOTOs. GOTO wird nie benötigt. Du kannst ein 'break', 'exit' oder 'return (xy)' verwenden. Und wenn man Clean-Code verfolgt, ist selbst ein 'break' unnötig.

2. Die Ablehnung globaler Variablen. Globale Variablen bedeuten, das Du faul bist und dir keine Gedanken über dein Systemdesign gemacht hast. Ganz ohne globale Variablen kommt man aber manchmal nicht aus. Allerdings sollte dein Bestreben sein, sie wen Möglich zu vermeiden. Die Gründe kannst Du im Netz und im Forum nachlesen. In modernen Sprachen sind die globalen Variablen/Singletons hinter statischen Klassen versteckt, was (fast) aufs Gleiche rauskommt, aber nicht so auffällt

3. Die Forderung, Oberfläche und Rechenteil zu trennen. Hiermit ist gemeint, das die Logik nicht hinter einem 'Button1_Click' ausprogrammiert werden sollte ("Trenne Funktion und Design").

4. Strukturierung der Quelltexte (Einrückungen usw.) Tu es einfach. Wenn mir das nicht gefällt, jage ich es durch meinen eigenen Formatierer und wir müssen uns darüber nicht streiten. Aber sorge Du dafür, das deine Einrückung konsistent und automatisierbar ist, denn ich hab keine Lust, mir dein Gemecker anzuhören, weil Du die Gleichheitszeichen immer in Spalte 39 haben willst und kein Formatierer der Welt das so für dich hinbekommt.


Zitat:
ich nenne es ganz deutlich, die Tendenz zum Dogma erkennen lassen.
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!
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Programmierdogmata

  Alt 8. Apr 2013, 09:20
Ich muss meinen Vorrednern da einfach zustimmen.
Nur weil man etwas verwenden kann, heißt das noch lange nicht, dass man es verwenden muss.
Wenn man wirklich sauberen und durchdachten Code schreibt, dann sind Dinge wie globale Variablen, GOTOs, Do Withs, etc. völlig unnötig.

Naja, fast unnötig. Ich habe in den meisten meiner Anwendungen auch globale Variablen.
Allerdings beschränke ich die immer gerne auf folgende Definition

Delphi-Quellcode:
threadvar
  tv: TThreadVars;
var
  pv: TPublicVars;
Im 'tv' werden alle globalen Werte gespeichert, die für diesen Thread notwendig sind.
Zum Beispiel ein Pointer auf den aktuellen Indy-Thread, oder ggf. noch eine Benutzerreferenz.

Im 'pv' stehen Werte für die aktuelle Programmversion, der Anwendungspfad, der Logpfad, etc.

Somit reichen 2 globale Variablen, die intern eine Klasse oder ein Record sind aus, um diverse
Konfigurationsmöglichkeiten durch die ganze Anwendung zu schleifen.
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

AW: Programmierdogmata

  Alt 8. Apr 2013, 09:52
Danke an alle!

Was ich nun doch herauslas: Kleines, also vereinzeltes Ausbrechen aus dieser Regelmenge ist also manchmal doch vorteilhaft. Und genau das ist nämlich auch mein Empfinden. Nur darum ging es mir.

Was ist für einen Newbie schlimm
Falls Du mich meinst: Ich programmiere seit 25 Jahren (insofern nicht mehrjährig, sondern eher vieljährig). Wenn ich ein Neuling wäre, hätte ich mir über so etwas nie Gedanken gemacht, ich hätte diese Grundsätze noch nicht einmal bemerkt, geschweige denn, den Kopf dafür freigehabt, auch diese zu beherzigen, zu befolgen.

, sich an Dogmen (Mehrzahl von Dogma) zu halten? Diese Regeln (oder nenne es Dogmen, meine Güte)
Ach Furtbichler, Dogma ist ein griechisches Wort. Auch wenn wir es eingedeutscht großschreiben, kannst man ihm nicht wenigstens ab und zu seine originale Pluralform belassen und die nicht gleich reflexhaft - und fehlerhaft - als falsch verdammen? Ich tue es. Bitte nicht schon wieder.

Geändert von Delphi-Laie ( 8. Apr 2013 um 10:16 Uhr)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#4

AW: Programmierdogmata

  Alt 8. Apr 2013, 11:20
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.

Danke! 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.
  Mit Zitat antworten Zitat
Mathematiker
(Gast)

n/a Beiträge
 
#5

AW: Programmierdogmata

  Alt 8. Apr 2013, 11:33
Hallo,
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?


Mathematiker
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: Programmierdogmata

  Alt 8. Apr 2013, 12:32
1. und 4. stimmen hier wohl nicht. Also bleiben noch 2. und 3.
Was wird wohl auf mich zutreffen?
Hab dich nicht so. Dann bist Du eben nicht faul und machst alles richtig.

Zum Thema 'globale Variablen'. Meine Meinung: Einfach nicht verwenden. Wenn schon, dann in ein Singleton-Pattern packen. Und pro Singleton eine Kiste Bier/Brause für die Entwickler. Man muss das wirklich begründen und wenn alle einverstanden sind, dann ist die Welt in Ordnung.
  Mit Zitat antworten Zitat
Mathematiker
(Gast)

n/a Beiträge
 
#7

AW: Programmierdogmata

  Alt 8. Apr 2013, 10:12
Hallo,
bisher verfolge ich die Diskussion mit wachsendem Interesse und wollte mich eigentlich nicht äußern.
Aber:
Globale Variablen bedeuten, das Du faul bist und dir keine Gedanken über dein Systemdesign gemacht hast.
Danke! Jetzt weiß ich endlich, dass ich faul bin.
Bitte den Umgangston etwas mäßigen!

Beste Grüße
Mathematiker
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.815 Beiträge
 
Delphi 12 Athens
 
#8

AW: Programmierdogmata

  Alt 8. Apr 2013, 10:17
Globale Variablen bedeuten, das Du faul bist und dir keine Gedanken über dein Systemdesign gemacht hast.
Danke! Jetzt weiß ich endlich, dass ich faul bin.
Bitte den Umgangston etwas mäßigen!
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Programmierdogmata

  Alt 8. Apr 2013, 11:11
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...
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Programmierdogmata

  Alt 8. Apr 2013, 11:17
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?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:48 Uhr.
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