PostGraphile-Schema erweitern & verfeinern: Smart Tags

Wer sich schon einmal grundlegend mit PostGraphile beschäftigt hat (PostgreSQL, GraphQL & PostGraphile – ein Überblick), wird sich vielleicht fragen: „Das ist ja super, um einfache CRUD-Anwendungen zu bauen; aber das reicht nicht für unsere Bedürfnisse, die wir an ein API stellen!“ – oder etwas Ähnliches.

Allerdings bekommen wir von PostGraphile nicht einfach nur allerlei Queries, CRUD Mutations und Erkennung von Relationen für unser Datenbankschema geschenkt! Es gibt dazu noch eine Reihe an Möglichkeiten, die Funktionsweise von PostGraphile zu konfigurieren und genau auf unsere Bedürfnisse zuzuschneiden, um auch eigene Geschäftslogik und spezielle Use-Cases in unseres GraphQL-API zu unterstützen.

Wir wollen hier anhand von möglichst einfachen, jedoch praxisnahen Beispielen aufzeigen, wie wir PostGraphile verwenden und nicht nur trotz, sondern mit Hilfe der starken Automatisierung, auch komplexe Use-Cases abdecken können und weiterhin von der Performance, Typsicherheit, und den guten GraphQL-Standards (die uns PostGraphile direkt mitliefert) profitieren!

Weiterlesen

Team Topologies: Product Ownership in den vier Team-Typen

Team Topologies ist in aller Munde. Aber was bedeutet Product Ownership in den vier Team-Typen, die Team Topologies kennt? Das möchte ich heute beleuchten.

Am Ende des Artikels kennt ihr die vier Team-Typen und deren Interaktionsmuster aus Team Topologies und wisst, was das für Product Ownership bedeutet bzw. diese zum Einsatz kommt.

Weiterlesen

PostGraphile: Von der Datenbank-Tabelle zu Queries & Mutations

Ihr habt es ja sicherlich schon mitbekommen: Aktuell wollen wir euch in einer Serie von Blogposts PostGraphile näher bringen. Dazu gehörte bisher eine ganze Reihe an Vorbereitung – doch jetzt wollen wir mal richtig loslegen.

Denn in diesem Artikel beleuchten wir, was PostGraphile uns schon out of the Box bietet, wenn wir unser Datenbank-Schema definiert haben. Alle Beispiele und ein docker-compose-Setup zum Spielen findet ihr in unserem GitHub-Repository zur Serie.

Weiterlesen

PostgreSQL, GraphQL & PostGraphile – ein Überblick

Wenn man heutzutage eine Software-Applikation bauen will, hat man die Auswahl aus einem bunten Strauß an Technologien. Dabei kann man schnell in Fallen laufen, da nicht alle Technologien gut miteinander arbeiten. Da wird dann plötzlich der Aufwand sehr groß, den Datenfluss durch den Tech-Stack unter Kontrolle zu halten.

Ein Setup, das gut zusammenspielt, bzw. teilweise darauf ausgelegt ist, in diesem Tech-Stack zu leben, ist Folgendes:

  • PostgreSQL für die Datenbank
  • PostGraphile zur Erstellung der API 
  • GraphQL zur Abfrage der API
  • TypeScript im Frontend (z. B. in Verbindung mit React)

Auf die drei Teile PostgreSQL, GraphQL und besonders PostGraphile wollen wir in diesem Artikel – und den folgenden Teilen der Blog-Serie – näher eingehen.

Weiterlesen

10 einfache und effektive Refactoring-Maßnahmen

Refactoring ist die Durchführung von Verbesserungen an Struktur und Lesbarkeit des Quellcodes unserer Anwendung, ohne dass dabei am Ablauf des Programms etwas verändert wird. Doch wie sieht das eigentlich in der Praxis konkret aus und welche grundlegenden Refactoring-Techniken lassen sich bei der Übernahme von Legacy-Projekten einsetzen?

Ich werde in diesem Artikel zehn einfache aber äußerst effektive Maßnahmen für Refactorings vorstellen.

Weiterlesen

Wunsch vs. Wirklichkeit, Teil 2: Unstimmigkeiten im Team

Vor welchen Herausforderungen stehen Softwareteams in den unterschiedlichen Organisationen? Wie sehen diese Herausforderungen aus, die der regelmäßigen Lieferung und hohen Qualitätsstandards der Software im Weg zu stehen scheinen?

Im vorherigen Blogpost meiner 3-teiligen Blogpost-Serie habe ich den ersten Grund Fehlendes (Fach)Wissen innerhalb des Teams erläutert.

Neben dem Fachwissen braucht es aber noch eine weitere sehr wichtige Zutat, damit Softwareteams dauerhaft gute Ergebnisse liefern können.

Vielleicht erkennt der ein oder andere eine ähnliche Herausforderung innerhalb seiner Organisation wieder und bekommt durch die Lösungsansätze neue Impulse für sein Umfeld.

Weiterlesen

Wunsch vs. Wirklichkeit, Teil 1: (Fach)Wissen innerhalb des Teams

Eigentlich sollte dieser Artikel den Titel „Drei Gründe, warum Softwareteams es nicht schaffen, regelmäßige Lieferung und hohe Qualität einzuhalten, Teil 1: Fehlendes (Fach)Wissen innerhalb des Teams“ tragen … aber ihr seht selbst.

Es könnte so einfach sein, ist es aber nicht. Kennt ihr den Song noch? Das ist mir als Erstes in den Sinn gekommen, als ich über das zu Grunde liegende Thema des Blogposts nachgedacht habe. Denn wäre es so einfach und ein Softwareteam befähigt, alle Entscheidungen selbstständig treffen zu können, würde ich diesen Blogpost hier nicht schreiben. Aber ihr ahnt es schon: Das ist natürlich Wunschvorstellung.

In der Theorie ist z. B. das Scrum Framework als Liefermodell der richtige Ansatz, möchte man meinen. Vernünftig angewendet, gibt es am Ende eines jeden Sprints immer ein fertiges Inkrement, das qualitätsseitig keine Einbußen hinnehmen muss.

Also: Regelmäßige Lieferung … Check. Hohe Qualität … Check.

Weiterlesen

git auf APFS

Was mir neulich passierte … Danke an meine Kollegin Amina, die in die gleiche Falle getappt ist und mir einen dezenten Hinweis gegeben hat.

Folgende Situation: Du hast einen neuen Mac und hast ihn mit den Voreinstellungen und dem voreingestellten Dateisystem eingerichtet, um schnell loslegen zu können. Was könnte in den nächsten Monaten schief gehen?

Weiterlesen

MacOS – Produktivität steigern mit einem Tiling Window Manager

Wer kennt es nicht: Als Software-Entwickler lerne ich ein neues Tool oder eine neue IDE kennen, die oder das mir das Leben vereinfachen kann und mir mehr Produktivität verspricht …

Der springende Punkt, um weniger Zeit an der Maus und mehr Zeit an der Tastatur und damit mit dem Programmieren zu verbringen, ist immer der selbe: lerne deine Tastaturkürzel. Wäre da nicht eine Kleinigkeit …

Weiterlesen