Wikifunctions:Status-Updates/2024-02-14

From Wikifunctions
This page is a translated version of the page Wikifunctions:Status updates/2024-02-14 and the translation is 100% complete.
Wikifunctions Status-Updates Translate

<translate> Abstract Wikipedia via mailing list</translate> <translate> Abstract Wikipedia on IRC</translate> <translate> Wikifunctions on Telegram</translate> <translate> Wikifunctions on Mastodon</translate> <translate> Wikifunctions on Twitter</translate> <translate> Wikifunctions on Facebook</translate> <translate> Wikifunctions on YouTube</translate> <translate> Wikifunctions website</translate> Translate

Letzte Änderungen an der Software: Reparatur-Woche

Wie im Update der letzten Woche erwähnt, hatten wir unsere reguläre "Reparatur-Woche", in der wir an technischen Schwierigkeiten, Design-Unklarheiten und anderen Problemen arbeiten, die sich häufen können, wenn unser Hauptaugenmerk täglich auf der Bereitstellung größerer Änderungen für Benutzer liegt.

Einer der wichtigsten Änderungsbereiche war die Bereinigung des Vue-Front-End-Codes, der in den letzten Monaten viele Änderungen erfahren hat. Wir haben unseren Front-End-Vuex-"Speicher"-Code verbessert, um nun ungenutzte Methoden zu entfernen und die verbleibenden Methoden so zu ändern, dass sie in Randfällen sicherer sind (T329107); wir haben die 'Mix-Ins' im Vuex-Speicher neu organisiert und aufgeteilt, um Konsistenz und bessere Testbarkeit zu gewährleisten (T328430).

Bei den Back-End-Diensten haben wir einige Verbesserungen an der Codequalität vorgenommen. Eine davon war die Verlagerung des Protokollierungssystems von einer globalen in unsere "Invarianten"-Klasse, damit es abhängigkeitsinjiziert sein kann und so besser getestet werden kann (T337785). Unsere interne ZWrapper-Klasse gibt jetzt korrekterweise einen Fehler aus, anstatt stillschweigend fortzufahren, wenn sie nach einem nicht vorhandenen Schlüssel (T309809) gefragt wird. Wir haben das JavaScript-Codeabdeckungs-Werkzeug migriert, um die erstellte Artefakt-Pipeline zu verwenden, anstatt direkt auf dem Code des Repos zu laufen (T355815). Wir haben unserem CI auch Pyflakes hinzugefügt, um die Qualität unseres Python-Auswertercodes zu verbessern. Dabei haben wir einige Fehler gefunden und Tests hinzugefügt (T306365).

Wir haben die Beta-Cluster-Testversion der Back-End-Dienste auf die Verwendung des 'Split'-Auswertermodells umgestellt, das wir letztes Jahr im Produktionssystem eingeführt haben (T349008), und konnten so das alte 'Omnibus'-Image außer Betrieb nehmen, das sowohl Python- als auch JavaScript-Code verarbeiten würde (T349557). Nachdem wir einige Prüfungen durchgeführt hatten, um sicherzustellen, dass wir mit den Ergebnissen zufrieden waren, fügten wir einen Test hinzu, um das aktuelle Modell der Fehlerbehandlung im WASM-umschlossenen JavaScript-Auswerter zu demonstrieren und durchzusetzen (T347898).

Wir haben eine weitere Beschreibung des PHP-Codes hinzugefügt, der die Funktionsweise von Objekten widerspiegelt (T302599) und einen Fehler bei der Interpretation eingehender Ergebnisse unter bestimmten Umständen findet und behebt. Wir haben auch einen vergessenen Überrest eines inzwischen entfernten Teils unserer Testinfrastruktur gefunden und behoben, der beim Aktualisieren der Wikimedia-Produktionssysteme auf PHP 8.2 zu Fehlern führen würde.

Neben den eigentlichen "Reparatur"-Aufgaben haben wir auch zwei Verbesserungen vorgenommen, die diese Woche eingeführt werden:

Im Anschluss an die letzte Woche vorgenommene Änderung an der Art und Weise, wie Zeichenkettenwerte als Ausgaben angezeigt werden, indem wir sie in doppelte Anführungszeichen setzen, machen wir nun dasselbe für die abgekürzte Form, die häufig auf Testseiten zu finden ist. Dabei werden zwar nicht alle Leerzeichen angezeigt, es handelt sich jedoch um eine weitere geringfügige Verbesserung in diesem Sinne (T343608).

Winston Sung, ein Mitglied der Wikimedia-Community, das sich sehr für die Unterstützung der chinesischen Sprache engagiert, leistete seinen ersten Beitrag und korrigierte die Verwendung von Leerzeichen in den Titelüberschriften jeder Objektseite auf Chinesisch und in einigen anderen Sprachen (T356731). Danke und willkommen!

Funktion der Woche: verdopple Zeichenkette

Verdopple Zeichenkette ist eine Funktion, die eine einzelne Zeichenkette als Eingabe verwendet und eine einzelne Zeichenkette als Ausgabe zurückgibt: Die Ausgabe wiederholt die Eingabe zweimal.

Die Reduplikation von Wörtern oder Wortteilen mit unterschiedlichen Auswirkungen ist ein Merkmal vieler verschiedener Sprachen auf der ganzen Welt. In einigen Sprachen kann es eine Betonung ausdrücken, in anderen einen Plural, aber es kann auch viele andere semantische Auswirkungen haben. Der Wikipedia-Artikel bietet einen Überblick über die Verwendung der Reduplikation mit zahlreichen Beispielen. Hier sind nur zwei Beispiele, die von dieser Seite übernommen wurden:

  • Im Finnischen bedeutet “ruoka” "Essen", “ruokaruoka” hingegen "richtiges Essen" als Gegenteil von Snacks.
  • In Swahili bedeutet “piga” “schlagen”; “pigapiga” bedeutet hingegen “wiederholt schlagen”

In Wikifunctions gibt es für verdopple Zeichenkette fünf Tests: WikiWiki, 1.11.1, ¨¨, das Leerzeichen und die leere Zeichenkette (ein Test, der dank der Reparaturen in dieser Woche heute korrekt angezeigt wird). Das sind großartige Tests, bei denen verschiedene Arten von Zeichen und Eingaben ausprobiert werden. Besonders gut hat mir die leere Zeichenkette als Randfall gefallen. Was mir fehlt, sind nicht-englische Buchstaben wie Hangul-Zeichen, Schriften, die von links nach rechts geschrieben werden oder Emojis. Aber das ist bereits ein toller Satz.

Es gibt vier Implementierungen, von denen drei nicht überraschend sind: JavaScript, Python und eine Komposition mit verbinde Zeichenketten, die alle das Argument zweimal aufrufen. Die vierte Implementierung, eine andere Komposition, verwendet die Funktion Zeichenkette N mal wiederholen, eine großartige Funktion, die hier verwendet werden kann. Als eines seiner Argumente ist eine Zahl erforderlich, derzeit wird jedoch eine Zeichenkette verwendet (für die angegebene Komposition auf die Zeichenkette “2” festgelegt). Sobald wir tatsächlich einen Zahlentyp haben, müsste dies bereinigt werden.

Alles in allem handelt es sich um eine nette Funktionalität, die normalerweise nicht über eine Standardbibliothek verfügbar ist und mit Tests und verschiedenen Implementierungen veranschaulicht werden kann.