Namenskonventionen #u-Variable

Bernhard Eversberg EV at buch.biblio.etc.tu-bs.de
Mo Mär 19 09:44:23 CET 2001


Entwurf! Mit der Bitte um Stellungmahmen und Vorschlaege.

Namenskonventionen fuer die #u-Variablen
----------------------------------------
Es wird leicht als misslich empfunden, dass der Namensraum
fuer Nutzervariablen so klein ist: man hat nur die Namen
#uxy  zur Verfuegung, wobei x ein Buchstabe oder eine Ziffer
sein darf, y jedes druckbare Zeichen, also auch Sonderzeichen.
Ausserdem teilen sich saemtliche aktuell geladenen Parameter
und FLEXe denselben globalen Namensraum. Potential fuer Konflikte
und schwer durchschaubare Fehler.

Immerhin: das sind weit ueber 10.000 moegliche Namen,
der Speicher dafuer kann aber, je nach Einstellung des
Wertes mb in der CFG, meistens weniger als 1000 Variablen 
fassen (Standard in $a.cfg ist 500). 
Der Namensraum ist also nur vermeintlich klein, real wird er 
in keiner Anwendung auch nur annaehernd ausgeschoepft. 
Dennoch:
In der Vergangenheit wurden immer mal wieder Vorschlaege
laut, den Namensraum zu erweitern, zu separieren etc. Solche 
Wuensche mussten und muessen unerfuellt verhallen, das ist hier
bedauernd festzustellen. Wir wuerden eine Pandorabuechse
oeffnen, von der ueber kurz oder lang jeder wuenschen wuerde,
sie waere zu geblieben! Nebenwirkungen, Effizienzverlust, ...
Es ist archaisch, spartanisch, kryptisch - alles zugegeben.
Aber so ist es und so muss es bleiben, wir sagen das lieber
klipp und klar und unvernebelt. Damit muss man leben.

Es bleibt also nichts als der Versuch, sich in dem beschraenkten
Rahmen einzurichten. Dazu haben wir schon ein paar Schritte
gemacht, man sollte aber versuchen, ein paar klare Konventionen
aufzustellen, deren Beachtung unerwuenschte Probleme dann 
weitgehend verhindern koennte. 

Momentan haben wir diese Situation:

1. SYSTEMvariable, nicht vom Anwender umdefinierbar
   (s. Handbuch S. 192/93)

#u1   Sortierkoepfe
#u2   

#u0k  k=0,1,2,3 : Anzahl Kategorien, erste, naechste, letzte Kat.

#ui0  Letzte Nutzereingabe im Index (nur DOS)
#uxS  S=a,b,c,d,q,0-9
      reserviert fuer Sondervariable (s.S. 193 im Handbuch)

#uV0...#uV9
      fuer eingebettete Variablen %Vi in RTF-Hilfetexten
      Eigentlich obsolet, seit jede #u-Variable und jede
      Kategorie mit %#xyz eingebettet werden kann.
      In Standarddateien nicht mehr verwendet

2. Variable fuer STANDARDfunktionen
   Organisier-, Admin-, Tabellen-, View- etc. Funktionen,
   also alles, was datenbankunabhaengig ist.
   Hierfuer wird nur eine begrenzte Auswahl der #uxy eingesetzt! 
   Momentan haben wir in den Standard-Parametern und in den FLEXen
   folgende Regelungen:
   Mit B ist immer ein Grossbuchstabe gemeint, mit i eine Ziffer

#uXi    Variablen fuer Flips
#uYi
#uZi

#uvB    FLEX-Variablen in den System- und StandardFLEXen
#uwB
#uxB

#uoB    Namen, die in ORDA benutzt werden (wird momentan umgestellt)

In vielen FLEXen ist am Ende eine Liste der verwendeten Variablen!

3. ENDANWENDER-Namen
Welche Namen kann der Endanwender benutzen, ohne Gefahr zu laufen,
dass Konflikte mit SYSTEM- oder STANDARDnamen auftreten? 
Nach dem oben Gesagten macht der Anwender nichts verkehrt, wenn er 
sich an die vereinfachte Regel haelt: 

In #uxy fuer x und y nur Kleinbuchstaben von a bis w, y auch Ziffern.

Dieser komplette Bereich ist frei von anderen Belegungen. 
Das sind 759 Variablen.
Voellig frei sind ferner ALLE Variablen #uXY in denen beide
Zeichen Grossbuchstaben sind. 
Das sind nochmals 676 Namen, zusammen also 1435 Namen. Eine gewisse
Mnemonik laesst sich damit immer noch erzielen, auch kann sich
der Anwender eigene Konventionen fuer selbstdefinierte Bereiche
aufstellen.


Bernhard Eversberg
Universitaetsbibliothek, Postf. 3329, 
D-38023 Braunschweig, Germany
Tel.  +49 531 391-5026 , -5011 , FAX  -5836
e-mail  B.Eversberg at tu-bs.de  




Mehr Informationen über die Mailingliste Allegro