Softwareentwicklung | August 9, 2018

Framework-Kriege

Jeder Mensch ist anders, was sich in der täglichen zwischenmenschlichen Kommunikation zeigt. Diese Unterschiede bilden unsere Persönlichkeit, die groß ist, aber…. wenn wir in einer Gruppe arbeiten, könnten diese Unterschiede unsere Arbeit etwas desorganisiert machen. Wir müssen also den Regeln folgen, die von der Gesellschaft oder von einem bestimmten Team, mit dem wir zusammenarbeiten, erstellt werden. Es gibt etwas Ähnliches in der Programmierung, und es wird Framework genannt.

Framework-Kriege

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.

Frameworks Wars in-text_2

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.

Frameworks Wars in-text_2

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:

PHP-Entwickler bei JCommerce, der sich auf Open-Source- und dedizierte E-Commerce-Lösungen spezialisiert hat. Bei der Arbeit lernt er gerne neue Frameworks und Softwarearchitekturen auf Basis von Cloud Computing besser kennen. Außerhalb der Arbeit ist er ein großer Fan von Open-Source-Lösungen. Seine Freizeit verbringt er mit Familie und Freunden.

Exclusive Content Awaits!

Dive deep into our special resources and insights. Subscribe to our newsletter now and stay ahead of the curve.

Information on the processing of personal data

Exclusive Content Awaits!

Dive deep into our special resources and insights. Subscribe to our newsletter now and stay ahead of the curve.

Information on the processing of personal data

Subscribe to our newsletter to unlock this file

Dive deep into our special resources and insights. Subscribe now and stay ahead of the curve – Exclusive Content Awaits

Information on the processing of personal data

Almost There!

We’ve sent a verification email to your address. Please click on the confirmation link inside to enjoy our latest updates.

If there is no message in your inbox within 5 minutes then also check your *spam* folder.

Already Part of the Crew!

Looks like you’re already subscribed to our newsletter. Stay tuned for the latest updates!

Oops, Something Went Wrong!

We encountered an unexpected error while processing your request. Please try again later or contact our support team for assistance.

    Get notified about new articles

    Be a part of something more than just newsletter

    I hereby agree that Inetum Polska Sp. z o.o. shall process my personal data (hereinafter ‘personal data’), such as: my full name, e-mail address, telephone number and Skype ID/name for commercial purposes.

    I hereby agree that Inetum Polska Sp. z o.o. shall process my personal data (hereinafter ‘personal data’), such as: my full name, e-mail address and telephone number for marketing purposes.

    Read more

    Just one click away!

    We've sent you an email containing a confirmation link. Please open your inbox and finalize your subscription there to receive your e-book copy.

    Note: If you don't see that email in your inbox shortly, check your spam folder.