Vom Teilen und Herrschen: Wie groß sollten Module sein?

in  Verschiedenes , , ,

Vom Teilen und Herrschen: Wie groß sollten Module sein?

Soeben bin ich über einen Artikel auf Heise gestolpert, der aus meiner Sicht ein paar spannende Impulse setzt: Richtig klein: Hat Modularisierung versagt?.

Der Autor beginnt mit klassischen technischen Aspekten wie dem Management von Komplexität und typischen, damit einhergehenden Problemen. Statt aber in der Folge auf die üblichen Ansätze zur Qualitätssicherung einzugehen, versucht der Artikel dann jedoch eine Brücke zu schlagen zu häufig auftretenden organisatorischen Herausforderungen, die mit der Wartung von Software durch wechselnde Teammitglieder und Verantwortlichkeiten einhergehen.

Endlich in der GitHub Issues Beta

in  Verschiedenes , , ,

Endlich in der GitHub Issues Beta

Seit knapp eineinhalb Jahren nutzen wir MeisterTask für unser persönliches Task Management im Rahmen von Kundenprojekten sowie eigenen Vorhaben - und sind immer noch begeistert von diesem Tool 😍

Alle Tickets, welche spezifisch zu einer bestimmten Softwarekomponente gehören, liegen allerdings in GitHub beim jeweiligen Repository - insbesondere da viele der Dinge, an denen wir arbeiten, Open Source Projekte sind. Es gibt in GitHub auch die Möglichkeit für sogenannte Project boards, mit denen sich Tickets Kanban-artig organisieren lassen. Allerdings war das bislang eher rudimentär umgesetzt.

Problem mit zirkulären Abhängigkeiten durch Dekoratoren in Symfony 5.3.7

in  Verschiedenes , , , ,

Problem mit zirkulären Abhängigkeiten durch Dekoratoren in Symfony 5.3.7

Symfony erlaubt das Dekorieren von Services: hierbei wird im Gegensatz zum Überschreiben bestehender Services eine Ummantelung derselben vorgenommen. Immer dann, wenn der ursprüngliche Service injiziert werden soll, wird statt dessen der ihn dekorierende Ersatz verwendet. Dies ist immer dann praktisch, wenn man zusätzliche Funktionalität hinzufügen möchte, jedoch keinen Zugriff auf den originalen Service hat - zum Beispiel aus Gründen der Entkopplung oder schlicht und ergreifend weil das zu erweiternde Bundle von Dritten entwickelt wird. In Zikula wird beispielsweise Twig mit einem Dekorator erweitert, um mit Hilfe zusätzlicher Events vor und/oder nach dem Rendern eines Templates reagieren zu können.

Symfony CurrentUser-Attribut kollidiert mit Doctrine Param Converter

in  Verschiedenes , , ,

Symfony CurrentUser-Attribut kollidiert mit Doctrine Param Converter

Symfony und Doctrine bieten bereits Unterstützung für unterschiedliche native Attribute, welche seit in PHP 8 verwendet werden können. So lassen sich diese unter anderem für ORM-Definitionen (#[ORM\*]), Validierungsregeln (#[Assert\*]), Routen (#[Route]) oder zur Injektion von Service Tags (#[TaggedIterator]) einsetzen.

Das Attribut #[CurrentUser] erlaubt es, das Objekt mit dem aktuell angemeldeten Nutzer direkt als Controller-Argument zu übergeben; ein Beispiel hierfür lässt sich diesem Blog-Artikel entnehmen. Intern wird hierbei ein Argument Value Resolver benutzt.

GitHub erlaubt Vorlagen für strukturierte Ticket-Formulare

in  Verschiedenes , ,

GitHub erlaubt Vorlagen für strukturierte Ticket-Formulare

Schon seit einiger Zeit ist es in GitHub möglich, Vorlagen für unterschiedliche Arten von Tickets zu hinterlegen. Hierbei handelt es sich um Markdown-Dateien, mit denen sich Inhalt der Beschreibung sowie weitere Angaben, wie Labels und etwaige Bearbeiter vorbelegen lassen.

Für öffentliche Repositories ist nun auch ein Beta-Programm für YAML-basierte Formulardefinitionen gestartet. Diese Funktion bietet einen deutlich höheren Freiheitsgrad, indem sich mehrere Formularfelder beschreiben lassen. Wie im obigen Screenshot ersichtlich, können hiermit zum Beispiel Dropdowns/Auswahllisten verwendet und gewünschte Angaben als verpflichtend gekennzeichnet werden.

Shopware 6: Installation mit HTTP-Authentifizierung absichern

in  Verschiedenes , , ,

Shopware 6: Installation mit HTTP-Authentifizierung absichern

Um zu verhindern, dass eine Entwicklungs- oder Testumgebung eines Systems von unbefugten Personen, Suchmaschinen oder anderen Bots aufgerufen wird, bietet sich ein Kennwortschutz an. Eine einfache Möglichkeit hierfür stellt die sogenannte Basic Authentication dar. Diese Variante der HTTP-Authentifizierung ist sowohl mit Apache als auch mit Nginx schnell eingerichtet und reicht für viele Anwendungszwecke aus.

Bei der Verwendung mit Shopware 6 stellt man allerdings fest, dass das Backend nicht mehr korrekt funktioniert. Nach einiger Recherche sind wir auf eine Lösung gestoßen: der Ansatz besteht hierbei darin, die Authentifizierung für die API-Routen zu deaktivieren. Die Art der Umsetzung hängt hierbei naturgemäß vom benutzten Webserver ab.

Fehler in NextCloud - PDF-Dateien werden nicht dargestellt

in  Verschiedenes , ,

Fehler in NextCloud - PDF-Dateien werden nicht dargestellt

Kürzlich erreichte uns eine Anfrage bezüglich des NextCloud-Systems eines Kunden: in einem Ordner ließen sich keine PDF-Dateien mehr öffnen. Statt der gewohnten integrierten PDF-Darstellung erschien lediglich eine Fehlermeldung:

PDF.js v2.5.207 (build: 0974d6052) Message: Missing PDF “https://cloud.domain.de/.../files/User/Ordner/Ein%2520Unterordner/und/so/weiter.pdf".

Eine Recherche in dem NextCloud-Repository auf GitHub führte zu einem entsprechenden Patch.

Hintergrund ist, dass in dem Pfad ein Leerzeichen enthalten war (im Beispiel: Ein Unterordner), was offenbar in der neuesten Version nicht korrekt behandelt wird. Nach Einspielen der gepatchten Datei und dem Leeren des Browser-Caches funktioniert es wieder.

Zahlreiche Neuerungen und Funktionen bei GitHub

in  Verschiedenes , ,

Zahlreiche Neuerungen und Funktionen bei GitHub

Im Rahmen der GitHub Konferenz “Universe” wurden neue Funktionen und Verbesserungen vorgestellt. Für jeden dürfte hier etwas dabei sein.

Nachfolgend die für mich wichtigsten Neuerungen in der Kurzübersicht:

  • Das Mergen von Pull Requests kann automatisiert werden, basierend auf vordefinierten Erforderlichkeiten, wie etwa notwendige Reviews und Prüfungswerkzeuge.
  • Mit den Discussions lässt sich nun auch jedwede, von Aufgaben/Tickets unabhängige Kommunikation, wie Support und sonstige Abstimmungen, auf der GitHub Plattform durchführen.
  • GitHub unterstützt jetzt offiziell einen Dark Mode.
  • Auch Unternehmen können ab sofort GitHub Sponsors nutzen, um Open Source Projekte zu unterstützen.
  • Workflows können mit einer Visualisierung übersichtlicher dargestellt werden (siehe auch diesen Beitrag).

Eine Gesamtliste mit allen anstehenden Veränderungen kann direkt auf GitHub angeschaut werden.