Mit JSL effiziente und robuste Anwendungen entwickeln (EU 2018 415)Niveau: Fortgeschritten
Joseph Morgan, JMP-Hauptentwickler für Forschungsstatistiken, SAS
In dieser Sitzung geht es um JSL-Konstrukte, die sich bei der Entwicklung effizienter, robuster und produktionsreifer Anwendungen als unschätzbar wertvoll erweisen können. Dazu gehören Funktionen zur Ausdrucksbehandlung, XPath-Unterstützung, Namespaces und mehr. Die Ideen werden mit Beispielen veranschaulicht, die der Dozent in den letzten 10 Jahren bei der Arbeit mit einem breiten Querschnitt von JSL-Benutzern gesammelt hat.
JSL-AnwendungsentwicklungVideoBetreff: Verwenden von JSL zur Entwicklung effizienter, robuster Anwendungen (EU 2018 415)@Ryan_Gilmore , das Video ist wieder verschwunden.
Ist es möglich, es ein anderes Mal wiederherzustellen?
Danke:)
Betreff: Verwenden von JSL zur Entwicklung effizienter, robuster Anwendungen (EU 2018 415)Es gibt ein Kapitel im Skriptindex:
https://www.jmp.com/support/help/en/18.0/?os=win&source=application#page/jmp/advanced-expressions-macros-and-lists.shtml
Hier ist ein Webinar-Video, in dem ein Anwendungsfall ausführlich erklärt wird:
Ausführen einer Plattform, ohne die Anzahl oder Namen der Spalten zu kennen
Betreff: Verwenden von JSL zur Entwicklung effizienter, robuster Anwendungen (EU 2018 415)Das Thema:
Der einzelne JMP-Programmierer definiert, ob eine Funktion ihr Argument auswertet oder nicht.
Es gibt KEINE Dokumentation!
zB: Bewertet Head sein Argument? – wer weiß?
Um uns das Arbeiten zu erleichtern:
Ein JSL-Editor könnte uns enorm helfen – indem er angibt, welche Funktion ihr Argument auswertet und welche nicht – und welche nur etwas Name Expr()-artiges macht.
Hoffen wir, dass der Wunsch genügend Anerkennung bekommt:
Erweiterte Syntaxhervorhebung im JSL-Editor
... und die Aufmerksamkeit der JMP-Entwickler, es zu implementieren.
Betreff: Verwenden von JSL zur Entwicklung effizienter, robuster Anwendungen (EU 2018 415)Hm, ich stimme teilweise zu:
Ich würde gerne mehr Videos über Expression Handling sehen:)
Auf der anderen Seite:
Dieses Video IST DER Schlüssel – Ihre Chance, das Konzept zu verstehen. Es lohnt sich auf jeden Fall, es 2-3 Mal anzusehen.
Es ist eine gute Praxis, vorherzusagen, was passiert – und es dann mit dem tatsächlichen Ergebnis zu vergleichen. Ich vermute, jeder JSL-Programmierer verwendet diesen Ansatz, um das endgültige, funktionierende Ergebnis zu finden. Setzen Sie hier einen Eval-Ausdruck ein, versuchen Sie es dort mit einem Name-Ausdruck ...
Ein anderer Ansatz: Verwenden Sie einen anderen Namen, der es einfacher macht, sich an die Funktionalität zu erinnern.
- Der Name Expr() könnte umbenannt werden . Hey JSL Symbol(Name), gib mir deinen Expression().
- Expr() könnte eine Sicherheitszone sein, nicht Touch()
*)
Für Ihr Beispiel,
z = Expr(Expr(Expr(1+2)));
IS weist zu ...
ein Ausdruck für eine Variable z:
und der zugewiesene Ausdruck ist Expr(Expr(1+2)) .
Ein dritter Ansatz: Wenn Sie sich fragen, warum es so kompliziert ist, überlegen Sie, ob es einen einfacheren Weg gibt, zum gleichen Ergebnis zu gelangen (mit weniger Expr, Eval Expr, Name Expr usw.).
Nachdem Sie einen solchen alternativen Ansatz erraten haben, probieren Sie ihn aus und prüfen Sie, ob er wirklich funktioniert …
Wenn es nicht funktioniert, vergleichen Sie es mit dem ursprünglichen Ansatz und ziehen Sie Ihre Schlussfolgerungen.
*) Folgendes hat mich ein wenig verwirrt:
Expr() fungiert als Sicherheitszone, nicht Touch(). OK.
Aber innerhalb eines Eval Expr() verhält sich derselbe Expr() wie folgt:
HIER bin ich, bitte bewertet! - und den Rest unberührt lassen()
Eher das Gegenteil : )
x= Expr( 1 + 2);
y = Eval Expr (Sin(4) + Expr(1 + 2));
Betreff: Verwenden von JSL zur Entwicklung effizienter, robuster Anwendungen (EU 2018 415)Die Exp()-Funktion und ihre Familie sind zu schwer zu verstehen, selbst wenn man sich stundenlang das Skript und das Protokoll ansieht. Es ist überhaupt nicht intuitiv. Ich würde mir gerne weitere Videos anschauen, in denen die praktische Anwendbarkeit dieser Funktionen erklärt wird.
Z.B
x = Expr(Expr(Expr(1+2)));
gibt ein Ergebnis, wenn ich davon ausgehe, dass es sich lediglich um die Zuweisung einer Variablen „x“ zu einem Ausdruck handelt. Meiner Intuition nach ergibt diese Zeile kein Ergebnis.
Betreff: Verwenden von JSL zur Entwicklung effizienter, robuster Anwendungen (EU 2018 415)#1 Ausdrucksbehandlung
#2 clevere Display Tree Indizierung
Stellen Sie sich vor, wie leistungsstark Jmp/JSL durch Nr. 1 x Nr. 2 wird:
Ausdrucksindizierung: Lese- und Schreibzugriff
… oder sogar Expression XPathing?
Betreff: Verwenden von JSL zur Entwicklung effizienter, robuster Anwendungen (EU 2018 415)@ Kollegen:
Die Präsentation und die JSL-Datei finden Sie unten auf dieser Seite.
Video ist nicht mehr verfügbar?
danke für die Wiederherstellung 
Betreff: Verwenden von JSL zur Entwicklung effizienter, robuster Anwendungen (EU 2018 415)Die Download-Links funktionieren nicht
Betreff: Verwenden von JSL zur Entwicklung effizienter, robuster Anwendungen (EU 2018 415)Tolle Präsentation. Ich glaube, „syntaktischer Zucker“ ist mein neuer Lieblingsausdruck!