Softwareentwicklung
Mit agil entwickelten Zusatzfunktionen, integrierten B2B-Portalen & Shopware-Plugins der Konkurrenz eine Nasenlänge voraus sein. Wir haben die Lizenz(en) zum Programmieren.
Wer sauber und strukturiert arbeitet,
kann sich auch in die Karten schauen lassen.
Gern geben wir Ihnen einen Einblick in unseren Programmier- und Deploy-Prozess, damit Sie selbst bewerten können, wie professionell, durchdacht und technisch sauber jede unserer Softwareentwicklungen umgesetzt werden. Die strikte Versionierung (GitHub) von Anpassungen und Änderungen sorgt für einen transparenten und stets nachvollziehbaren Ablauf jeder Programmier-Arbeit. Nicht nur für die Entwicklung von funktionalen Shopware-Plugins bedarf es einer solchen Struktur. Selbst alle kleinen und großen Softwarelösungen, die wir intern nutzen durchliefen den gleichen Prozess. Verschaffen Sie sich und gegebenfalls auch Ihren Entwicklern einen Überblick über unseren Workflow.
Grafik ansehenStrukturen
So wie auch Serverstrukturen eine Hierarchie inne haben, so ist auch die Update-Verteilung strukturiert:
1.
Entwicklungsumgebung
des Entwicklers:
Hier werden Änderungen entworfen und umgesetzt.
2.
Test-/
Integrationsserver:
Hier wird das grundsätzliche Zusammenspiel der neu entwickelten Komponenten mit anonymisierten Daten aus dem Produktiv-System untersucht.
3.
Staging-
server:
Hier werden alle Komponenten mit Produktivdaten getestet und regelmäßig vor der Veröffentlichung auf Herz und Nieren geprüft.
4.
Liveserver:
Hier läuft das fertig entwickelte Produkt.
Updates
Automatische Aktualisierungen finden nach einer erfolgreichen statischen Quelltextanalyse sowie erfolgreichen Einheitstests statt. Eine Änderung muss einmal alle Ebenen in der Hierarchie durchlaufen und von einer zweiten Person bestätigt werden bis diese in das Finale Produkt einfließt.
Bibliotheken
Für dynamische grafische Oberflächen setzen wir auf jQuery 3 und VueJs 2. Serverseitig setzen wir auf symfony 4 oder Laravel 5.7. Datenverwaltung mit MySQL und ElasticSearch sind für jedes Projekt ein Muss.
Infrastruktur
In unserer Infrastruktur programmieren wir nah an den Servern auf denen unsere Software am Ende laufen wird: Es laufen LAMP/LNMP-Stacks entweder auf einer macOS oder Ubuntu Maschine. Alternativ sind notwendige Infrastruktur und Tools auch in einem Docker-Container oder einer VagrantBox verfügbar. Als Management-Stack haben wir uns für Atlassian und damit auch Jira und Bitbucket entschieden. Unsere Continious Integration wird über die Bitbucket Pipeline realisiert. Hierbei werden eine statische Codeanalyse und oder Unit-Tests regelmäßig ausgeführt. Abhängig vom Projekt werden auch Server mit neuer Software aktualisiert oder Plugins gezippt und zum Download hochgeladen.
Sprachen
Wir versuchen immer die neusten Features aus ES 2017, PHP 7.3 und CSS 3 zu nutzen. Auch wenn nicht jedes Projekt dies ermöglicht, versuchen wir im Bereich JavaScript mit Bablify auf das notwendigste Minimum zu transpilen. Da LESS und SCSS so viel mächtiger als pures CSS sind, sind diese in jedem unserer Entwicklungs-Projekte präsent.
Tools / IDEs
Für IDEs setzen wir auf JetBrains Produkte wie PHPStorm oder DataGrip, da durch deren Funktionalität unsere Produktivität sehr gut unterstützt wird. Als Git Client wird je nach Gusto entweder die CLI, SourceTree, Gitkraken oder PHPStorm selbst genutzt. In der Grafik setzen wir auf die Adobe Produkte wie InDesign, Experience Design, Illustrator und Photoshop. Besonders die Vorschau mit technischen Daten aus Experience Design ist sehr hilfreich in der technischen Umsetzung. Für externe Ressourcen laden wir diese über Composer oder npm und bundlen diese mit WebPack, um die Strukturen der externen Ressourcen in die unserer Projekte anzupassen.
Contributions
Neben unseren Individual-Programmierungen für Kunden und Interna haben wir uns auch an den Bibliotheken und Projekten beteiligt, die uns im Alltag über den Weg laufen. Dazu gehört natürlich Shopware und dessen Plugins und Nebenprojekte wie die Dokumentation oder die composer-Projekt-Vorlage. Einige Entwickler waren auf dem Shopware #meetnext und haben an der nächsten Generation Shopware mitentwickelt. An dem Php Unit Converter haben wir mitentwickelt. Zusätzlich haben wir Teile unserer Arbeit mit anderen Shopware Community Mitgliedern entwickelt und öffentlich auf GitHub und im Shopware Community Store als Friends of Shopware veröffentlicht.