Symfony Entwicklung
Warum Symfony?Symfony ist das beliebteste PHP Framework im europäischen Raum: Wie kaum ein anderes Projekt hat Symfony die Professionalisierung der Software-Entwicklung mit PHP vorangetrieben. Dank einer sauberen, modernen Softwarearchitektur und und der Integration von bewehrten Design-Patterns aus anderen Frameworks kann das Symfony-Projekte eine sehr hohe Softwarequalität gewährleisten.
Symfony als Entwicklung hat ein großes Ökosystem geschaffen mit einer Vielzahl hochwertiger, frei verfügbarer Bibliotheken und Bundles. Sie möchten Apache Solr einbinden? Da gibt es ein Bundle für. Sie möchten Facebook-Logins verwenden? HWIOAuthBundle. Bildmanipulation? Imagine. Die Anzahl hochwertiger Bundles nimmt durch die äußerst aktive Community konstant zu.
Das Symfony Framework selbst bestehet ebenfalls aus einzeln verwendbaren Komponenten. Viele davon werden auf Grund Ihrer hohen Qualität und Robustheit auch von anderen Frameworks und Bibliotheken eingesetzt: So nutzen Drupal, Laravel und selbst Wordpress mehrere Komponenten aus der Symfony-Community.
Best Practices
Bewährte Methoden für erfolgreiche Symfony-ProjekteNeben den offiziellen Symfony Best Practice für Entwickler haben sich folgende Prinzipien bewährt:
Twig Funktionen
für elegante Frontend-ProgrammierungSymfony nutzt Twig als Template-Engine. Frontend-Entwickler sollten sich zunächst unbedingt mit der Sprache vertraut machen: Viele häufige Probleme können mit Twig sehr elegant gelöst werden, man muss die Wege nur kennen. Nenneswert sind etwa Loops, Batches und Template-Inheritance.
Asset-Pipelines
für performante Webseiten und schnelle EntwicklungBild-, JavaScript und CSS Dateien sollten nicht mehr mit PHP-Boardmitteln erstellt werden. Die PHP-basierten Asset-Pipelines (z.B. Assetic) konnten mit der Entwicklungsgeschwindigkeit im Frontend-Bereich nicht mithalten. Stattdessen sollten die Asset-Pipelines aus der statischen Webentwicklung genutzt werden: Gulp, Browserify, Webpack.
Bundles beurteilen
hohe Qualität und schnelle UmsetzungDie vielen verfügbaren Bundles in Symfony sind Fluch und Segen: Durch die Verwendung von hochwertigen Bundles lassen sich in kürzester Zeit viele Funktionen implementieren. Oft, wird jedoch nur ein Bruchteil der Funktionalität benötigt und man verbaut sich durch die Verwendung von Drittanbieter-Software die Möglichkeit von benötigten Modifikationen. Versions-Upgrades werden komplexer, je mehr Abhängigkeiten zu Drittanbieter-Code bestehen.
Coding-Style festlegen
Schnellere Einarbeitung für neue EntwicklungSymfony benutzt einen eigenen Coding-Style, den man auch in seinen eigenen Projekten einhalten sollte. Es existieren für die verbreiteten IDEs, der die Einhaltung des CS überprüft und sogar sicherstellt.
Virtualisierte Entwicklungsumgebung
Schnelle Projektsetups und keine Side-EffectsDank virtuellen Maschinen wird sichergestellt, dass jeder Entwickler die gleiche Umgebung verwendet. Dadurch werden viele Fehlerquellen vermieden und die Einrichtungszeit minimiert. Im Symfony-Bereich gibt es derzeit noch keine optimale Lösung für native Docker-Container ohne VM, aber es wird intensiv daran gearbeitet.
Continuous Integration
Automatisierte DeploymentsContinuous Integration vereinfacht nach kurzer Setup-Phase das Ausrollen von neuen Features enorm. Manuelle Deploys werden nicht mehr notwendig, neue Funktionen, Änderungen und Bugfixes werden in kürzester Zeit in den Live-Betrieb genommen.
Funktionsumfang reduzieren
MVP planenHäufig werden sehr viele Funktionen gewünscht, die "nice-to-have" sind - aber nicht den Hauptnutzen Ihrer Anwendung darstellen. Diese Funktionen sollten aus der ersten Version Ihrer Anwendung komplett entfernt werden - um die Komplexität zu reduzieren und schnell erste Ergebnisse zu erzielen.
Agile Softwareentwicklung
Anforderungs-Analyse
Zunächst klären wir mit Ihnen die Rahmenbedingungen Ihres Projekts: Zeitlicher Rahmen, Projektgröße, technische Anforderungen, Stakeholder und Involvierungsgrad ins Projekt.
MVP
Nachdem diese geklärt sind, wird der MVP geplant: Eine Minimalversion Ihrer Webanwendung, mit einem definierten Funktionsumfang der in kurzer Zeit umgesetzt werden kann.
Produkt-Backlog
Dazu entwickeln wir gemeinsam mit Ihnen Stories die den Kundennutzen erfassen. Falls Sie bereits Ihre Anforderungen definiert haben, helfen Ihnen wir Ihnen bei der Umsetzung Ihres Projekt-Backlogs.
Implementierung
In kurzen Sprints implementieren wir ein Produkt-Feature nach dem anderen. Dabei setzen wir auf Continuous-Integration, sodass Entwicklungen direkt online gehen und genutzt werden können.
Test-getriebene Entwicklung
Durch automatisierte Tests gewährleisten wir Funktionalität Ihrer Anwendung: Bei jeder Änderung werden einzelne Komponenten auf Korrektheit (Unit-Tests) und Ihre Anwendung auf Funktionalität (End-To-End-Tests) geprüft.
Direkte Kommunikation
In kurzen Sprints implementieren wir ein Produkt-Feature nach dem anderen. Dabei setzen wir auf Continuous-Integration, sodass Entwicklungen direkt online gehen und genutzt werden können.
Qualtitätssicherung
Neben den autoamtisierten Tests spielt auch die Qualitätssicherung durch den tatsächlichen Anwender eine entscheidende Rolle: Durch kontinuierlichen Abgleich mit der Erwartungshaltung Ihrer Zielgruppe wird schnell festgestellt, ob die Annahmen zutreffen und der Mehrwert für den Nutzer gegeben ist.
Retrospektive
Nach jedem Sprint wird mit dem Kunden eine Retrospektive durchgeführt: Sind die Erwartungen erfüllt worden, gab es Schwierigkeiten oder unvorhergesehene Probleme die man zukünftig vermeiden kann.
Durch kontinuierliche und direkte Kommunikation können Projekte frühzeitig in die richtigen Bahnen gelenkt werden - gerade wenn die Rahmenbedingungen sich verändern oder nicht optimal sind.
Referenzen
Ihr starker Partner
Software-Entwicklung von LeapHubWenn Standard-Software trotz Anpassungen und Modifikationen Ihre Anforderungen nicht mehr erfüllen kann, entwickelt LeapHub für Sie individuelle Softwarelösungen. Auf Basis moderner Technologie entwickeln wir Ihre Webanwendung, die Ihre Anforderungen exakt abdeckt und in Ihre bestehende IT-Infrastruktur integrierbar ist.
Wir sind auf die Entwicklung von Webanwendungen spezialisiert und bieten unsere Dienstleistung auf breitem Spektrum an: Von der Anforderungsanalyse zum Quality-Testing.
Zu unseren Kunden gehören Unternehmen aus der Telekommunikations-Branche, Finanz- und Versicherungen, öffentliche Institutionen, eCommerce und Marketing.
Jetzt Projekt-Anfrage stellen