Roasting-Option 1: Eval (), Parse () und Rekursion, ein Abenteuer in der Metaprogrammierung - JMP-Benutzer-CommunityVon Jed Cambell (Systemingenieur, JMP US)
Hallo Maria,
Hier ist ein potenzieller Code zum Roasten: Eval (), Parse () und Rekursion, ein Abenteuer in der Metaprogrammierung - JMP-Benutzergemeinschaft
Auch wenn ich nicht bei dem Meeting dabei sein kann, können Sie es gerne verwenden (zumindest würde ich mir gerne die Aufzeichnung ansehen). Die Kommentare sollten die doppelte Verwendung von Variablennamen erklären, und ich denke, es wäre besser, Expr() anstelle von Eval(Parse()) zu verwenden.
Am besten,
Jed
Betreff: Roasting-Option 1: Eval (), Parse () und Rekursion, ein Abenteuer in der Metaprogrammierung - JMP-Benutzer-CommunityDas kann als Grundlage für ein Roasting-Skript dienen. Jeds Skript ist ein „Prozess“ darüber, wie das Skript aufgebaut wurde, aber wenn wir nur den letzten Teil nehmen, würde das (meiner Meinung nach) funktionieren.
Also dieser Teil:
//determine number of parts
New Window ("How many parts?",
<< Modal,
neb = Number Edit Box (10),
Button Box ("OK", numParts = neb << Get;)
);
show(numParts);
listParts = {};
//Build first portion of script for modal window
//Escape character sequence for " is \!"
a = "
New Window(\!"Get Pass/Fail List\!",
<<MODAL></MODAL>
<P>In diesem Skript könnten dies einige der möglichen „Roasting“-Punkte sein:</P>
<UL>
<LI>Keine Namen standardmäßig hier(1) am Anfang</LI>
<LI>Kein Header für das Skript</LI>
<LI>Fehlende Variablenreferenzen</LI>
<LI>Ich denke, der Benutzer sollte bereits im ersten modalen Fenster „beenden“ können</LI>
<LI>Ermöglicht 0, ... und negative Werte für die Teilenummer (diese erstellen später einfach ein leeres Fenster und führen nicht zum Absturz der Anwendung)</LI>
<LI>Variablennamen sind nicht beschreibend</LI>
<LI>Die Verwendung von Evil(Parse()), was viele verschiedene (potenzielle) Probleme mit sich bringt</LI>
<LI>Verwenden des Textbearbeitungsfelds, wenn Sie nur zwei Auswahlmöglichkeiten haben sollen (Bestanden oder Nicht bestanden)<UL><LI> Kombinationsfeld/Optionsfeld/Kontrollkästchen wären im Allgemeinen besser</LI></UL></LI>
<LI>Ist „Pass“ ein guter Standardwert? Im Allgemeinen würde ich „Fail“ als Standardwert festlegen (oder noch besser „leer“, „nicht ausgewählt“, um sicherzustellen, dass der Benutzer eine Auswahl getroffen hat).</LI>
<LI>Und wenn wir dies als JMP18-Skript betrachten (ich weiß, dass es nicht für JMP18 erstellt wurde), würde ich das modale Fenster aktualisieren, um << Type zu verwenden</LI>
<LI>Ist es notwendig, Listen zum Sammeln von Referenzen und Werten zu verwenden?<UL><LI> Das ist es nicht, aber es ist eine einfache Methode</LI></UL></LI>
</UL>
<P> </P>
<P>Und wir wissen nicht genau, wofür dieses Skript gedacht ist. Muss es zwei modale Fenster haben? Ist es notwendig, die Anzahl der Teile zu bestimmen, bevor das zweite Modal erstellt wird, oder wäre es möglich, sie im selben Fenster zu haben ODER den Benutzer per Knopfdruck weitere hinzufügen zu lassen? Aber das könnten auch als Brennpunkte betrachtet werden? Hatten Sie eine angemessene Spezifikation, bevor Sie mit der Arbeit daran begannen? Welches/welche Problem(e) werden gelöst?</P>
<P> </P>
<P>Ich kann mir auch ein sehr einfaches Skript ausdenken, das ich oft sehe (und ich habe etwas Ähnliches geschrieben, als ich angefangen habe). Daten abrufen (SQL-Abfrage, Tabelle öffnen, Excel, ...), einige Formelspalten hinzufügen, Übersichtstabelle erstellen und dann ein Fenster mit einigen Berichten erstellen. Und schließlich als interaktives .html speichern.</P>
<P> </P>