15 Wichtige Hinweise zur Auswahl eines Web Dev Framework

Neue Webentwicklungs-Frameworks entwickeln sich schneller als jeder andere mithalten könnte. In diesem Artikel legen wir fest, wie Sie ein Framework zum Erstellen Ihrer nächsten, heißen Webanwendung festlegen.

In der heutigen Zeit ist es wichtig, eine fertige, polierte Anwendung herauszuschieben, bevor der Mitbewerber es tut. Wenn Sie alles von Grund auf neu codieren, auch nur die profanen Dinge, kann dies extrem zeitaufwändig sein und den Entwickler dazu bringen, das Rad neu zu erfinden, Zeit, die eher mit der Implementierung neuer Funktionen oder der Verschärfung der Codebasis verbracht werden muss. Hier kommen Web-Entwicklungsframeworks ins Spiel. Sie decken häufig alle üblichen Aspekte einer Anwendung ab, einschließlich Datenbankzugriff, Authentifizierung, Sitzungsverwaltung und vieles mehr.

Heute werden wir einen Blick auf die verschiedenen Aspekte werfen, die Sie berücksichtigen sollten, bevor Sie einen Rahmen auswählen. Interessiert? Lass uns gleich loslegen!

1. Nutzungskontext

Bevor Sie sich überhaupt mit einem Framework beschäftigen, müssen Sie eine Liste Ihrer Anforderungen erstellen und feststellen, ob ein Framework für diesen Zweck geeignet ist.

Sie benötigen einen Rahmen, wenn:

  • Ihre Anwendung basiert hauptsächlich auf CRUD-Vorgängen
  • Sie benötigen eine ordnungsgemäße Trennung der Benutzeroberfläche und der zugrunde liegenden Logik, haben jedoch keine Zeit, ein ordnungsgemäßes System zu implementieren
  • Sie verfügen über eine selbst erstellte Bibliothek, die Sie in jeder Ihrer Anwendungen verwenden und die Benutzerauthentifizierung, Sitzungen und andere übliche Vorgänge beim Erstellen einer Webanwendung abdecken
  • Sie haben einen Chef, der möchte, dass Sie in 2 Tagen ein CMS für sie erstellen, und Sie kennen das Framework bereits

Sie benötigen KEINEN Rahmen, wenn:

  • Sie möchten ein hübsches URL-System alleine
  • Sie möchten nur einen bestimmten Teil des Frameworks wie seinen ORM
  • Sie befinden sich auf einem engen Zeitplan und müssen das Framework von Grund auf lernen
  • Ihnen wurde gesagt, dass Rahmenwerke Krebs heilen

2. Lizenz

Bevor Sie mit der Entwicklung eines Frameworks beginnen, sehen Sie unter welcher Lizenz das Framework verteilt wird. Die meisten Lizenzen sind zwar ziemlich liberal zum Arbeiten und lassen Sie kommerzielle Anwendungen erstellen, einige davon sind jedoch nicht so großzügig. Das letzte, was Sie möchten, ist, eine vollständige Anwendung zu erstellen, um herauszufinden, dass die Lizenz es Ihnen nicht erlaubt, sie kommerziell zu vertreiben. Besser deine Forschung als vorher zu leiden.

Beachten Sie, dass dies nicht nur auf das Framework beschränkt ist. Das Plugin oder die Erweiterung, die Sie für die zusätzliche Funktionalität verwendet haben, kann eine versteckte Klausel enthalten. Überprüfen Sie auch die Lizenz!

3. Softwaremuster


Aus dem Symfony-Projekt

Nahezu jedes Framework verwendet ausschließlich das MVC-Pattern. MVC (Model-View-Controller) hilft Ihnen dabei, Ihre Daten zu erhalten: das Modell, die Logik: die Steuerung und die Benutzeroberfläche: die Ansicht, getrennt von einander. Auf diese Weise können Sie besseren, strafferen Code schreiben, der letztendlich zu besseren Anwendungen führt.

Nur weil fast jeder MVC verwendet, heißt das noch lange nicht alles, was Sie wissen müssen. Es gibt verschiedene Varianten, einschließlich MVP: Model-View-Presenter, MVA: Model-View-Adapter und AVC: Application-View-Controller.

4. Hosting-Anforderungen

Als Webentwickler neigen wir vielleicht dazu, Anwendungen auf hochmodernen Plattformen zu erstellen, aber oft stehen der Bedarf und das Budget des Kunden an erster Stelle. Oft ist es nicht das Budget, einen dedizierten Host für die Platzierung unserer Anwendungen zu gewinnen, und wir müssen uns auf Shared Hosting mit normalen Modulen und Einstellungen einigen.

Zu den Frameworks, die bei Shared Hosting eine gute Rolle spielen, gehören:

  • CodeIgniter
  • CakePHP
  • Kohana
  • Zend Framework
  • Die meisten anderen PHP-Frameworks

Frameworks, für die relativ nicht traditionelle Setups erforderlich sind:

  • Ruby on Rails
  • Django
  • Pylonen
  • Die meisten Nicht-PHP-Frameworks

Um ehrlich zu sein, können Sie trotzdem Frameworks wie Django von einem "off-shelf" -Server ausführen. Es ist lediglich erforderlich, dass auf dem Server das erforderliche Modul installiert ist. Möglicherweise können Sie es von CGI aus ausführen, aber es wird viel langsamer sein, als es nativ auszuführen.

5. Einfache Installation

Die einfache Installation spielt bei der Auswahl eines Frameworks eine sehr wichtige Rolle. Ein Framework, auch wenn es sich dabei um ein beliebiges Feature handelt, kann sehr problematisch sein, wenn mehrere Schritte durchlaufen werden müssen, damit es installiert und funktionsfähig ist.

Dies stellt auch ein großes Problem dar, sobald die Anwendung fertiggestellt und getestet ist und auf dem Produktionsserver bereitgestellt werden muss. Ein Framework mit einfacher Installation und ebenso einfacher Bereitstellung bringt hier Brownie-Punkte.

Für viele der Frameworks ist das Einrichten so einfach wie das Einstellen der richtigen Werte in der Konfigurationsdatei, während es für andere eine sehr zeitaufwändige, komplizierte Angelegenheit sein kann. Wählen Sie ein Framework, mit dem Sie so schnell wie möglich loslegen können.

6. Lernkurve

Jedes Framework hat sein eigenes kleines Universum: Namenskonventionen, Verzeichnisstruktur und was nicht. Einige Frameworks sind recht flexibel, während andere sehr, sehr strenge Fehler bei kleinsten Fehlern aufwerfen. Einige Frameworks folgen den allgemeinen Konventionen, während sie ein Feature implementieren, während andere möglicherweise ihre eigenen Aktionen ausführen. Denken Sie bei der Auswahl eines Rahmens daran, einen Rahmen mit der kleinsten möglichen Lernkurve zu wählen.

Wenn Sie die Sprache nicht kennen, in der das Framework geschrieben ist, notieren Sie die Sprache selbst in die Lernkurve. Ich habe eine Reihe von Entwicklern gesehen, die von CakePHP zu Django sprangen und kämpfen, da sie sowohl Python als auch Django gleichzeitig lernen müssen. Wenn Sie sowohl den Rahmen als auch die Sprache lernen müssen, in der er geschrieben wurde, gehen Sie auf Schritt und Tritt!

7. Kernbibliothek

Seien wir ehrlich; Für die Kernbibliothek übernehmen die meisten Leute einen Rahmen. Die Bibliothek muss so beschaffen sein, dass Sie sich vom Schreiben von sich wiederholendem Code befreien, aber Sie können trotzdem damit basteln, wenn Sie mehr Kontrolle oder Funktionen benötigen.

Die meisten Frameworks bieten Bibliotheken an, die fast alle der folgenden Listen abdecken:

  • AJAX
  • Authentifizierung
  • Genehmigung
  • Caching
  • Datenbereinigung
  • Datenvalidierung
  • Templating
  • URL-Zuordnung oder Umschreiben

Natürlich braucht nicht jeder ein Framework mit vielen Funktionen. Viele Leute bevorzugen Frameworks, um das Nötigste zu handhaben, während der Entwickler den Rest erledigen lässt. In diesen Fällen müssen Sie sicherstellen, dass das betreffende Framework nur die Funktionen enthält, die Sie benötigen.

Ein aktueller Trend unter den Frameworks ist, dass sie als Bibliothek von Bibliotheken erstellt werden. Mit anderen Worten, Sie können Teile der Bibliothek durch einen anderen Teil Ihrer Wahl austauschen. Ein hervorragendes Beispiel dafür wären Pylonen. Sie können fast alle Teile vom ORM bis hin zur Templatesprache wechseln. Menschen wie diese locker gekoppelten Gerüste mögen genauso wie die Gerüste, die in Bezug auf ihre Kernkomponenten eng miteinander verbunden sind.

8. DB Abstraction und ORM

Nahezu jede Anwendung muss auf eine Datenbank zugreifen, um Daten auszulesen oder deren Inhalt zu bearbeiten. In beiden Fällen müssen Sie dies auf die gesamte Länge der Anwendung tun. In diesem Zusammenhang können Sie in den meisten Frameworks eine Datenbankzugriffsklasse verwenden, die Sie verwenden können. Wählen Sie also bei der Auswahl einer Anwendung eine aus, durch die Ihre Anwendung datenbankunabhängig wird. Sie müssen sich nie um den Datenbank-Teil kümmern, wenn Sie die Datenbanken austauschen müssen, wenn dies von Ihrem Framework übernommen wird.

Der zweite Teil, über den Sie nachdenken müssen, sind die ORM-Funktionen des Frameworks. Mit ORM oder Object Relational Mapping können Sie Daten als Objekt ausdrücken und sehen, wie sie sich auf andere Objekte beziehen. Stellen Sie sich eine Objektdatenbank vor, aus der Sie Informationen abrufen können, wenn Sie möchten.

Zu den Frameworks mit ORM-Funktionen gehören CakePHP, Django und Ruby. Mit Frameworks wie Pylons können Sie Ihren ORM Ihrer Wahl verwenden.

9. Enthaltene JS Library

Ein weiterer Konfliktpunkt ist die mitgelieferte JavaScript-Bibliothek. Während in den meisten Bibliotheken Sie die Bibliothek problemlos austauschen können, richten sich die AJAX-Methoden innerhalb des Frameworks meist immer noch auf eine bestimmte JS-Bibliothek. Dies bedeutet implizit, dass Sie die Funktionalität selbst manuell schreiben müssen. Auf der anderen Seite gibt es Frameworks mit bibliotheksunabhängigen Methoden, mit denen Sie die JavaScript-Bibliothek mit wenig oder gar keinem Aufwand austauschen können.

Als Referenz werden CakePHP und Ruby on Rails standardmäßig mit Prototype und Scriptaculous ausgeliefert.

10. Stückprüfung

Ich bin einer der Entwickler, die auf Unit-Tests schwören. Wikipedia definiert Unit-Tests als:

Unit Testing ist eine Software-Verifizierungs- und Validierungsmethode, bei der ein Programmierer prüft, ob einzelne Einheiten des Quellcodes für die Verwendung geeignet sind. Eine Einheit ist der kleinste überprüfbare Teil einer Anwendung.

Frameworks, mit denen ich Unit-Tests schreiben kann, sind in diesem Fall ein definitives Plus. In einer Reihe von Frameworks, darunter Code Igniter, CakePHP und Zend, können Sie zusätzlich zu den Kerntests benutzerdefinierte Tests erstellen, um die kritischen Teile Ihrer Anwendung zu überprüfen.

11. Skalieren

Der durchschnittliche Webentwickler muss sich nicht um die Skalierbarkeit eines Frameworks kümmern. Wie oft ist die E / A- und Netzwerklatenz das Problem und nicht die Skalierbarkeit eines Frameworks. Sogar das mythische Skalierbarkeitsproblem von Twitter war nicht die Schuld des fraglichen Frameworks.

Wenn jemand Sie bittet, ein Framework zu entlassen, das darauf hinweist Skalierungsprobleme, ignorieren sie. Das Framework ist selten der Grund für das Skalierungsproblem. Sicher, Sie könnten den Code ein wenig optimieren, aber die Hauptlast des Skalierungsproblems liegt woanders.

12. Dokumentation

Die Dokumentation eines Frameworks ist oft der Schlüssel zum Erfolg. Gut erklärt, zieht eine ausführliche Dokumentation die Power User und Evangelisten an, die dann mehr Leute einbringen. Mit schlampigen, verwirrenden Dokumenten werden die Leute verwirrt und verärgert davonlaufen.

Suchen Sie nach einem Framework, das eine umfassende Dokumentation mit vielen Beispielen, Snippets, Beispielcode, Artikeln und Lernprogrammen enthält. Screencasts wie Jeffrey's sind ein besonderes Plus, da Sie hier mitreißen können.

13. Die Gemeinschaft

Selbst wenn die Dokumentation ordnungsgemäß ist, werden Sie unweigerlich auf Fehler stoßen, um diese zu beheben. Sie müssen die Community hinter dem Framework um Hilfe bitten. Ich habe persönlich mit Gemeinschaften gesprochen, die Programmierer, die neu in diesem Rahmen waren, heftig angegriffen und verhöhnt haben, während ich gesehen habe, wie Gemeinschaften Neulinge fröhlich willkommen heißen und ihnen die Tricks des Handels beibringen. Ich denke, es ist nicht nötig zu sagen, welchen Rahmen ich am Ende gewählt habe und an dem ich permanent gearbeitet habe.

Wie oft ist es der Fall, dass die Gemeinschaften hinter einem Rahmen den Rahmen bilden oder brechen. Zu snobby und Sie werden den Rahmen statt der Leute ärgern. Gutmütig und du wirst zum Gerüst hingezogen. Wählen Sie ein Framework aus, das über eine freundliche Community verfügt, die Entwicklern hilft, die Plattform neu zu gestalten.

14. Fehlerkorrekturen / Updates

Einer der Gründe, warum Webentwickler die Erstellung eigener Frameworks scheuen, ist die Tatsache, dass sie alleine für die Behebung der Fehler und Updates zuständig sind. Mit einem großen Rahmen haben Sie buchstäblich Tausende Programmierer, die den Code durchforsten und ihn täglich auf Herz und Nieren prüfen. Fehler werden, sobald sie gefunden wurden, so schnell wie möglich nach deren Entdeckung gequetscht.

Wählen Sie einen Rahmen, der nicht stagniert. Sie möchten nicht, dass ein Hacker Ihnen mitteilt, dass eine Sicherheitslücke im Framework besteht, und zwar durch eine Seite, die er auf Ihrer Website gehackt hat. Sie möchten das lieber von den Framework-Entwicklern hören, hoffentlich mit einem Link zu einem Patch für das Problem. Wählen Sie ein Framework, das häufig aktualisiert wird, ist offen über die gefundenen Fehler und behebt die Fehler, auf die die Benutzer so schnell wie möglich stoßen.

15. Einfache Erstellung einer Erweiterung und Verfügbarkeit

Während ein Framework alle wichtigen Grundlagen einer Anwendung abdeckt, besteht die Chance, dass Sie dennoch eine Menge Code schreiben müssen. Machen Sie es generisch genug, und Sie können es in eine Komponente wiederverwenden, die sich für die Wiederverwendung in Ihren anderen Anwendungen eignet, oder noch besser für die breite Öffentlichkeit freigeben, damit sie es in ihren Anwendungen verwenden kann.

Wählen Sie ein Framework aus, mit dem Sie das Framework einfach und mit minimalem Aufwand erweitern können. Mit CakePHP zum Beispiel wird die Erweiterung eines Controllers von erledigt Komponenten und Ansichten von Helfer. In beiden Fällen ist das Erstellen einer Erweiterung so einfach wie das Definieren einer neuen Klasse, die von einer übergeordneten Basisklasse erbt.

Berücksichtigen Sie bei der Auswahl eines Frameworks auch die Verfügbarkeit von Plugins. Häufig haben Sie nicht die Zeit, eine benutzerdefinierte Erweiterung von Grund auf zu erstellen. Die Auswahl eines riesigen Pools an Erweiterungen erleichtert dieses Problem erheblich. Wählen Sie nicht die Anzahl der Erweiterungen, sondern die Qualität der Erweiterungen.

Fazit

Und wir sind fertig! Wir haben uns alle Aspekte angesehen, die Sie berücksichtigen sollten, bevor Sie ein Webentwicklungs-Framework wählen. Wir haben uns alles angesehen, von der Abbildung, ob es für unsere Zwecke geeignet wäre, bis hin zu Fehlerbehebungen und Updates. Hoffentlich war das für Sie nützlich und Sie fanden es interessant.

Fragen? Schöne Dinge zu sagen? Kritikpunkte Schlagen Sie den Kommentarbereich an und hinterlassen Sie einen Kommentar. Glückliche Kodierung!

  • Folgen Sie uns auf Twitter oder abonnieren Sie den Nettuts + RSS-Feed für die besten Webentwicklungs-Tutorials im Web.