In meiner täglichen Arbeit als PHP-Softwareentwickler verwende ich gerne Frameworks, weil sie das Ergebnis einer Community-Zusammenarbeit sind – so muss ich keine bereits gelösten Probleme lösen und mich auf eine höhere Anwendungsebene konzentrieren. Aber gleichzeitig kann jeder Benutzer, auch ich, Einfluss auf sie nehmen. Für meine Technologie gibt es viele Frameworks auf dem Markt, so dass es nicht schwierig ist, das für das jeweilige Projekt oder die individuellen Präferenzen am besten geeignete auszuwählen. Aber lassen Sie uns einen Blick auf alle Bereiche der Programmierung werfen, in denen Frameworks verwendet werden können.
Die Bereiche, in denen wir Frameworks in der IT einsetzen können, sind:
- Für Compiler verschiedener Programmiersprachen – Programme zur automatischen Übersetzung von in einer Sprache geschriebenem Code in den entsprechenden Code in einer zweiten Sprache.
- Anwendungen für die Finanzmodellierung.
- Anwendungen für die geowissenschaftliche Modellierung.
- Systeme zur Entscheidungsunterstützung – Systeme, die Informationen und Wissen liefern.
- Webanwendungen – Computerprogramme, die auf Servern über Computernetzwerke arbeiten und sich mit den Computern der Benutzer über einen Internetbrowser verbinden.
- Middleware – Software zwischen verschiedenen Anwendungen, Diensten oder Systemen.
Auf dem heutigen Softwaremarkt haben wir viele gebrauchsfertige Lösungen, die größtenteils auf Frameworks basieren, weil sie die Architektur auf einem hohen Grad an Klarheit und Formalisierung halten müssen, damit Softwareentwickler weitere Änderungen vornehmen können. Dies zeichnet sich durch einen hohen Grad an Komplexität aus, aber es lohnt sich, neue Technologien und Lösungen zu erlernen, da sie Ihre Arbeit oder die Ihres Teams beschleunigen können. Betrachten wir es noch ausführlicher und werfen wir einen Blick auf die Liste der Vor- und Nachteile von Frameworks.
Vor- und Nachteile von Frameworks
Vorteile:
- Effizienz – Die Erstellung von Anwendungen mit Frameworks erfordert, dass der Softwareentwickler weniger Code schreibt.
- Verbesserte Codequalität – weil Frameworks so konzipiert sind, dass sie flexibel sind, eine gute interne Logik haben und der erstellten Anwendung die gleiche Logik auferlegen.
- Zuverlässigkeit – Frameworks wie Application Skeletons werden gut projiziert und getestet.
Nachteile:
- Komplexität – Der Lernprozess von Frameworks ist aufgrund der flexiblen und fortgeschrittenen Nutzung schwierig.
- Leistung – anstelle der flexiblen Konstruktion der erstellten Software erhalten wir oft ein geringeres Leistungsniveau (an dieser Stelle muss ich Cachesysteme erwähnen, die die Leistung von Frameworks in einem großen Prozentsatz der Serverantworten verbessern können).
Wie wir sehen können, haben wir mehr Vor- als Nachteile, was meiner Meinung nach der größte Vorteil von Frameworks ist. Wir müssen uns jedoch bewusst sein, dass Frameworks nicht immer die beste Lösung sind. Wenn wir beispielsweise eine Anwendung erstellen müssen, um eine einzelne Nachricht auf dem Bildschirm als Serverantwort anzuzeigen, wird die Verwendung von Frameworks die Serverantwort und die Ausführung unserer Anwendung verlangsamen. Eine solche Anwendung benötigt nur einen Befehl zur Ausführung und es sind keine zusätzlichen Werkzeuge erforderlich.
Wie kann man Frameworks richtig nutzen?
Natürlich würde ich nicht sagen, dass Frameworks alle unsere Probleme mit Software lösen können, aber sie können uns sicherlich bei unseren täglichen Aufgaben helfen. Auf der anderen Seite müssen wir hier vorsichtig sein. Zu oft habe ich Kämpfe in Community-Foren gesehen, die einem bestimmten Framework gewidmet sind, in denen die Leute versuchen zu beweisen, dass das Framework, das sie gewählt haben, das beste ist.
Ich glaube, dass Frameworks wie Tools sind – je mehr Tools man hat, desto mehr Probleme kann man lösen. Wenn du nur einen Hammer hast, kannst du wahrscheinlich nur einen Nagel schlagen. Aber wenn du einen Schuppen voller Werkzeuge hast, kannst du tun, was immer du willst.
Multi-Framework-Ansatz
Unterstützt wird dieser Ansatz durch die Architektur der heutigen Anwendungen, die aus Paketen aufgebaut sind – trennbaren Modulen mit eigenen Anforderungen, mit denen wir jede Art von Anwendung erstellen können. Auf diese Weise kann die Anwendung in kleinere Teile aufgeteilt werden und ist für mehr Menschen leichter zu verstehen. Pakete organisieren auch die Struktur der Anwendungen und helfen bei der Entwicklung größerer Projekte.
Nach dieser Idee können wir Pakete als eigenständige Software verwenden und diese zum Erstellen unserer Anwendung installieren. Es gibt kein Hindernis für die Verwendung von Frameworks in gleicher Weise – jeder Teil unserer Anwendung kann auf einem anderen Framework aufgebaut werden. Warum? Wenn wir Bibliotheken verwenden, die für nur ein Framework erstellt wurden, sind wir nicht in der Lage, Software zu verwenden, die für andere Frameworks erstellt wurde. Zusammenfassend lässt sich sagen, dass wir den Ansatz verfolgen sollten, der es uns ermöglicht, offen für andere Möglichkeiten zu bleiben: den Multi-Framework-Ansatz.
Der Multi-Framework-Ansatz zeigt sich in beliebten Lösungen wie Magento (E-Commerce-Plattform), Sylius (E-Commerce-Plattform) oder E-Commerce-Shop der nächsten Generation, der sich Shopware nennt, es gibt nicht nur eine E-Commerce-Anwendung – wo wir sie sehen können, auch bei beliebten
und hochflexiblen CMS-Frameworks wie Sulu. Wenn Sie den Quellcode dieser Anwendungen auf GitHub überprüfen, werden Sie feststellen, dass die Autoren Pakete aus den Zend & Symfony-Frameworks verwendet haben – diese Pakete sind in der PHP-Technologie über einen composer-Dienst verwaltbar. Die Proportionen sind auf den ersten Blick nicht riesig, aber wir können anfangen, dies als eine Multi-Framework-Anwendung zu betrachten und behandeln ist als eine bewusste architektonische Entscheidung.
Haben Sie diesen Artikel interessant gefunden? Lesen Sie mehr in der Kategorie Technologie: