Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#24

Re: Grosse Programme "übersichtlich" programmieren

  Alt 6. Nov 2007, 11:05
Es ist doch ganz einfach:

Jeder Löffel (=Aktion, Prozedur) gehört in den Topf (=Unit bzw. Klasse), in dem er rühren soll.

Die Kontrolle, wie sich die GUI verhält (Knöpfe aktivieren, wenn Daten verändert wurden etc.), gehört nunmal in die Formularklasse, aber was dann mit den Daten passiert, in die Datenklasse.

Aber wir wären ja schön blöd, wenn wir das konsequent und ohne Rücksicht auf Verluste jedesmal durchziehen würden. Also gibt es natürlich Ausnahmen. Die bleiben aber wirklich Ausnahmen.

Andererseits macht man sich später mehr Arbeit, die Funktionalität dann doch auszulagern.

Beispiel: Wir basteln uns einen Logindialog.

Wir fangen an mit zwei Eingabefeldern, OK- und Abbruch-Knopf. Bei OK wird kurz in einer Tabelle nach dem User und dem Passwort gefragt und im Modal entweder mrOK, mrCancel oder mrNo zurückgeliefert (egal jetzt, ob das so toll ist).

Drei Zeilen Logik. Und dafür ne Klasse? Quatsch mit Soße!

Oh, nun soll das Passwort doch verschlüsselt abgelegt werden. Na und, suchen wir halt nach dem verschlüsselten Passwort. Wupps, eben eingebaut. Fertig.

Oh, nun sollen noch Benutzerrechte eingelesen werden. Oh, hmm. Egal, reingebepselt. Fettig.

Spätestens jetzt darf man ordendlich in die Team-Kaffekasse zahlen, weil man zu frickeln anfängt und anderen das Leben schwermacht. Als Strafarbeit muss man nun den Code nochmals entwirren und allen Beteiligten zusätzlich einen ausgeben.

Also dann doch lieber gleich von Anfang an eine TBenutzer- und vielleicht eine TBenutzerlist-Klasse in einer separate Unit 'uBenutzerverwaltung', und schon ist das ordendlich entkoppelt. Die TBenutzerliste hat dann eben nur eine Methode 'PrüfeBenutzerLogin', und die besteht aus drei Zeilen. Der TBenutzer kommt gänzlich ohne Logik aus. Na und?

Jemand kann sich am Login-Dialog blöd designen (dass das nicht so schwer ist, sieht man an den ganzen grenzdebilen Designern ), und die Coderecke kann sich an der Benutzerverwaltung unter Vermeidung von natürlichem Licht einen Wolf programmieren (Benutzergruppen, Zugriffsrechte, sichere Passwörter, automatisch ablaufende Passwörter, Backdoors, yippie!)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat