Deployment mit git, GitHub und Webhooks

weiterlesen

Das freie Versionsverwaltungssystem Git eignet sich nicht nur für umfangreiches Codemanagment. Zudem bietet es die Möglichkeit, automatisch auf verschiedensten Umgebungen Code auszuliefern – dank der in GitHub integrierten Webhooks. Eine Anleitung für EntwicklerInnen.

Was genau passieren soll

Wir haben folgendes Setup:

  • eine lokale Entwicklungsumgebung
  • ein remote Testsystem
  • der Code läuft über GitHub

Über Hooks und Funktionen in WordPress

weiterlesen

In der Entwicklung mit WordPress kann man sehr schnell Ergebnisse vorweisen. Das liegt daran, dass neben einer relativ guten Dokumentation auf niedrige Hürden gesetzt wird: Es gibt weder eine Templatesprache, noch eine eigene Scriptsprache. WordPress setzt auf einfaches PHP und bietet für die Entwicklung sehr viele gute Werkzeuge an.

Eines der Werkzeuge sind sogenannte Hooks. Ein Hook ist eine Einsprungmarke, an welche der eigene Code gehangen wird. So erlangt man eine volle Kontrolle, wann welches Script ausgeführt werden soll. Der Vorteil liegt klar auf der Hand: Code wird nicht unabsichtlich oder unbeabsichtigt ausgeführt. Das erhöht die Performance und Sicherheit.

WordPress ist ein CMS. Und so viel Content passt rein.

weiterlesen

Viele Nutzer aber auch Dienstleister meinen nach wie vor, WordPress sei nur ein Blogsystem und damit nicht für größere Projekte geeignet. Das kann Thomas Herzog, Senior Entwickler bei der Inpsyde GmbH, so nicht gelten lassen. Hier sein Beitrag zur Debatte „WordPress als CMS“.

Content-Management-Systeme sind in den seltensten Fällen Fire-And-Forget-Systeme. Man muss immer nachjustieren, damit alles sicher ist und möglichst reibungslos funktioniert. Unabhängig vom gewählten System gilt es, Updates zu fahren, Plugins müssen installiert und getestet werden. Es ist wichtig, die EntwicklerInnen solcher Plugins zu beobachten: Werden die genutzten Plugins aktiv weiterentwickelt? Werden Support-Anfragen beantwortet? Und und und …

Adventskalender Tag 14 – Trello – Über Projektmanagment und seine Tools

weiterlesen

Projektmanagment ist ein sehr komplexes Thema, mit den man sich sehr lange beschäftigen kann. Es gibt unzählige Ansätze seine internen Prozesse abzubilden und mindestens doppelt so viele Tools, die dabei unterstützen sollen. Das Problem ist, dass es kein Tool gibt, was alle Prozesse zu einhundert Prozent abbildet. Mal fehlt das CRM, mal fehlt das Timetracking, mal fehlt der Issue-Tracker – irgendwas ist immer.

Wir bei der Inpsyde GmbH haben uns entschieden aus verschiedenen Tools die interessantesten Ansätze heraus zu suchen und bestimmte Software für bestimmte Prozesse zu nutzen. Unter anderem nutzen wir Github als Codebase und Issuetracker, Billomat für Rechnungen und Angebote, Google Drive für projektspezifische Dokumente und Trello für das allgemeine Managment. Das mag erstmal viel klingen, aber dadurch, dass jedes Programm seine bestimmte Aufgabe hat, sind klare Nutzungsstrukturen gegeben und bilden unsere Prozesse sehr gut ab.

Trello 1

Adventskalender Tag 10 – Rekursion in Hooks verhindern

weiterlesen

Der heutige Adventskalenderbeitrag richtet sich speziell an die Entwickler unter uns, die mit Rekursionen zu kämpfen haben. Angenommen, wir befinden uns innerhalb eines save_post-Hook-Kontext und möchten aus welchen Gründen auch immer wp_update_post() nutzen, sieht die Funktion in etwa so aus:

Code is poetry?

weiterlesen

Leute, die WordPress selbst hosten, besuchten in den meisten Fällen die Seite wordpress.org. Wer es nicht getan hat, sollte dort dringend vorbei schauen. Es finden sich dort nicht nur tolle Plugins und Themes, sondern auch sehr gut besuchte Support-Foren. Aber das soll nicht Teil dieses Beitrages sein, sondern eine eher unscheinbare Zeile auf der Website: „CODE IS POETRY“. Das steht im Footer auf wordpress.org. So toll dieses kurze Statement auch klingen mag, es ist falsch.

Der Begriff bezeichnet im übertragenen Sinn ferner eine bestimmte Qualität. So spricht man etwa von der „Poesie eines Moments“ oder einem „poetischen Film“ und meint damit in der Regel, dass von dem Bezeichneten eine sich der Sprache entziehende, oder über sie hinausgehende Wirkung ausgeht, etwas Stilles, ähnlich wie von einem Gedicht, das eine sich der Alltagssprache entziehende Wirkung entfaltet. – Wikipedia

Der für uns wichtigste Teil aus der Definition ist: sich der Alltagssprache entziehende Wirkung. Konkret heisst das, dass das gesprochene oder geschriebene Wort etwas vorgibt zu sein, was es nicht ist. Dabei können aktuelle grammatikalische Regeln ignoriert und sogar ergänzt werden. Das heisst, dass jeder, der ein bestimmtes Stück Poesie liest, etwas anderes versteht und versucht seine Sicht der Dinge rein zu interpretieren.

Interpretation, grammatikalische Ungenauigkeiten und versteckte Bedeutungen sind aber genau das Gegenteil, was guten Code ausmacht. Code muss klar strukturiert sein, einer klaren Logik folgen und in sich konsistent sein. Wäre Code Poesie, würde eine Entwicklerin ihn nicht verstehen. Schnelles Verstehen ist aber eines der wichtigsten Dinge in diesem Beruf.

WordPress suggeriert durch den prominenten Spruch „Code is poetry“ also gewisse künstlerische Freiheiten. Wird diese Wortgruppe als „Oberste Direktive“ festgesetzt, können untergeordnete Regelungen nur von Dieser geerbt werden. WordPress selbst verstößt aber schon innerhalb der ersten paar Seiten der Dokumentation gegen seine eigene Direktive und schreibt (mehr oder weniger) genaue Regelungen für das Schreiben von Code (PHP, CSS, JS und HTML) vor.

Wie oben geschrieben, besteht guter Code aus klaren Strukturen, einfacher Logik und konsistenten Regelungen. Jedes Team definiert diese Regelungen automatisch für sich selbst – entweder in einem dynamischen Findungprozess oder durch strukturierte Diskussionen. Am Ende steht ein Codex, wie WordPress sich selbst einen gegeben hat.

„Code is poetry“ bedeutet aber auch, das Code eine Art Kunst ist. Die Frage lautet, ob es überhaupt noch künstlerische Freiheiten gibt, wenn gewisse Schreibweisen vorgegeben werden. Die Antwort darauf ist einfach: Ja.

Nehmen wir zum Beispiel die Architektur. Es gibt feste Konstanten in der Architektur – die Statik und physikalische Grundgesetze. Soll für einen Bau Holz benutzt werden, greifen andere Statikstandards, als für Stahlbeton. Der Bau selbst kann aber dennoch nach den eigenen Vorstellungen gestaltet werden.

Im Code verhält es sich genau so. Es gibt für bestimmte Probleme nicht die eine Lösung, sondern hundert verschiedene. Wenn Code eine Art Kunst ist, dann die, dass verschiedene Wege für die gleiche Lösung genutzt werden können und man sich die einfachste und schnellste Variante erarbeiten muss. Code ist also eine Blaupause, welche die Konstruktion von verschiedenen Bauwerken beschreibt.

Dabei darf es aber nicht zu Poesie, also zu Verschlüsselungen kommen. Code muss genau das Aussagen, was er tun soll. Um das mal ganz kurz zu veranschaulichen: Ein Array mit dem Namen $info sagt nicht viel. Ein Array mit dem Namen $pluginHeaderInfos verrät dafür schon viel mehr.

Der Satz auf wordpress.org sollte nicht „Code is poetry“ lauten, sondern „Code is a blueprint“.