Boehrsi.de - Blog

Git - Conventional Commits Spezifikation für Commit Messages

Erstellt am event Uhr von account_circle Boehrsi in label Development
Git - Conventional Commits Spezifikation für Commit Messages Bild

Git ist ein tolles Tool um Code und andere Inhalte zu verwalten, egal ob alleine oder gemeinsam. Ich habe mittlerweile alles was nicht nur ein kleiner Test ist in Git Repositories. Im Rahmen der Nutzung von Git gibt es diverse unterschiedliche Ansätze und Meinungen, wie man Dinge angehen soll und was die jeweilige Best Practice ist.
Im Bereich der Commit Messages habe ich in der letzten Zeit immer mehr Wildwuchs in meinen Projekten bemerkt, obwohl ich eigentlich versucht habe die Dinge überall ähnlich zu benennen. Wichtig ist dies z.B. wenn man später nach Dingen sucht oder z.B. automatisiert Release Notes aus den Commit Messages generieren will.
Durch Zufall bin ich auf die Conventional Commits Spezifikation in einem Flutter Plugin Repository gestoßen und fand den Ansatz sehr passend. Das Ganze basiert auf Ideen des Semantic Versioning open_in_new und der Angular Entwickler Community open_in_new. Die Conventional Commits Spezifikation erweitert die Ideen und Ansätze um feste Richtlinien. Mich persönlich interessiert vor allem der Prefix für Commit Messages, denn eben dieser ist ohne viel Aufwand gesetzt, hilft aber bei den oben genannten Punkten sehr.

Related Links

Kommentar-Service - Funktionsupdate geplant

Erstellt am event Uhr von account_circle Boehrsi in label Development
Kommentar-Service - Funktionsupdate geplant Bild

Vor einiger Zeit gab es eine Feature-Anfrage zu meinem Kommentarsystem, welche ich nun endlich umsetze. Es geht darum Kommentare zu einer News abonnieren zu können. An sich eine simple Funktion, welche aber in ein vorhandenes System integriert werden soll, welches stabil und sicher bleiben sollte, deswegen muss man ein paar mehr Schrauben anziehen.
Da ich aktuell etwas Zeit habe, konnte ich vorgestern die finale Planung und gestern die Implementierung durchführen. In den nächsten Tagen folgt nun weiteres Testing und Debugging. Ich hoffe bis zum Ende der Woche, aber spätestens bis zum Ende der nächsten Woche alle Tests und eventuelle weitere Optimierungen abgeschlossen zu haben, sodass die neue Version online gehen kann.
Die Aktualisierung selbst wird nur wenige Minuten dauern und dürfte die meisten Nutzer nicht betreffen. Alle Informationen zum Service-Update, die kompletten Release Notes und der geplante Update-Termin wird es sobald bekannt in einer separaten News geben.

Meine Statusseite - Hosting und Deployment via GitHub

Erstellt am event Uhr von account_circle Boehrsi in label Development
Meine Statusseite - Hosting und Deployment via GitHub Bild

Heute folgt der letzte Teil meiner kleinen Newssammlung rund um meine Boehrsi.de Statusseite. Denn sobald die eigentliche Seite erstellt ist, geht es ans Hosting und Deployment. Ich habe bekanntlich einen eigenen Server zur Hand, aber Hosting auf diesem macht für eine Statusseite offensichtlich wenig Sinn. Denn wenn der Server, für welchen die Seite den Status anzeigen soll, offline ist, dann wird die Seite natürlich auch offline sein. Ich entschied mich basierend auf meinen Erfahrungen mit GitHub, für eben selbige Plattform fürs Hosting und Deployment. Dort war ich wie bereits erwähnt durchaus glücklich wie umfangreich die Auswahl an vorhandenen Deployment-Workflows ist und auch das Hosting selbst ist sehr unkompliziert.

Related Links

Flutter / Dart Null Safety Migration

Erstellt am event Uhr von account_circle Boehrsi in label Development
Flutter / Dart Null Safety Migration Bild

Vor wenigen Tagen erschien im Rahmen des Flutter 2.0 bzw. Dart 2.12 Releases der stabile Null Safety Support für Dart. Entsprechend begab ich mich gestern Abend das erste Mal auf den Migrationspfad und aktualisierte meine kleine Anwendung zur Auswertung von Statistiken. Selbige nutze ich produktiv zum erfassen der Nutzerzahlen hier im Blog und auch um die monatlichen Top 10 Listen zu erstellen.
Die Migration ist sehr gut dokumentiert open_in_new und was extrem großartig ist, ist der dart migration Befehl, welcher versucht ein Projekt ohne Null Safety für euch anzupassen. Dabei erhält man einen geführten Prozess, bei welchem ihr die Liste der geplanten Änderungen auf einer interaktiven lokalen Website zu sehen bekommt und dort noch weitere Anpassungen vornehmen könnt. Meiner Meinung nach ist dieses Tool im Kontext der Migration eine glatte Eins mit Sternchen.
Nachdem ausführen der Migration für das kleine Projekt mit ca. 1000 Zeilen reinem Code, blieb tatsächlich nur eine Stelle an der ich manuell Hand anlegen musste. Die App lief anschließend ohne Probleme und weiterer Aufwand war nicht nötig. Hier kommt nun aber eine Empfehlung, die mehr Arbeit bedeutet, selbige meiner Meinung nach aber wert ist.

Related Links

Meine Statusseite - Designt mit Bulma

Erstellt am event Uhr von account_circle Boehrsi in label Development
Meine Statusseite - Designt mit Bulma Bild

Weiter geht es heute mit meiner kleinen Newssammlung zum Thema Boehrsi.de Statusseite. Heute geht es noch einmal um den reinen Code und wie ich die eigentliche UI erstellt habe. Während die folgenden Beiträge sich eher auf das Setup und Deployment beziehen. Bei Fragen stehe ich wie gewohnt gerne Rede und Antwort in den Kommentaren.
Das Thema Design ist für mich ein spezielles, da ich nicht sonderlich kreativ bin, aber trotz dessen versuche gut aussehende User Interfaces zu erstellen. Ich setze dabei meist auf Minimalismus und den Fokus auf den Content. Generell baue ich fast alles von Grund auf selbst, doch bei diesem Projekt habe ich einen anderen Weg eingeschlagen. Aus verschiedenen Gründen wollte ich weitere Erfahrungen zum Thema Bulma sammeln und entschied mich aus diesem Grund wieder für das CSS Framework.

Related Links

Dart Streams manipulieren mit stream_transform

Erstellt am event Uhr von account_circle Boehrsi in label Development
Dart Streams manipulieren mit stream_transform Bild

Wer im Dart / Flutter Kontext mit Streams arbeitet hat hin und wieder etwas umfangreichere Anforderungen, als das was Dart von Haus aus mitbringt. Denn obwohl der Stream Support in Dart durchaus gut ist, fehlt z.B. die Möglichkeit Streams zusammenzuführen oder Events zu sammeln / zu verwerfen (Debounce).
Dieses Problem lässt sich natürlich einfach lösen, denn es gibt verschiedene Packages die Darts Stream Support erweitern. Sehr gerne wird hier zu RxDart gegriffen, einer bekannten und umfangreichen Library. Ich selber habe z.B. mit dem Java Ableger RxJava gearbeitet und sehr gute Erfahrungen gemacht. Entsprechend ist RxDart natürlich auch ein gangbarer Weg. Aber man muss ja nicht immer gleich mit Kanonen auf Spatzen schießen, denn selbiges wird vor allem gerne auf Stack Overflow gerne mal empfohlen.
Dabei gibt es für einfache Aufgaben das Paket stream_transform, welches direkt von den Dart Entwicklern kommt und eine Reihe kleiner und gezielt anwendbarer Utility Methoden mitbringt. Mit stream_transform könnt ihr Streams buffern oder debouncen, sie kombinieren oder anders manipulieren. Am Ende sind es nur ca. 20 Methoden, welche aber diverse Fälle abdecken, ohne einen gigantischen Footprint in eurem Code zu hinterlassen. Ich bin ein Freund davon sich nur ins Haus zu holen was man auch braucht. Entsprechend war ich froh für meinen Einsatzzweck - Debounce von Events für eine Suchfunktion – mit stream_transform das Problem schnell und einfach lösen zu können.
Wie erwähnt habe ich allerdings auch gar nichts gegen RxDart und wenn man umfangreichere Aktionen im Bereich Streams durchführt ist man mit RxDart vermutlich auch besser bedient, hier geht es ausschließlich darum das richtige Tool für die richtige Aufgabe zu nutzen.

Related Links
Bildquelle: pub.dev open_in_new

pub.green - Kompatibilitätsprüfung für Flutter Plugins

Erstellt am event Uhr von account_circle Boehrsi in label Development
pub.green - Kompatibilitätsprüfung für Flutter Plugins Bild

Zusammen mit der vorgestern erschienenen Flutter 2.0 Version gibt es auch neues externes Tooling von 3rd-Party Anbietern. Die Continuous Integration und Continuous Delivery (CI/CD) Plattform Codemagic open_in_new hat ein kleines feines neues online Tool veröffentlicht, welches unter pub.green open_in_new erreichbar ist.
Selbiges hat als Ziel die Kompatibilität und Funktionalität von bekannten und viel genutzten Flutter Plugins mit diversen Flutter Versionen zu verifizieren. Sinn und Zweck ist es euch schnell und einfach zu zeigen ob ihr ein Plugin nutzen könnt oder ob es Probleme gibt.
Falls ihr gerne auch mal auf dem Flutter Beta oder Dev Branch unterwegs seid, um neue Features direkt aus erster Hand zu bekommen, dann sind solche Informationen einiges Wert. Denn man spart sich Zeit und Arbeit, wenn man von vornherein weiß ob die gewählten Plugins laufen. Werft also ruhig mal einen Blick auf die neue Plattform.

Related Links

Flutter 2.0, Dart 2.12 und mehr Neuigkeiten

Erstellt am event Uhr von account_circle Boehrsi in label Development
Flutter 2.0, Dart 2.12 und mehr Neuigkeiten Bild

Ich nutze Flutter bereits seit langem und entsprechend schaute ich mir natürlich auch das gestrige Flutter Engage Event an. Die Neuigkeiten sind umfangreich und sehr positiv. Ich werde hier entsprechend nur die größeren Neuerungen anreißen und alle weiteren Informationen findet ihr wie gewohnt in den Related Links.
Flutter 2.0 wurde im Rahmen des Events nicht nur angekündigt, sondern auch direkt auf dem Stable Channel veröffentlicht. Dieses Update ist gemäß der Versionierung ein Major Update und bietet entsprechend auch große Änderungen. Flutter unterstützt nur Android, iOS, Web und Desktop in der stabilen Version. Der Desktop Support ist dabei zwar noch im Beta Status, kann aber direkt vom Stable Channel aus genutzt werden.
Auch Dart hat ein Upgrade erhalten und ist nun in Version 2.12 verfügbar. Dieses bringt euch unter anderem Dart FFI (Foreign Function Interface) Support, welcher einen einfachen und direkten Weg zu in C geschriebenen Plattformfunktionen ebnet. Ebenfalls neu ist der nun enthaltene Sound Safe Null Support, welcher ohne Probleme parallel mit unsicherem Code genutzt werden kann, wodurch die Migration wesentlich einfacher werden dürfte.

Related Links

Meine Statusseite - Entwickelt mit Hugo

Erstellt am event Uhr von account_circle Boehrsi in label Development
Meine Statusseite - Entwickelt mit Hugo Bild

Ich habe in den letzten Monaten häufiger mit Bulma im Kontext der Webentwicklung gearbeitet und das Open-Source-CSS-Framework zusammen mit Hugo, dem Static Site Generator meiner Wahl, genutzt. Resultat ist unter anderem meine Status Website open_in_new. Dieses kleine Projekt hat aber noch ein paar mehr Eigenheiten, denn abseits der eigentlichen Entwicklung nutzte ich bei diesem Projekt das erste Mal umfangreicher GitHub Actions fürs Deployment und GitHub Pages open_in_new fürs Hosting.

Related Links

GitHub Dependabot - Automatisierte Updateüberprüfung für Abhängigkeiten

Erstellt am event Uhr von account_circle Boehrsi in label Development
GitHub Dependabot - Automatisierte Updateüberprüfung für Abhängigkeiten Bild

Libraries machen das Leben von Entwicklern einfacher, denn man muss nicht alles selber schreiben und kann sich auf die eigentlichen Features einer Anwendung konzentrieren. Allerdings gibt man auch Kontrolle und Übersicht ab und entsprechend kann man sich Probleme einhandeln.
Um externe Abhängigkeiten automatisch auf dem neusten Stand zu halten gibt es Dependabot. Früher war Dependabot eine eigenständige Firma, mittlerweile ist man bei GitHub untergekommen, was die dortige Integration natürlich noch einfacher macht. Außerdem ist der Dienst nun komplett kostenlos.
Vor allem auf Sicherheitsupdates weißt Dependabot hin, denn häufig integriert man Abhängigkeiten, aktualisiert selbige aber nicht solange alles läuft. Dabei gehen Sicherheitsprobleme in den Abhängigkeiten natürlich unter. Im Fall eines erkannten Updates wir einfach ein Pull Request erstellt und alles folgt dem gewohnten Flow.
Unterstützt werden unter anderem Ruby, JavaScript, Python, Java (Gradle / Maven), .NET und Docker. Leider ist Dart und somit auch Flutter aktuell noch nicht mit von der Partie und soweit ich es erkennen kann ist derzeit auch nicht geplant das sich dies ändert. Das ist zwar sehr schade, aber durch die pub.dev open_in_new Plattform und das Tooling drum herum, kann man den Prozess der Überprüfung auf Updates hier zumindest teilautomatisiert umsetzen.

Related Links
navigate_before Vorherige format_list_numbered  Seite 20 Nächste navigate_next