Webseitenentwicklung basiert heute auf vielen Techniken, die miteinander agieren. Da wir ein kleines Team sind, fokussieren wir uns auf vielfach erprobte Technologien. Sie stellen die Grundlagen dar und werden je nach Projektbedarf ergänzt. Dabei muss bei der Auswahl weiterer Techniken die Wartbarkeit und Pflege, sowohl technisch als auch durch Workflows und durch Fachwissen, gegeben sein.
Jetzt wird‘s technisch. Wetten, gleich steigen etliche Leser*innen aus? Aber als IT-Geek geht das runter wie Öl. Da will man gleich selbst loslegen:
Aufgaben verwalten wir in Tickets mit Atlassian JIRA, ganz nach dem Motto: keine Arbeit ohne Ticket. Unser Wissen dokumentieren und pflegen wir mit Confluence.
Serverseitig programmieren wir ausschließlich mit PHP und im Frontend mit JavaScript. Für die Automatisierung und einfache Aufgaben setzen wir Shell-Skripte ein. Als PHP-Frameworks setzen wir TYPO3 für CMS und Symfony für Webapplikationen ein. Beide sind in Projekten kombinierbar. Als Template-Engines verwenden wir Twig und Fluid. Als Package-Manager nutzen wir PHP Composer. Unsere eigene PHP Pakete liegen in der Package Registry unseres Gitlab.
Im Bereich der Frontend-Entwicklung setzen wir auf eine Kombination aus HTML, SCSS als Preprocessor für CSS. Als HTML / CSS-Framework verwenden wir Bootstrap und erweitern dieses. Zur reibungslosen Übergabe von Arbeiten der Frontendler an Backendler nutzen wir Storybook.
Als JS-Frameworks nutzen wir React und Angular ein, versuchen aber nach Möglichkeit auf Javascript-Frameworks zugunsten von Vanilla Script zu verzichten. Als Paket-Manager nutzen wir Yarn.
Zum Frontend-Building für JS und CSS Pakete dient uns Webpack-Encore. Wir verzichten auf veraltete Iconfonts und greifen auf SVG-Maps zurück.
Als Webserver verwenden wir NGINX, als PHP-Interpreter PHP-FPM. Als relationale Datenbank nutzen wir MySQL. Als Datenbanksystem für Volltextsuchen nutzen wir Apache Solr.
Unser Quellcode verwalten wir im Gitlab und Open-Source Projekte werden auf Github unter next.motion veröffentlicht.
Produktivumgebungen von Projekten werden in Kubernetes Clustern in der Google Cloud Plattform (GCP) gehostet, es sei denn die Anforderungen der Kund*innen lassen dies nicht zu (z.B. kundeneigene Infrastruktur).
Entwicklungsumgebungen werden in Form von Docker-Containern bereitgestellt. Jede Entwicklungsumgebung ist mit einem PHPMyAdmin, einem Mailhog (lokaler Webmailer) und traefik als Loadbalancer/Routing-Proxy ausgestattet, wenn die Funktionalität und Projektziele es erfordern. Die bevorzugten Code-Editoren unserer Entwickler sind Jetbrains PHPStorm und Microsoft Visual Code Studio.
Docker-Images basieren vorzugsweise auf offiziellen Hersteller-, Alpine- oder Ubuntu-Images.
Zum automatisierten Testen von Projekten nutzen wir Codeception für PHP-Unit-Tests, Cypress End2End-Tests (Browsersimulation) und für Jest Javascript Unit-Tests (ja, es könnten immer mehr Tests sein.).
Blackfire.io nutzen wir für Performance-Analysen und Microsofts BrowserStack zur Funktionsprüfung auf allen Endgeräten und der Browser-Kompatibilität.
Dich interessieren diese Technologien? Werde Teil unseres Teams.
Pierre Geyer. Apple Fan Boy und leidenschaftlicher Softwareentwickler. Als Inhaber kommt er zwar nicht mehr so oft zum Programmieren, aber er liebt es dennoch sich alle neuen Webtechnologien anzusehen. Sein tiefes Verständnis von IT und Digitalisierung nutzt er, um Kunden zu beraten und individuelle Lösungen zu erarbeiten.