AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
02.06.20 - 23:08:38
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Best Practices
| |-+  Diskussionen zu Best Practices (Moderatoren: Axel, MartinG, animate, koehlerbv)
| | |-+  an Design Patterns / Entwurfsmuster angelehnter Stil?
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: an Design Patterns / Entwurfsmuster angelehnter Stil?  (Gelesen 6042 mal)
Axel_Janssen
Gold Platin u.s.w. member:)
*****
Offline Offline

Beiträge: 769



« am: 25.01.04 - 12:29:35 »

Hi,

in OO notiert man best practices der Programmierung /Architektur/Analyse/Design gerne in Form von Design Patterns (Entwurfsmuster).
Hier ist nähere Erklärung:
http://hillside.net/patterns/definition.html

Design Patterns sind eigentlich programmiersprachenunabhängig. Deshalb sind Notes Design Patterns keine Design Patterns sondern Idioms, d.h. Design Patterns ohne Anspruch der Programmiersprachenunabhängigkeit. Die berühmten J2EE Design Patterns sind btw. auch Idioms, da sie stark mit J2EE gekoppelt sind.

Hier ist Beispiel. Ich übernehme die Notationsform von Adam Bien, der ein sehr gutes Buch über J2EE Design Pattern geschrieben hat und ergänze eine Eigenschaft mit dem Namen scope:
Name: Multi-Lookup Pattern
scope Programmierung // Formelsprache // Masken
1. Hintergrund
Dokumente in einer Notes-Datenbank haben oft Beziehungen zueinander. Beispielsweise kommt es oft vor, dass ein Dokument mehrere Werte eines anderen Dokuments (mit den es in Beziehung steht) anzeigen soll.
Dies wird gerne über Lookup-Formeln realisiert.

2. Zweck
Da die Lookupformeln Ressourcen kosten, soll ihre Anzahl möglichst gering gehalten werden.

3. Problemstellung
Wenn mehrere DbLookupformeln in einem Dokument auf das gleiche Dokument referenzieren, kann dies die Antwortszeit des Ladens dieses Dokuments verschlechtern.

4. Anforderungen
Mehrere Lookups sollen - wo möglich - in einem Lookup zu vereint werden.

5. Lösung
Als Ziel des Lookups wird eine versteckte Ansicht "(werte)" mit den referenzierten Dokumenten erstellt. Die erste Spalte (sortiert) zeigt den key, mit dem aus dem referenzierenden Dokument auf die Daten des referenzierten Dokuments eindeutig zugegriffen werden kann.
Die zweiten Werte zeigt alle Feldinhalte, an die das referenzierende Dokument interessiert ist, getrennt durch ein Trennzeichen (das garantiert nicht in den referenzierten Feldinhalten vorkommt). Kandidaten sind ~ oder #.
Die Formel der zweiten Spalte sieht dann so aus:
Feld1 + "~" + Feld2 + "~" + ... + Feldn + "~".
In einem Feld "ergebnis" des referenzierenden Dokument wird gegen diese Ansicht "(werte)" ein Db-Lookup aufgeführt. Nach dem Laden des Feldes "feldAlleWerte" enthält es alle Werte an denen das referenzierende Dokument interessiert ist.
Die Felder des referenzierenden Dokuments enthalten Formeln der Art @Word(feldAlleWerte;i); Das i bezeichnet dabei die Stelle des gesuchten Werts in der Werteliste.

Praxis
wenn ich Zeit hätte würde ich hier jetzt eine nsf-posten.  
Das Feld "feldAlleWerte" sollte möglichst weit oben in der Maske des referenzierenden Dokuments stehen, da Notes-Dokumente von links oben nach rechts unten ihrer Maske geladen werden.

Konsequenzen
Vorteile:
- weniger Lookups, schnellere Ladezeit des Dokuments.
- evtl. mehr Übersichtlichkeit in Maske

Nachteile:
- Das Konstrukt bricht, sobald das Trennzeichen doch einmal in einem Feld auftaucht.
-

Gruß Axel



 

Gespeichert

... design patterns are abstract designs that help identify the structure and elements involved in a specific design solution. From this, a concrete implementation can be produced.
Kyle Brown
Glombi
Gast
« Antworten #1 am: 26.01.04 - 09:14:07 »

Hi Axel,
das mit dem Scope finde ich sehr gut (zumal ich das auch schon so 1994 bei Lotus praktiziert habe...).

Wegen: Das Konstrukt bricht, sobald das Trennzeichen doch einmal in einem Feld auftaucht.
Das kann man wie folgt machen:
Anstelle eines String, der mit "~" verknüpft ist, kann man eine Liste machen. Also
FeldA : FeldB :... : FeldN
Extrahieren dann mit @Subset(...)
i-tes Element
@If(
 i = 1;
  @Subset(Liste;1);
 @Subset(@Subset(Liste;i);-1
)

Probleme hier (wie auch in Deinem Ansatz): Mehrfachwerte in den Feldern +  Unterschiedliche Datentypen

Andreas
Gespeichert
animate
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Beiträge: 1540


Uh, I'm just gonna go find a cash machine.


WWW
« Antworten #2 am: 26.01.04 - 10:55:42 »

goile Idee! Cheesy Design Patterns für Lotus Notes Entwicklung. Wenn ich Zeit habe, werde ich versuchen, mitzuarbeiten.
Gespeichert

Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.
Semeaphoros
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8152


ho semeaphoros - agr.: der Notesträger


WWW
« Antworten #3 am: 26.01.04 - 16:54:42 »

Mehrfachwerte: Man verwende mehrere Trennstrings (diverse Patterns - diesmal aber in einem anderen Sinne Smiley )
Gespeichert

Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6
Semeaphoros
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8152


ho semeaphoros - agr.: der Notesträger


WWW
« Antworten #4 am: 28.01.04 - 15:10:08 »

Fällt mir ein, dass zu Design Patterns letztes Jahr jemand ne Session gemacht hat. Ich werd mal die Slides heraussuchen, wenn ich zurück bin.

Ansonsten gefällt mir der Ausdruck Design Patterns eigenrlich schon besser als Best Practices, es sagt eigentlich besser aus, was es wirklich ist und ist nicht wertend. Tatsache ist einfach, dass man sich bei Sprache auf solch einfache Logik nie verlassen kann ... tja .... thats life .... Smiley
Gespeichert

Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #5 am: 08.02.04 - 19:23:27 »

Hi Axel,

ich weiß jetzt eigentlich nur wenig mit diesem Thema anzufangen.

Die Gliederung
1. Hintergrund
2. Zweck
3. Problemstellung
4. Anforderungen
5. Lösung
6. Praxis
7. Konsequenzen

für Artikel von Atnotes-Bestpractices finde ich gut, und ich werde zukünftig - so weit möglich - meine neuen Artikel so aufbauen.

Oder verstehst Du unter "Design Patterns" mehr eine Philosophie ?

Oder ist das "Design Patterns" nur ein Mode-Wort, und im Endeffekt steht dahinter nur die Idee, wie man Beiträge gliedern kann?

Also die Gliederung selbst gefällt mir schon mal gut, es wird so alles soweit berücksichtigt, und ist hilfreich für Autoren, um den roten Faden beizubehalten.

Matthias
Gespeichert

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.

Axel_Janssen
Gold Platin u.s.w. member:)
*****
Offline Offline

Beiträge: 769



« Antworten #6 am: 08.02.04 - 21:55:08 »

Oder verstehst Du unter "Design Patterns" mehr eine Philosophie ?
Design Patterns möglichst allgemeingültige Lösungen, die sich in einem bestimmten Kontext als effektiv erwiesen haben.
Design Patterns geben diesen Lösungen einen Namen und erleichtern somit die Kommunikation.
Hinsichtlich der Philosophie sehe ich das als genau dasselbe wie best practices an.
Natürlich gibt es rund um dieses Thema eine Menge Philosophie-wa-wa. Architektur ... Alexander ... Entdeckung nicht Erfindung ...
Ich hab das bewusst ausgespart.

Oder ist das "Design Patterns" nur ein Mode-Wort, und im Endeffekt steht dahinter nur die Idee, wie man Beiträge gliedern kann?
Modewort? Die sogenannte Gang Of Four hat das 1995 aufgebracht und viele haben das als effektiv angesehen und übernommen.
Diese Industrie sehnt sich nach den Heiligen Gral und oft wurden Design Patterns auch hinsichtlich ihrer Effektivität überschätzt.

Gerade für best practices finde ich die Gliederungsmethode sinnvoll.
Im Java-Bereich und noch stärker im J2EE-Bereich sind viele Bücher nach dem Design Patterns Prinzip gegliedert. Ich finde es übersichtlich.

Gruß Axel
« Letzte Änderung: 08.02.04 - 21:57:30 von Axel_Janssen » Gespeichert

... design patterns are abstract designs that help identify the structure and elements involved in a specific design solution. From this, a concrete implementation can be produced.
Kyle Brown
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: