[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Frage aus der Praxix: Scriptbibliotheken

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Frage aus der Praxix: Scriptbibliotheken

drfoots
Beiträge gesamt: 129

7. Jul 2020, 16:36
Beitrag # 1 von 10
Bewertung:
(15616 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich hab mal eine Frage.

Wie geht ihr in Eurer Praxis damit um, wenn Ihr Scripte mit wiederkehrenden Funktionen habt?

Habt Ihr eine Scriptdatei mit vielen Funktionen drin und ladet die dann in das aktuelle Script per #include ein oder kopiert Ihr jedes mal die passende Funktion in das neue Script?

Lohnt sich der Aufbau einer Gesamtbibliothek (im Stil von z.B. jquery) auf für Indesign Scripte oder hat das eher Nachteile?

Wie geht Ihr damit um?

Viele schöne Grüße und bleibt gesund
drfoots
X

Frage aus der Praxix: Scriptbibliotheken

WernerPerplies
Beiträge gesamt: 2759

7. Jul 2020, 17:42
Beitrag # 2 von 10
Beitrag ID: #576042
Bewertung:
(15600 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,

Zitat Habt Ihr eine Scriptdatei mit vielen Funktionen drin und ladet die dann in das aktuelle Script per #include ein oder kopiert Ihr jedes mal die passende Funktion in das neue Script?


Das hängt wohl davon ab, wie komplex Deine Skripte sind.

Ich schreibe sehr umfangreiche Skripte und habe diverse Funktionen, Klassen und Meldungsdateien, da geht dann nichts mehr mit Copy und Paste.

Ich habe deshalb ein Grundgerüst, neudeutsch wohl Framework :-) und füge notwendige Dateien per include hinzu.

Vor Auslieferung erzeuge ich dann per Skript eine Gesamtdatei.

Die Anfangsversion dieses Skriptes kannst Du hier finden:
WpsIncludesInCludes


als Antwort auf: [#576037]

Frage aus der Praxix: Scriptbibliotheken

drfoots
Beiträge gesamt: 129

7. Jul 2020, 20:29
Beitrag # 3 von 10
Beitrag ID: #576045
Bewertung:
(15574 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Werner,

danke für die Rückmeldung.

Als Skriptanfänger ist alles über 20 Zeilen schon komplex und dann noch die Kommentare dazu, damit man es später auch noch nachvollziehen kann was und warum man gemacht hat.

Wollte daher einfach mal hören, wie andere das machen und was man möglichst von Anfang an besser, einfacher oder richtiger machen kann.

Besten Dank und beste Grüße
drfoots


als Antwort auf: [#576042]

Frage aus der Praxix: Scriptbibliotheken

TMA
Beiträge gesamt: 399

8. Jul 2020, 07:33
Beitrag # 4 von 10
Beitrag ID: #576046
Bewertung:
(15518 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,
da wir hier mehrere hundert Scripte im Einsatz haben, kommt man um Libraries nicht herum.

Die Libs sind so aufgeteilt das z.B. allgemeine Funktionen eine eigene 'mainLib' haben. Für Photoshop, InDesign, SQL, etc. gibt es auch jeweils eine eigene Lib. Jede enthält bis zu ca. 3.500 Zeilen Code.

Die letzte große Umstellung bei den Applescripten war die Umstellung von der Nutzung der Satimage.osax auf ASOC.
Auch für Javascript nutzen wir Bibliotheken.

Dank der Libs war die Umstellung recht einfach und ging zügig vorran. Die einzelnen Handler/Functions/Methods konnte ich vom Namen und der Übergabeparamter größtenteils so lassen. Somit brauchte ich später in den eigentlichen Scripten nur die neue ASOC-Lib einbinden und schon lief alles wie gewohnt.

Gruß
TMA


als Antwort auf: [#576045]
(Dieser Beitrag wurde von TMA am 8. Jul 2020, 07:34 geändert)

Frage aus der Praxix: Scriptbibliotheken

Gerald Singelmann
  
Beiträge gesamt: 6269

8. Jul 2020, 07:57
Beitrag # 5 von 10
Beitrag ID: #576047
Bewertung:
(15509 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Fürs eigene Haus sind Bibliotheken durchaus praktisch.

Aber ich hatte noch keinen Kunden, der damit klar kam.
Letztlich habe ich mir einen einfachen Bundler schreiben müssen, um Scripte an Kunden als eine Datei auszuliefern.


als Antwort auf: [#576037]

Frage aus der Praxix: Scriptbibliotheken

WernerPerplies
Beiträge gesamt: 2759

8. Jul 2020, 08:15
Beitrag # 6 von 10
Beitrag ID: #576048
Bewertung:
(15496 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Herr Singelmann,

Zitat Letztlich habe ich mir einen einfachen Bundler schreiben müssen, um Scripte an Kunden als eine Datei auszuliefern.


Das ist genau das, was mein WpsIncludesInCludes macht,
aber in der von mir verwendeten Version erzeugt es auch noch daraus ein Binärskript und verpackt dann dieses Skript in ein Installationskript, dass sich um die Einrichtung aller notwendigen Dateien und Verzeichnisse kümmert.


als Antwort auf: [#576047]

Frage aus der Praxix: Scriptbibliotheken

drfoots
Beiträge gesamt: 129

8. Jul 2020, 14:15
Beitrag # 7 von 10
Beitrag ID: #576055
Bewertung:
(15412 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke für die vielen Antworten.

Gibt es denn auch irgendwelche Nachteile bei der Arbeitsweise mit Bibliotheken?

z.B. Laufzeitverlängerungen, höhere Gefahr von Abstürzen oder ähnliches oder kann man das ganz problemlos machen?

Mal abgesehen von einfachen Problemen wie doppelt vergebenen Variablen.

Viele Grüße
drfoots


als Antwort auf: [#576048]

Frage aus der Praxix: Scriptbibliotheken

WernerPerplies
Beiträge gesamt: 2759

8. Jul 2020, 15:38
Beitrag # 8 von 10
Beitrag ID: #576056
Bewertung:
(15393 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Gibt es denn auch irgendwelche Nachteile bei der Arbeitsweise mit Bibliotheken?


Aus meiner Sicht gibt es keinen Nachteil, aber es hängt natürlich davon ab, wie Du Deine Bibliothek organisierst.

Sofern Du alle Deine Funktionen im globalen Bereich definierst und Sie dann auch alle in eine Datei speicherst und einbindest, ist natürlich das Chaos garantiert.

Ich habe meine Module recht klein organisiert und stelle sie dann mit Include zu einer Gesamtfunktion zusammen.

Das sieht dann beispielsweise so aus:
Code
// DESCRIPTION wpsGetVersionPath 
// Dateiname: wpsGetVersionPath.jsx
// © 2018 - 2019 by Werner Perplies, EDV-Anwendungsberatung,
// https://www.weepee.de, email: werner.perplies@weepee.de
// modified: 201905091202
// modified: 201905090809
// created: Sat Jan 20 2018 09:17:11 GMT+0100
// lastFileProps: {"date":"201905091202","scriptVersion":2.13,"size":785,"checkSum":"13a5de5d","time":"1557396129404","scriptDate":"201808020846"}
// #include "C:/Users/WernerPerplies/Source/Workspaces/Singles/InDesigns/FileHandling/wpsGetVersionPath.jsx";
// [end of header]

#include "C:/Users/WernerPerplies/Source/Workspaces/Singles/ErrorHandling/wpsErrorClass.jsx"
#include "C:/Users/WernerPerplies/Source/Workspaces/Singles/wpsGetInddVersion.jsx";

/*Folder*/function wpsGetVersionPath()
{
try
{
var /*String*/scriptPath = "", basePath = Folder.userData.fullName+"/"+"Werner Perplies, EDV-Anwendungsberatung/",
/*String*/inddVersion = wpsGetInddVersion(app.version, true);

basePath += inddVersion.substr(0, inddVersion.indexOf(".")) + "/";
return Folder(basePath);
}
catch (error)
{
wpsHandleError(error, $.stack, "wpsGetVersionPath");
}
return null;
}


An diesem Beispiel kannst Du auch sehen, das Du Includes schachteln kannst. Beachten musst Du nur, dass sich im gleichen Adressraum mehrfach geladene Module überschreiben und dann das zuletzt geladene Modul ausgeführt wird.

Bei vielen tiefgeschachtelten Includes kann sich die Ladezeit eines Skriptes erheblich erhöhen, deshalb füge ich am Schluss alle benötigten Module in einer Datei zusammen und speichere sie als ab.

Zitat Mal abgesehen von einfachen Problemen wie doppelt vergebenen Variablen.

Solange Du Deine Variablen sauber deklarierst (var!) und die Sichtbarkeit von Variablen und Objekten beachtest, sollte das kein Thema sein.


als Antwort auf: [#576055]

Frage aus der Praxix: Scriptbibliotheken

drfoots
Beiträge gesamt: 129

8. Jul 2020, 22:09
Beitrag # 9 von 10
Beitrag ID: #576063
Bewertung:
(15329 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Werner,

danke für das Beispiel.
Dann werd ich mal schauen wie ich Deine und Eure Hinweise umsetzen kann. :)

Viele schöne Grüße und bleibt gesund
drfoots


als Antwort auf: [#576056]

Frage aus der Praxix: Scriptbibliotheken

Peda
Beiträge gesamt: 97

9. Jul 2020, 06:48
Beitrag # 10 von 10
Beitrag ID: #576066
Bewertung:
(15288 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke, drfoots, für die interessante Frage.
Ich habe hier sehr neugierig mitgelesen.


als Antwort auf: [#576063]
X