Das Notes Forum

Best Practices => Diskussionen zu Best Practices => Thema gestartet von: TMC am 10.06.04 - 19:12:23

Titel: Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: TMC am 10.06.04 - 19:12:23
Hier hat es sich mal wieder gezeigt, dass es evtl. nicht schlecht wäre, eine Liste zu führen, was ein Notes-Entwickler generell immer beachten muss: Thread: DocLink in Sub Querysave (http://www.atnotes.de/index.php?board=3;action=display;threadid=16244)

Hier mal der erste Anfang:

+ Immer Vorgabeansicht definieren
+ Option Declare nutzen in LS (kann in R6 der Prog.-Pane per Default gesetzt werden)
+ Code kommentieren
+ Debugger nutzen wenn LS-Code einen Fehler auswirft



Weitere Vorschläge sind willkommen. Vielleicht wird ja dann mal ein BP-Artikel daraus :-)

** EDIT **
10.06.04 19:30:
+ Errorhandling in Scripts verwenden (siehe BP-Thread (http://www.atnotes.de/index.php?board=27;action=display;threadid=11980))
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: eknori am 10.06.04 - 19:16:04
+ Designer Help lesen
+ CACHE löschen und Rechner neu starten !
+ Knowledge Base lesen

Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: animate am 10.06.04 - 21:25:21
+ Knowledge Base lesen

aber nicht erst von eknoris Seite auf die eigene Platte ziehen!
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: TMC am 10.06.04 - 22:13:13
+ @Author nicht verwenden (z.B. bei History)
+ Simple Actions in Agenten nicht verwenden (da Probleme vorprogrammiert)
+ RT-Felder soweit möglich immer vermeiden
+ sowenig Felder wie nur möglich in Masken
+ Scheduled Agenten mit kurzem Zyklus vermeiden
+ Sortierte Spalten vermeiden wo nicht unbedingt erforderlich
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: animate am 10.06.04 - 22:40:12
was da in meinen Augen nicht fehlen soll, ist eine Begründung für die Aussagen.
Mir fällt es immer sehr schwer, irgendwelchen Geboten zu folgen, wenn ich nicht weiß, was dahinter steckt...
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: TMC am 10.06.04 - 22:43:26
Klar, Thomas.

Ich stelle mir das so vor:
Eine Liste der ganzen Bedingungen/Aussagen. (also Inhaltsverzeichnis)

Und unten dann alles erklärt.
Also dann Details zur Vorgehensweise und Hintergründe warum das so ist.....


Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: animate am 11.06.04 - 22:46:16
hier sind ein paar ganz interessante Sachen dabei.
ist wahrscheinlich nicht so die Richtung, in die du mit diesem Thread wolltest, Matthias, ich finde jedoch, dass Teile daraus das Potenzial haben, eines Tages in den BP zu landen.

http://www.lotusgeek.com/SapphireOak/LotusGeekBlog.nsf/d6plinks/BLOT-5ZKNCH (http://www.lotusgeek.com/SapphireOak/LotusGeekBlog.nsf/d6plinks/BLOT-5ZKNCH)
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: TMC am 11.06.04 - 22:59:09
hier sind ein paar ganz interessante Sachen dabei.
ist wahrscheinlich nicht so die Richtung, in die du mit diesem Thread wolltest, Matthias, ich finde jedoch, dass Teile daraus das Potenzial haben, eines Tages in den BP zu landen.

Danke, Thomas.
Passt denke ich gut sehr hier rein ;-)


Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: Glombi am 11.06.04 - 23:03:29
+ Simple Actions in Agenten nicht verwenden (da Probleme vorprogrammiert)
Die Dinger verwendet ein Entwickler NIE.

Was noch:
+ Systemansichten (versteckt mit runden Klammern) für Lookups etc. ; diese immer mit Alias
+ alle Masken erhalten Alias

Andreas
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: Semeaphoros am 12.06.04 - 05:55:36
Begründung Andreas?

Ich sehe diese Behauptung immer wieder, bisher aber nie mit einer Begründung ..........
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: Glombi am 12.06.04 - 10:06:26
Du meinst sicherlich die Aussage zu Simple Actions: Diese sind in erster Linie für Endanwender (ohne Programmierkenntnisse) gedacht, um mit ein paar Klicks brauchbare Aktionen zu basten.

Als Entwickler verwende ich die nicht bei der Programmierung, da
- keine Kommentare verwenden werden können
- die Wiederverwertbarkeit schlecht ist
- falls weitere Anforderungen kommen, die nicht mit Simple Actions möglich sind, muss alles mit Formelsprache oder Script neu gemacht werden. Also besser gleich damit.
- Bei so einfachen Sachen wie Feldwert ändern kann man nur statischen Text eingeben.
- sprachabhängig (erinnert mich an Notes 2, wo man noch @Wenn hatte  ;D)

Insgesamt sind die Dinger nur statisch zu gebrauchen.
Es mag jedoch den einen oder anderen Fall geben, wo es auch vom Entwickler verwendet wird. Ich selbst habe das in den letzten Jahren aber nie gebraucht.

Andreas
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: Semeaphoros am 12.06.04 - 12:07:06
Nein, nein, das mit den Simple Actions ist schon klar, die sind ja auch nicht für den Entwickler gemacht worden, sondern sollten dem Enduser die Möglichkeit geben, auch etwas zu machen. Ich meine die Aliase .... sorry, dass ich das vergessen hab zu sagen.
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: Driri am 12.06.04 - 12:16:22
Was mir noch spontan einfällt :

@Today etc. in Views vermeiden wg. Performanceproblemen
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: Glombi am 12.06.04 - 12:21:47
Gestaltungselemente sollten immer (sofern dies seitens Notes unterstützt wird) so aufgebaut werden:
<Benutzerschnittstelle>|<Programmschnittstelle>

<Benutzerschnittstelle> ist das, was Anwender sehen: Maskenname im Erstellmenü, Ansichten im Ansichtsmenü, Schlüselwörter in Auswahllisten

Zugriffen wird aber immer per Programmschnittstelle = Alias

Vorteile:
- Leichte Anpassungen kundenspezfischer Namensgebungen
- Leichtere Entwicklung von Anwendungen, die in Notes und Browser verwendet werden
- Leichtere Entwicklung von mehrsprachigen Anwendungen

Nachteile:
- höhere Tipparbeit

Andreas
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: Glombi am 12.06.04 - 12:23:07
+ @Usernamen nur in privaten Ansichten
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: Semeaphoros am 12.06.04 - 16:08:46
Ok, Aliasse für sichtbare Elemente haben den geschilderten Vorteil, das ist klar und richtig so. Du sprachst aber von Systemansichten und die werden ja eigentlich nur von Programmseite her angesprochen, da erübrigt sich das, weils nicht angepasst werden muss. Natürlich kann es vom Standpunkt der Lesbarkeit her gesehen trotzdem Sinn machen.

Meine Reaktion begründet darauf, dass ich schon mal jemanden schreiben gesehen habe:

"Der hat ja überhaupt keine Aliasse verwendet, was war denn das für ein stümperhafter Programmierer?" Das war eine Pauschalverurteilung, die man so sicher nicht aussprechen darf.
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: Glombi am 12.06.04 - 16:57:29
Meine Systemansichten nenne ich immer so:

(<Name der Ansicht>) | <Name der Ansicht>

d.h. der Name wird eingeklammnert und ist daher nicht mehr sichtbar und der Alias erhält keine Klammern.

Das hat auch zur Folge, dass alle Systemansichten im Designer unter den sichtbaren Ansichten stehen.

Andreas
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: TMC am 12.06.04 - 19:23:18
Schön, die Liste wird ja immer länger :-)

Was mir etwas unnötig erscheint: Für eingeklammerte Systemansichten Alias zu definieren: die Argumente von Andreas begründen das imho nicht, da eingeklammerte Ansichten ja eh nicht für den User sichtbar sind....
Oder gibt's da noch ein anderes Argument?

Ein paar hab ich noch:
+ Wenn Lotus Script - Shared Actions (insbesondere noch mit ScriptLib-Einbindung) erstellt werden sollen: den Code besser in einen Agenten auslagern - da ansonsten Probleme auftreten können und der Debugger u.U. nichts anzeigt
+ Einheitliche Variablen-Präfixe
+ LS sinnvoll splitten, wiederverwendbare Teile in ScriptLibraries auslagern

Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: eknori am 12.06.04 - 19:32:44
Klassenbildung bei längeren Libs - wenn nur eine Funktion/sub letztendlich gebraucht wird kann man da ne klasse Klasse draus machen; der Rest ist private ...
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: TMC am 15.06.04 - 20:51:43
Hier auch noch ein netter Artikel, ein paar Dinge haben wir ja schon erwähnt  ;)

http://www.chc-3.com/pub/tips1.htm
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: koehlerbv am 15.06.04 - 22:03:46
Keine Zeile LS-Code ohne ErrorHandler, der zumindest ErrorCode und ErrorLine ausgibt.
Konstanten auch als solche deklarieren (ggf. "Pseudo-Konstanten" verwenden) und diese an zentraler Stelle deklarieren.
(Also nicht Set viewLookup = dbCurrent.GetView ("(LookupView)"), sondern Const VIEW_LOOKUP = "(LookupView)" usw.)
Das FrontEnd immer an den üblichen Notes-Standards ausrichten (Funktionsweise, Beschriftung und Icons für Buttons usw.)
Keine UI-Klassen in Agents, die im Backend laufen werden.
Jeder LS-Routine einen aussagekräftigen Header verpassen, der Sinn und Zweck, Parameter und Rahmenbedingungen ausdrücklich erklärt - und diesen weiter pflegen !
Zwischenstände der Entwicklung permanent sichern - das rettet manchmal zig Stunden Entwicklungsarbeit.
Schon gesagt, aber m.E. wirklich wichtig: Felder, die nicht per @functions oder durch Interaktion mit dem User gefüllt werden, nicht in Masken aufnehmen. Falls erforderlich, diese als computed when composed deklarieren.
Wo machbar, Felder als computed for display deklarieren.
Ansichten so schlank wie nur irgend möglich halten und immer daran arbeiten, die Anzahl der Ansichten zu minimieren. Auch wenn das als Widerspruch erscheinen mag: Jede Ansicht, auf die programmatisch zugegriffen werden soll, als versteckte Ansicht erstellen.
Datenbank-Synopsen bei der Weiterentwicklung bereithalten. Teamstudio Analyzer wäre natürlich besonders fein ;-)
Subform-Anzahl pro Maske minimieren (Performance).

To be continued ...

Bernhard
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: Ute am 17.06.04 - 11:40:46
nie die Servernamen in Masken, Feldern etc verwenden
immer serverunabhängig programmieren
Namenskonvention erarbeiten
Teilmasken für Änderungen in Standardschablonen verwenden
UNC Pfade verwenden

ein leidgeprüfter
Admin
Gruß
Ute
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: Stefan1971 am 18.06.04 - 15:36:19
Folgende Tatsache hat mich jetzt doch etwas überrascht:

http://www.geniisoft.com/showcase.nsf/archive/20040615-1118?OpenDocument&count=-1 (http://www.geniisoft.com/showcase.nsf/archive/20040615-1118?OpenDocument&count=-1)

Bis vorhin dachte ich, die Aufzählung bei der Definition von Variablen nimmt sich nichts gegenüber der (vermeintlich) "umständlichen" Einzelnennung.

Gruss, Stefan
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: Semeaphoros am 18.06.04 - 18:31:17
Da kann man gewiss nicht häufig genug drauf hinweisen, dass da LS sich anders verhält als andere Sprachen .....
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: koehlerbv am 18.06.04 - 21:25:40
.. aber eigentlich ist hier LS "sauberer": Ohne konkrete Ansage ist eine Variable eben Variant.
Die Variablendeklaration gehört also auch eindeutig in diesen BP-Artikel. Wobei in diesem Zusammenhang auch unbedingt stehen sollte:
- Option Declare / Explicit verwenden. IMMER !
- Keine Mehrfachdeklaration in einer Zeile (liest sich auch blöd sonst, und kostet oder spart keinen Speicherplatz)
- Variablenbezeichnungen nach der Hungarian Notation verwenden und nicht den uralten (und immer noch erlaubten) BASIC-Quatsch wie $, % oder & etc. verwenden.

Bernhard
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: TMC am 18.06.04 - 21:44:19
- Option Declare hatten wir glaub ich hier schon öfter,aber egal, so vergessen wir es wenigstens nicht  :D

Zu Variablen-Präfixen gab es letztens auch eine interessante Diskussion im Rocky Oliver Blog.

Ich bin auch dafür dass man das wirklich immer Präfixe verwendet. Dass man da nun 1:1 die ungarische Notation verwenden sollte/muss würde ich jetzt nicht verpflichtend sehen. Ich bin auch wieder von sz als String-Präfix abgekommen und nehme lieber str.
Imho sollten wir aber im erklärenden Text dieses BP-Artikels zumindest Vorschläge auflisten und z.B. auf den Artikel der " The View" verweisen (Link (http://www.eview.com/eview/viewr5.nsf/21059a128be01bd98525653600120bea/c441fbabe59d2de285256a55007c9555?OpenDocument)).

Da als Ratschlag: Organisationsweit immer dieselben Präfixe. Wenn eine Organisation/Firma z.B. schon immer mit sz gearbeitet als Präfix für String, würde ich es als Fehler sehen, in einer neuen DB alle Strings mit "str" einzuleiten.
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: koehlerbv am 18.06.04 - 22:02:30
str oder sz - das ist (unter den von Dir genannten Umständen) wirklich egal. Hauptsache, es wird in der Entwickler-Community, die da zusammen an Projekten arbeitet, EIN Standard verwendet. Die "Community" darf dabei auch auf einem einzelnen Mitglied beruhen ;-) Hauptsache, man weiss auch noch nach Jahren, was gemeint war.

Bernhard
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: Semeaphoros am 19.06.04 - 10:01:33

Ich denke, da insbesondere auch in den Sprachdefinitionen str sich durchgesetzt hat, ist die Vorgabe gegeben.
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: TMC am 03.07.04 - 14:31:32
Auch noch ein paar hilfreiche Infos zu diesem Thema:

http://www.nsftools.com/tips/PerfTips.htm
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: wflamme am 16.07.04 - 21:27:48
Zu beachten:

There *are* users.
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: TMC am 16.07.04 - 22:41:25
Ja, Wolfgang?
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: wflamme am 17.07.04 - 10:29:59
Naja, also .... Nicht wirklich. Aber man sollte zumindest ab und an so tun, als wären da welche.
Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: -Michael- am 17.07.04 - 21:20:29
Negativbeispiel - Auszug aus der "SubmitForReview" - ScriptLib der R5-Schablone "Doc Library Notes&Web R5":

Code
Dim ReviewerNumber, TotalReviewers, Position, SubmitNow, NSubmitNow, IsCurrentReviewer As Integer
Dim ReviewerList, ReviewTime As Variant
Dim NextReviewer, DbName, ViewList, NotificationType, ClientType, FieldName, ErrorText As String

Soweit ich weiß werden dadurch alle Variablen als Variant deklariert, die nicht den Zusatz "As xyz" haben.

Was geht ist:
Code
Dim strEinString as string, iMeinInteger as Integer, straMeinArrayString() as String

Wundert mich eigentlich, dass gerade in einer von Iris / IBM ausgelieferten DB sowas vorkommt.....

Titel: Re:Was ein Notes-Entwickler immer beachten/machen sollte
Beitrag von: Semeaphoros am 18.07.04 - 08:28:03
Stimmt, das ist äusserst merkwürdig, Deine Bemerkung ist durchaus richtig