Domino 9 und frühere Versionen > Entwicklung
doc.Responses kann nothing retunieren?
Marinero Atlántico:
--- Zitat von: koehlerbv am 16.02.05 - 21:33:48 ---Das wäre auch aus meiner Sicht katastrophaler Programmierstil. Und tut nicht noooot.
--- Ende Zitat ---
Wenn untergeordnete Funktionen die Werte vieler globale Variablen (inklusive Felder in Notes Dokumenten) ändern, führt dies unweigerlich zu starken Seiteneffekten.
Ein Reaktion auf sich sowieso immer verändernde requirements wird dadurch erschwert.
In jedem Fall würde ich eine solche Methode nicht aus dem Begingungskopf eines if then aufrufen.
Eher so:
--- Code: ---ret = callLongFunctionIwouldNotUseInJava (someArguments)
if (xxx = true) AND ret then
--- Ende Code ---
Im übrigen sollte sich jedes code-Element durch high cohesion, low coupling auszeichnen.
Das tut meiner Ansicht nach schwer nooooot.
Axel
Semeaphoros:
Wenn man das selber ohne Grund macht, ist das so, es gibt aber auch andere Nebeneffekte, die ihren Grund teilweise in OO finden: instanziierte Object-Members, zum Bleistift UIDocDotDocument, vielleicht ist Euch im Debugger schon aufgefallen, dass gewisse dieser Members erst ihre Objekte instanziieren, wenn sie angesprochen werden. Leider gibt es Situationen, wo das nicht korrekt funktioniert, und das führt zu Code, der stürzt, wenn die Instanz erst erstellt werden muss und nicht stürzt, wenn die Instanz schon existiert (hatte so einen SPR mal bei IBM angemeldet, ist also nicht aus der Luft gegriffen). Da stellt sich dann schon die Frage, ob sowas dann durchgeführt wird oder nicht.
Deshalb, Bernhard, auch meine Frage: "Are you sure" und wenn ja, wo ist das bestätigt? Das kann sehr wesentlich sein ......
Damit ist natürlich auch gesagt, dass ich es tunlichst vermeide, selber Verursacher solcher Seiteneffekte zu sein .......
Semeaphoros:
Axel, das ist die richtige Reaktion, wenn man selber alles im Griff hat und um den Seiteneffekt weiss, nur, das ist nicht immer gegeben ..... ich glaube, ich könnte Beispiele nennen von Leuten, die von solchen Effekten keine Ahnung haben ........
Marinero Atlántico:
Jens. Ich arbeite mit Legacy Code in einem Projekt, dass seit ca. 1997 läuft (zeitweise auf Sparflamme). Es ist kein Gemurkse, aber es ist völlig natürlich, dass ich da schon eine Menge mit Seiteneffekten zu tun habe.
Heute z.B.: computeWithForm() auf Dokumente eines Maskentyps mit vielen Feldern funktionierte nicht und dann wollte erst einmal die Umsetzungsformel gefunden werden, in der die schöne Formel:
--- Code: ---feldX + "noch was " + feldY
--- Ende Code ---
stand. feldX ist zwischenzeitlich in ein RichText-Feld geändert worden.
Sowas passiert schnell. Wobei das ein Seiteneffekt im Kontext von Datenstrukturen/Datentypen ist (anders als Funktionen).
Im übrigen haben wir schnell unterschiedliche Assoziationen im Kopf.
Ich würd aber tendentiell globale Variablen (inklusive Felder im Dokument) normalerweise immer durch eine Funktion (meist initialize) setzen und die anderen mehr als Hilfsmethoden ansehen. Es gibt aber sicher Ausnahmen.
Gruß Axel
koehlerbv:
--- Zitat von: Semeaphoros am 16.02.05 - 22:01:29 ---Deshalb, Bernhard, auch meine Frage: "Are you sure" und wenn ja, wo ist das bestätigt? Das kann sehr wesentlich sein ......
--- Ende Zitat ---
Sorry, Jens, aber mein Tag war lang und hart (und erfolgreich ;)), vielleicht verstehe ich deshalb Deine Frage nicht. Kannst Du mir da nochmal auf die Sprünge helfen ?
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln