aVogt
Returning Creator

Wie entwickelt Ihr Scripte

Hallo,

ich entwickle schon seit einiger Zeit Scripte direk im FS. Leider bekommt man da Fehler erst beim Testen mit (falsche Zuweisungen, ...FS übernimmt ja da einiges, aber ist manchmal nicht wirklich von Vorteil).

Nun habe ich das ganze in eclipse "ausgelagert". Ich entwickle dort das Script und kopiere es dann nach FS.

Leider meldet mir dann FS Fehler beim Speichern.

zb:Parse error at line 322, column 57.  Encountered: =

Das betrifft die Zeile:

     NotifyingList<Link> llvalue_neu = new NotifyingList<Link>();

Wenn das <Link> entfernt wurde, kann gespeichert werden.

Wahrscheinlich wird das auch bei HashMaps auftreten.

Mich würde interessieren, wir Ihr Scripte entwickelt und auf was dabei geachtet werden sollte.

19 Replies
rafael_koloch
I'm new here

Hallo Andreas,

ebenfalls mit Eclipse, jedoch werden die Generics von Beanshell wohl nicht unterstützt.

Entweder man schaltet die im Codestyle des Eclipse-Projekts aus, oder baut aus seinem Code ein Modul, das lediglich eine Bibliothek enthält und ruft dann mit einem Beanshell-Einzeiler seinen vorkompilierten Java-Code auf.

So kann man wenigstens "sauberes" Java mit allen Features coden.

Sollte auch Vorteile in der Ausführungsgeschwindigkeit haben, vor allem wenn man sehr komplexe Skripte hat.

Grüße,

Rafael

0 Kudos

Hallo,

ich würde ebenfalls empfehlen komplexere Skripte (d.h. >100 Zeilen) immer direkt in Java zu entwickeln. Dort hat man Typsicherheit, Code-Completion und man kann ggf. gleich noch Unit-Tests mit schreiben.

Nur wenn die Logik nicht allzu komplex ist und man zwingend eine Code-Modifizierbarkeit (ohne Compilierung) braucht, sollte ausschließlich auf Beanshell gesetzt werden.

0 Kudos

Hi,

um seinen Code aufzurufen und nicht wieder den Umweg über Beanshell zu gehen, sollte man dann eine Klasse die das Executable Interface implementiert erstellen und dann so im Skript aufrufen.

#!executable-class
de.mein.package.Klasse

Gerrit

arnbae
I'm new here

a) In FS direkt

b) mit viel Frust :smileylaugh:

0 Kudos

Wenn man dann noch den Client im Debug Modus startet kann man dann sein "Skript" auch noch debuggen wenn ich mich nicht irre.

0 Kudos

Gibt es eine Empfehlunghinsichtlich Performance, ab welcher Größe man lieber das Script in ein Modul auslagern sollte?

Momentan entwickle ich die Scripte in Eclipse und kopiere sie dann wieder nach FS. Da wird allerdings einiges nicht ganz akzeptiert (siehe ersten Eintrag).

0 Kudos
boesebeck
Crownpeak employee

korrekt.

0 Kudos
arnbae
I'm new here

Ich will und muss meine flapsige Antwort erläutern: Direkt in FS (bzw. ebenfalls in Eclipse oder Netbeans, je nach Vorliebe, und dann ins FS-Script zurückkopiert), auch wenn es wegen der erwähnten Nachteile bei der Entwicklung manchmal richtig weh tut.

Der wesentliche Grund: Scripte sind integraler Teil der Templates und werden demnach per Package Pool (Intra-Server) und Template-Aktualisierung (Server zu Server) verteilt bzw. aktualisiert. Module sind das nicht. Wenn ich einen Server betreibe, habe ich alle Möglichkeiten zur Entwicklung.

Wenn ich mehrere Server ohne manuelle Eingriffe (Modul-Update) up to date halten möchte, bin ich auf Scripte angewiesen - oder täusche ich mich da?

0 Kudos
boesebeck
Crownpeak employee

Hi,

die Größe spielt erstmal nur im Bereich "wartbarkeit" eine Rolle. Intrassant ist was man in dem Skript macht, hat man hier viele Objekte, Interationen bzw sowie so schon viele externe Abhängigkeiten, macht eine Executable Class (Siehe meine Antwort weiter unten) sinn.

Zu bewerten ist auch wo das Skript (Generierung Skripte ausgenommen) laufen soll. Hat man Massenoperationen? So sollte das Skript lieber auf dem Server als Auftrag oder Service laufen.

0 Kudos