[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: OT: Suche Artikel



Hallo,

das ist ein interessantes Thema .. ich muss hier mal meinen Senf dazugeben.
:-)

On Sun, Jan 28, 2001 at 06:52:24PM +0100, Patrick von der Hagen wrote:
> On Thu, Jan 25, 2001 at 07:30:43PM +0100, Thomas Reiß wrote:
> > On Sun, 21 Jan 2001, Patrick von der Hagen wrote:
> [...]
> > hmm, ich denke es wäre doch sinnvoller wenn über eine def.
> > Schnittstelle jedes Programm seine Optionen ablegen kann.
> So weit, so gut.

So nach dem Motto "libinifile" oder das, was KDE Programme machen ("sycoca"
aka "system configuration cache")? Das hat auf jeden Fall einige Vorteile.
(Muss aber nicht heissen, daß es keine Nachteile hat...)
 
> > Ich dachte jetzt in diesem Zusammenhang weniger um die Bedeutung der
> > Parameter (die sollte das Programm selbst am besten kennen), als
> > vielmehr auf den definierten Zugriff darauf. Wie das ganze dann
> > abgespeichert/gefunden (Datenbank,XML,Flat-Files) wird sollte dabei
> > zweitranging sein.
> Aber: Du hast ein großes Problem mit der Semantik. Heute weiss ich, ich
> editiere die smb.conf, die hat einen eigenen Dateinamen und evtl. au..
> Beispiel: Man nehme einen Mercedes und einen VW. Beide haben eine
> Handbremse, allerdings funktionieren die völlig unterschiedlich. Trotzdem

Dumme Frage: Was interessiert es denn hier den Autofahrer, WIE die
Handbremse funktioniert? Sie verhindert, daß das Auto wegrollt, wenn man
sie anzieht.  Mehr braucht der Fahrer nicht zu wissen. Oder?

> werde ich die Funktionsweise nie verwechseln, weil ich immer genau weiß,
> ich bin im Mercedes oder ich bin im VW.  Wenn aber VW und Mercedes genau
> gleich aussehen würden, und ich verwechseln könnte, in welchem in gerade
> sitze, dann bekäme ich ein Problem.

Der Witz ist ja, daß es dir - WENN es eine einheitliche Schnittstelle gibt
- völlig egal sein kann, in welchem Auto du sitzt. Wenn es eine Handbremse
gibt, dann weisst du was sie tut - WIE sie es tut ist völlig egal und geht
dich u.U. auch gar nix an. Das ist doch auch eines der fundamentalen
Prinzipien der OOP, oder nicht? Ein Programmierer muss nur die
Schnittstelle kennen. Aka

	$fahrzeug = new achtzehntonner();
	$fahrzeug->zieh_handbremse_an()

vs

	$fahrzeug = new smart_joghurtbecher();
	$fahrzeug->zieh_handbremse_an();

In beiden Fällen _weiss_ ich nach dem Methodenaufruf, das das Fahrzeug
steht. Egal was es für eins ist und egal, wie die Handbremse funktioniert
(hydraulisch, mechanisch, elektrisch, etc). Naja, ausser ...

	if($fahrzeug->geschwindigkeit() != 0) {
		throw new HandbremseIstKaputtException()
	};

Und wie die Ausnahmebehandlung aussieht, ist i.d.R. vom 18tonner zum
Joghurtbecher auch etwas verschieden. ;-)
 
> OK, das hinkt jetzt ein wenig, aber wenn Du das Aussehen
> vereinheitlichst, wird das mit der Semantik u. U. schwieriger. Das sollte
> man IMHO im Hinterkopf behalten, sonst wird ein "Problem" beseitig und es
> entsteht ein subtileres, schwierigeres Problem.

Naja, du musst auch so wissen wo du bist. Ich meine, wenn du im Editor z.B.
eine Konfigdatei hast, dann _weisst_ du, ob es die in /etc, die in $HOME,
die auf $fetter_firmenserver oder die auf $zuhause_bastelrechner ist. Das
steht nicht in der Datei und nur _deshalb_ müssen die Dateien noch lange
keine verschiedene Syntax haben. Auch - oder gerade - wenn "Sicherheit" auf
dem Firmenserver was GANZ anderes heisst als auf deiner Bastelkiste.
 
> [...]
> > Was hälst du davon ?
> Du gehst da an dem vorbei, worum es mir geht. Mir ist nicht die
> Implementierung wichtig, sondern die Benutzerschnittstelle. Und ich
> bezweifel teilweise die Vorteile, die Du in einer Vereinheitlichung
> siehst.

Ich halte den größten Vorteil einer Konfigurationsvereinheitlichung immer
noch dafür, daß man nicht ständig das Rad neu erfinden muss. I.e. ich will
meine Konfiguration einlesen. Wieso muss ich dafür *NOCH* einen neuen
Textfileparser schreiben, der wieder unumgängliche Kinderkrankheiten haben
wird und den Code aufbläht? Wieso kann ich nicht einfach $konfigobjekt =
readconfigfile() machen und gut is?

Nur als Beispiel: KDE-Programme speichern ihre Konfiguration in einem
Objekt und kriegen dieses vom System beim Neustart des Programmes
_automatisch_ wieder vorgeworfen. Ob sie es dann benutzen, ist was
anderes - aber auf jeden Fall brauchen sie sich noch nicht einmal über das
_ablegen_ und wiederaufnehmen von Konfiguration Gedanken machen.

Ich finde den Ansatz interessant. Vor allem, weil er GUI-unabhängig ist -
man kann problemlos den sycoca benutzen ohne die KDE libs (oder irgendwas
grafisches) zu benutzen und umgekehrt.
 
> [...]
> > (wobei ich hier weniger die Datenbank im Hintergrund sehe als einen
> > einheitlichen Zugang zu Parametern)
> Schon jetzt gibt es semantische Unterschiede zwischen den verschiedenen
> Konfig-Dateien. Aber aufgrund der unterschiedlichen Darstellung tret..
[suse]

Hm, vielleicht reden wir aneinander vorbei, aber ich halte eine
Vereinheitlichung für sehr sinnvoll. Man muss weniger lernen und der
Programmierer muss weniger programmieren und das Programm ist nicht so
buganfällig.

Beispiel: Sowohl Apache als auch ProFTPD benutzen die XML-ähnliche Syntax
für Zugriffsrechte. I.e. <Directory>, <Files> usw usw. Diese Syntax scheint
sich bei vielen neueren Programmen als Standard durchzusetzen. Resultat:
ich kannte Apache und bin daher mit ProFTPD ziemlich schnell klargekommen.
Bei wu-ftpd habe ich länger gebraucht und schliesslich aufgegeben (aber,
zugegebenermassen, eher wegen der ganzen Scheunentore).



Just my EUR 0.02. :)


-- 
A: "Ist [...] noch am Leben?"
B: "Sie wurde zusammen mit ihrem Mann begraben."
A: "Das beantwortet meine Frage nicht!"
http://www.hitchhikers.de/ - Die kostenlose Mitfahrzentrale für ganz Europa

Attachment: pgpgeA6s9jCIF.pgp
Description: PGP signature


Reply to: