Diese Seite beschreibt good practices, um Lua-Module zu entwickeln und sehr häufig eingebundene Module in den Artikeln wirksam werden zu lassen.
Diese Seite beschreibt good practices, um Lua-Module zu entwickeln und sehr häufig eingebundene Module in den Artikeln wirksam werden zu lassen.
Die Sprache Lua ist recht gewöhnungsbedürftig. Obwohl sie beim oberflächlichen ersten Hinsehen trivial anmutet, entfaltet sie im Zusammenwirken mit der Wikisyntax und im Kontext einer echten Seiteneinbindung immer neue Überraschungen.
Mit Testvorlagen usw. in der Vorlagenspielwiese kann der Lua-Quellcode nach und nach in der Seitenvorschau entwickelt werden, ohne jede einzelne Version speichern zu müssen.
Es empfiehlt sich, am Anfang nicht zu viele Veränderungen gleichzeitig vorzunehmen; nicht auf einen Schlag Dutzende von Zeilen hinzuzufügen. Dadurch wären die Syntaxfehler nicht mehr zuzuordnen.
Nach einigen Wochen tut es aber nicht mehr weh.
Zur Handhabung siehe Hilfe:Lua/Quellcode und Vorschau.
Für die Gesamtwirkung der Modul-Ergebnisse ist die Vorschau-Funktion wichtiger, insbesondere mit der im nächsten Abschnitt dargestellten Testseite.
Zu jedem produktiven Modul ist zwingend eine Testseite in Wikisyntax erforderlich. Sie erlaubt einen routinemäßigen Schnelltest, ob das Modul noch prinzipiell in ordnungsgemäßem Zustand ist.
Es sind nach Funktionen gegliedert die typischen Vorlageneinbindungen und dafür das erwartete Ergebnis und das momentane Resultat aus dem Lua-Modul gegenüberzustellen, so dass sie unmittelbar und übersichtlich verglichen werden können.
Gleichzeitig kann die Testseite als Bestandteil der Dokumentation alle diese Beispielfälle zur Veranschaulichung nutzen.
Beispiele: URLutil und TemplatePar.
Weder Testseiten noch ein unit test garantieren Fehlerfreiheit. Sie können nur so zuverlässig sein wie die Auswahl an Kombinationen. Alle gängigen Programmpfade sollten abgedeckt sein, und auch die erwarteten Fehlersituationen in der späteren Nutzung (Pflichtparameter nicht angegeben, ungeeignete Werte, Leerzeichen um den Wert oder als alleiniger Wert, falsche Parameternamen).
Dieser „Modultest“ ist dazu geeignet, schnell und automatisiert viele Ergebnisse zu überprüfen.
#invoke aufgerufen werden:
#invoke zu prüfen. Weil aber beliebiger Wikitext gegen das erwartete Ergebnis getestet werden kann, eignet sich dieses Verfahren sogar für Vorlagen, an denen noch nicht einmal ein Modul beteiligt sein muss.Auf dem β-dewiki gibt es eine Simulation der deutschsprachigen Wikipedia.
Für Module, die noch im Alpha-Stadium bereits in einer begrenzten Anzahl von Seiten testweise produktiv erprobt werden, kann man noch nicht freigegebenen Code ausschalten, indem eine für das Modul globale Variable gesetzt wird:
local debugging = ( mw.site.server == "//de.wikipedia.beta.wmflabs.org" )
Die noch nicht ausgereifte, verfeinerte Funktionalität kann damit vorläufig durch erprobte, einfachere und robustere Zeichenketten ausgetauscht werden, falls es erforderlich ist, ein bereits produktiv eingesetztes Modul bereitzuhalten.
Solange ein Modul nur in ein paar Hundert Seiten eingebunden ist, insbesondere nicht in Artikeln wirksam wird, kann man noch etwas lockerer die echte Version direkt bearbeiten.
Über die Nutzung in mehreren Vorlagen und durch andere Module können bei projektweiten Bibliotheksmodulen Zehntausende und Hunderttausende von Seiten von der Änderung betroffen sein.
In diesem Fall ist in einer Test-Umgebung eine Entwicklungsversion erforderlich, an der experimentiert werden kann.
Die Produktivversionen sollten so selten wie möglich geändert werden. Entweder muss eine sichtbare negative Auswirkung in den einbindenden Seiten beseitigt werden, oder es ist nach Abschluss einer Testphase auf lange Zeit keine Änderung mehr zu erwarten und neue Funktionalität bereitzustellen. Kleinere Änderungen, etwa eine etwas effizientere Gestaltung eines Statements oder womöglich nur in einem Kommentar, sollten in der Test- und Entwicklungsversion gesammelt werden und dies wird dann bei einem wichtigen Anlass mit übernommen.
Die normale Versionsgeschichte einer Seite ist bei zweigleisiger Entwicklung nicht aussagekräftig. Um beim Kopieren zwischen ausgetesteter Version und Produktivversion nicht durcheinanderzukommen, empfiehlt es sich, im Kommentar des Seitenkopfes das Datum zu vermerken.
Zuerst in einem Rutsch alle möglicherweise aktualisierten Vorlagen in die produktiven Seiten kopieren; sofort danach für den in das Bearbeitungsfeld kopierten aktualisierten Quelltext des Lua-Moduls mit der Testseite einen letzten Bedside-Test vornehmen, bevor gespeichert wird. Es kann einem immer mal passieren, dass man sich beim C&P vertut, die falsche Variante kopiert hat oder durch einen verirrten Mausklick ein Laufzeitfehler bewirkt wird. Außerdem die diffpage checken, ob die Änderungen plausibel erscheinen.
Es gilt:
Hallo, Welt! Dies ist Lua!Modul:Benutzerin:xxxxxxxxxxxxModul:Benutzer:xyxyxyxyxyxyAußerdem sind testwiki:, test2wiki: (mit dem eigenen SUL-Account) und auch de.wikipedia.beta (separater Account nötig) nutzbar. In der echten dewiki sollten dann erst halbwegs ausgereifte Produktiv-Versionen auftauchen.
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.