Das YAGNI-Prinzip in der Entwicklung

in  Verschiedenes , ,

Das YAGNI-Prinzip in der Entwicklung
In der Softwareentwicklung gibt es einige fundamentale Prinzipien, mit denen die Dinge einfach gehalten und Komplexitäten beherrscht werden sollen. Sehr bekannt sind etwa das KISS-Prinzip (keep it simple, stupid), welches stets daran erinnert, eine möglichst einfache Lösung für ein Problem zu wählen. Das DRY-Prinzip (don’t repeat yourself) besagt indes, dass man unnötige Wiederholungen vermeiden sollte, um unnötige Wartungspunkte einzusparen. Noch früher greift YAGNI (you aren’t gonna need it): hier geht es darum aktiv zu challengen, ob ein Problem es überhaupt wert ist, zum aktuellen Zeitpunkt adressiert zu werden.

Dokumente und Belege mit paperless-ngx flexibel pflegen und handhaben

in  Verschiedenes , , ,

Dokumente und Belege mit paperless-ngx flexibel pflegen und handhaben
Das papierlose Büro war bislang ein Traum, den wir aus Gründen der revisionssicheren Archivierung noch nicht gelebt haben. Durch einen Artikel bin ich jedoch vor ein paar Wochen auf das Open Source Projekt paperless-ngx aufmerksam geworden und hatte mir vorgenommen: bei nächster Gelegenheit tauche ich dort einmal ein und schaue mir das näher an. Was ist und kann das Tool? Es handelt sich um eine Dokumentenverwaltung, die per Standard einfach via Docker Compose ausgeführt werden kann.

Abhängigkeiten automatisch aktualisieren mit Renovate

in  Builds & Tests , , ,

Abhängigkeiten automatisch aktualisieren mit Renovate
Um Dependencies aktuell zu halten, wird bei GitHub oft und gerne der Dependabot eingesetzt. Mit Renovate existiert allerdings eine äußerst flexible Alternative, die im Folgenden kurz vorgestellt wird. Zu den wichtigsten Stärken von Renovate gehören folgende Eigenschaften: Updates können anhand vielfältiger Kriterien in gemeinsame Merge Requests gruppiert werden. Bei einem Symfony-Update muss man somit nicht mehr jede Symfony-Komponente einzeln aktualisieren und mergen. Bestimmte Updates können bei Bedarf automatisch eingespielt werden. Die Häufigkeit von Merge Requests kann ebenso eingestellt werden wie diverse Standardvorgaben, wie etwa die zuzuordnenden Bearbeiter, Reviewer oder Labels.

Symfony-Projekte im Monorepo mit Nx bauen

in  Builds & Tests , , ,

Symfony-Projekte im Monorepo mit Nx bauen
Mit dem Build-System Nx lassen sich beliebige Projekte in einem Monorepo auf einheitliche Weise testen und bauen. Es bedient sich verschiedener npm-Plugins, um dies für unterschiedliche Technologien umzusetzen. Ein Projekt kann dabei entweder als Applikation oder als Bibliothek abgebildet werden. Dies kann für ein Java-basiertes Projekt etwa durch Maven oder Gradle erfolgen. Um ein einzelnes Projekt zu testen oder zu bauen, reicht ein Aufruf in der Form nx test <app> bzw.

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.

Abhängigkeiten automatisch aktualisieren mit Dependabot

in  Builds & Tests , ,

Abhängigkeiten automatisch aktualisieren mit Dependabot
Vor knapp eineinhalb Jahren haben wir gezeigt, wie man die Aktualisierung verwendeter Drittkomponenten mit GitHub Actions automatisieren kann. Zwischenzeitlich sind wir hierbei auf den Dependabot umgestiegen. Dieses Tool wird bei GitHub schon länger zum Aufspüren und Melden von Sicherheitsproblemen verwendet. Es ist damit jedoch auch möglich, Updates zu suchen und bereitzustellen. Im Gegensatz zu dem früheren Vorgehen gibt es dabei folgende Unterschiede und Vorteile: Für jede Komponente wird ein eigener Pull Request erstellt.

Hugo-Seiten im Netzwerk entwickeln und testen

in  Builds & Tests , , , ,

Hugo-Seiten im Netzwerk entwickeln und testen
Hugo ist ein Generator für statische Seiten, welcher auf der Programmiersprache Go basiert. Die Inhalte werden mit Markdown verwaltet und dynamisch in HTML umgewandelt. Dies ist für die meisten kleineren Projekte interessant, weil ausreichend und im Vergleich zu einem dynamischen Content Management System einfacher zu handhaben; zudem sind statische Seiten auch in Bezug auf Sicherheit und Performanz unschlagbar (siehe auch: Vorteile statischer Seiten). Der Build lässt sich dann z. B. mit GitHub Actions durchführen (zum Einsatz kommt hierfür z.

SensioLabs Security Checker wurde eingestellt

in  Builds & Tests , , ,

SensioLabs Security Checker wurde eingestellt
Zu den grundlegenden Aufgaben automatisierter Builds zählen unterschiedliche Prüfungen: so bietet es sich an, die Einhaltung der Coding-Styles zu überwachen, Qualitätsmetriken zu erheben und die Testabdeckung zu messen. Auch die regelmäßige Aktualisierung verwendeter Drittkomponenten kann perfekt automatisiert werden, wie wir es in diesem Beitrag für GitHub Actions gezeigt haben. Ein nützliches Werkzeug, das anhand einer composer.lock Datei etwaige Sicherheitslücken in verwendeten Vendors aufgezeigt hatte, war der SensioLabs Security Checker. Dieser hat die entsprechenden Versionen mit einer Datenbank auf security.

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.

GitHub integriert Code Security Scanner

in  Builds & Tests , , ,

GitHub integriert Code Security Scanner
Im offiziellen GitHub Changelog werden regelmäßig Beiträge über unterschiedliche Neuerungen und Innovationen auf der GitHub Plattform veröffentlicht, zum Beispiel in Bezug auf Funktionen in der Oberfläche, GitHub Actions oder anderweitige Aktivitäten. Gestern erschien dort ein Artikel darüber, dass nun die Funktionalität zum Scannen von Code auf Sicherheitsprobleme allgemein verfügbar gemacht worden ist. Weitere Informationen hierzu lassen sich diesem Beitrag entnehmen. Neben der von GitHub forcierten CodeQL Analyse stehen auch alternative Analysewerkzeuge von Drittanbietern zur Integration bereit.