Einzigartige, lesefreundliche Identifier mit PostgreSQL

In einem meiner Projekte stelle ich zur Zeit von PHP auf JavaScript und von REST auf GraphQL um, in der Hoffnung, schlankere Services zu erhalten. Bei meinen Recherchen zu dem Thema stieß ich auf PostGraphile, das als zugrundeliegende Datenbank PostgreSQL möchte. Bisher war ein klassisches MySQL im Einsatz.

Eine Funktionalität, die ich ersetzen muss, sind einzigartige, lesefreundliche Bezeichner oder auch Slugs. Bislang gab es eine Funktionalität in meinem alten PHP-Code, die mir aus einem Titel den Slug generierte und dafür sorgte, dass dieser einzigartig in meinem Datenbestand ist. 

Mit PostgGaphile hatte ich diesen Code allerdings nicht mehr. Meine Recherchen diesbezüglich führten mich zu dem Ergebnis, dass die erwartete Funktionalität gar nicht mal in meinem Service umgesetzt gehört, sondern besser auf Datenbankebene aufgehoben ist. PostgreSQL kann das, denn ich kann hier bequem Funktionen und Trigger definieren. So wäre auch gewährleistet, dass immer ein Slug erzeugt wird, selbst wenn die Daten nicht über diesen speziellen Service kommen.

Weiterlesen

Unit-Testing in PostgreSQL

Es gibt verschiedene Stellen im Tech-Stack, an denen man seine Businesslogik liegen haben will.

In einem Symfony-Stack hat man beispielsweise eine „dumme“ Datenbank hinter einem ORM, die einfach nur die Daten speichert. Dann hat man ein beliebiges Templating-System im Frontend, dass für die Anzeige verantwortlich ist. Und dazwischen liegt Symfony im Backend und beinhaltet die Businesslogik. In diesem Fall ergibt es Sin, den Symfony-PHP-Code mit Unit-Tests abzudecken, so dass man sicher sein kann, dass da alles läuft.

Mit einem PostgreSQL-GraphQL-TypeScript-Stack braucht man aber dieses Backend nicht mehr. Oder genauer gesagt: Das Backend wandert in die Datenbank.

Weiterlesen

Containerizing Django and React with Docker

Nowadays, software developers work on multiple projects at the same time. The projects usually present distinct requirements. Nevertheless, they must be reproduced identically in multiple machines, and sometimes they have to live in the same hardware – the developer’s computer. The so-called container technology stands out among the different approaches used to reproduce software projects reliably.

A container is a standard unit of software used to build a virtualized operational system (OS). The container’s OS has control over some components of the host system and can isolate the processes related to the container’s services. This isolation enhances the reproducibility of the containerized application. The container technology has been developed since the 2000s, but in 2013, when Docker was introduced to the community, its popularity has exploded.

Weiterlesen

Open Mayday … mit AWS, React und einem hohen Wetteinsatz

Der nächste Open Mayday bei Mayflower steht an! Open Mayday?! Ja! Wir öffnen unsere Slack-Time an sogenannten Open Maydays immer wieder für Externe, um neue Impulse zu bekommen und an einem coolen Tag mit viel Luft zum Reden voneinander zu lernen und in Kontakt mit der Community zu gehen.

Nach dem großen Erfolg dieses Formats an unserem Berliner Standort (und remote im vergangenen Jahr) wird der kommende Open Mayday am 22. Juli in unserem Würzbürger Office stattfinden. Und was sollen wir sagen …

Wir haben so Bock!

Infos und Anmeldung zum Open Mayday

Weiterlesen

Team Topologies: Teamgrößen – Dunbars Number

In dem ersten Artikel der Serie habe ich erklärt, welche Teamtypen und Interaktionsmuster es in Team Topologies gibt. In diesem Artikel möchte ich auf die vorgeschlagenen Findings zu Teamgrößen eingehen.

Weiterlesen

Fünf Fettnäpfchen auf Kosten der Web-Usability

Webseiten (und digitale Produkte) am Puls der Zeit designen. Modern sein. Im Jahr 2022 bedeutet das häufig, Designtrends zu folgen und sich den Aesthetic-Usability-Effekt zunutze zu machen.

Trotz aller kreativer Freiheit im Design gibt es Fettnäpfchen, die sich vermeiden lassen, um die Usability einer Webseite zu erhöhen. Fünf davon möchte ich Dir vorstellen und Möglichkeiten aufzeigen, wie Du sie geschmeidig umgehen kannst.

Weiterlesen

PostGraphile-Schema erweitern & verfeinern: Plug-ins

Wir haben an unserem Schema in den vorherigen beiden Posts zu Smart Tags und Computed Columns schon einiges anpassen können. Dabei haben wir noch immer keinen Stein auf den Fuss bekommen. PostGraphile spielt einfach mit und macht einfach was wir wollen und schenkt uns immer noch ein super GraphQL-Schema, einfach generiert von unserer Postgres-Datenbank. Ist doch schonmal richtig gut!

Heute werden wir aber mal richtig kreativ und bohren unser GraphQL-API noch einmal richtig auf. PostGraphile bietet ein ausgiebiges Plug-in-System an – und das schauen wir uns jetzt mal genauer an!

Wie schon bei den vorhergegangenen Postst gilt: Der Code für das Beispielprojekt ist auf GitHub zu finden. (Mit ein paar einzelnen Commits, um die unternommenen Schritte von hier ein bisschen nachvollziehen zu können.)

Weiterlesen

Team Topologies: Platform-as-a-Product (Teil 1)

Team Topologies schlägt vor, Infrastruktur-Teams zu Plattform-Teams zu wandeln. Daraus ergibt sich ein Wandel hin zu Platform-as-a-Product.

Dabei sind sich Matthew Skelton und Manuel Pais darüber im Klaren, dass dies mit Herausforderungen verbunden ist. Grund genug, dass wir uns ein wenig genauer damit beschäftigen!

Weiterlesen

PostGraphile-Schema erweitern & verfeinern: Computed Columns

Im letzten Post haben wir schon einmal ein bisschen losgelegt, unser GraphQL-Schema mit Smart Tags anzupassen. Einfach nur ein paar Features ein- und auszuschalten oder Spalten zu entfernen reicht natürlich nicht … Wir wollen ja in der echten Welt um einiges komplexere, vielleicht auch dynamische Werte in unserem API abbilden. Ohne also noch weiter auf den Busch zu klopfen schlage ich vor, wir schauen uns einfach direkt an, wie wir mit Computed Columns arbeiten können.

Wie auch schon im letzten Post gibt es allen Code in unserem Beispielprojekt auf GitHub zum Ausprobieren und Mitverfolgen.

Weiterlesen