Wie wähle ich ein Web-Framework

21. September 2009 von Alejandro Leave a reply »


Wie kann ich wissen, was ist die beste Web-Framework für mein Projekt?

Heute sind fast alle Entwicklungsprojekte haben ein Web-Interface als Teil des Produkts. Dies ist nicht eine Herausforderung, wenn wir ein Team, das mit solchen Projekten gearbeitet hat, haben. Aber was passiert, wenn der Computer nicht über Erfahrung in der Entwicklung von Webanwendungen?

Zum Beispiel kommt aus dem Unternehmen weltweit, mit langjähriger Erfahrung im System der mittleren und großen Kunden mit Frameworks wie Swing-GUIs gemacht.

Auf den ersten vermutlich unter der Web-Welt denkt, dass alles ein Kinderspiel, das jeder kann, dass durch die Einstellung einer Web-Designer unsere Probleme gelöst werden müssen. Aber natürlich, Sie irren sich, und sobald er die Grundlagen zu studieren begann eine Reihe von Begriffen wie nicht weniger Session-Handling, AJAX, CSS, XSS, SQL-Inyection man verstehen, bevor Sie jedes System können muss.

Sobald wir fertig studiert diese Konzepte und wenden wir uns sicher fühlen zu beginnen ist nur dann, dass unser Problem beginnt. An diesem Punkt ist, wenn die große Frage, was Web-Framework (FW) die, die ich für meine Projekte?

Eine vor einigen Jahren wäre dies ein Problem gewesen, die Antwort wahrscheinlich gewesen wäre, wenn wir in Java arbeiten, mit Streben haben. Aber heute, dass sich verändert, weil nur für Java auf Seite http://java-source.net/open-source/web-frameworks mehr als 40-Frameworks finden können, innerhalb derer die ich benutze ist es nicht. Ganz zu schweigen, wenn wir FW verschiedener Programmiersprachen wie Ruby, Python, PHP und. Net zu betrachten. Wie können wir beantworten diese Frage heute?

Dann werde ich definieren, was IMHO die Faktoren, die ich verwendet, um diese Frage, dass es hilfreich sein, andere in einer ähnlichen Situation beantworten haben. Wir gehen davon aus, dass wir ein Entwicklungsteam mit Know-how in einer bestimmten Sprache, die wir die Entwicklung von Webanwendungen zu konvertieren. Einige der angesprochenen Punkte machen keinen Sinn, zum Beispiel für ein unabhängiger Entwickler oder wenn Sie die Zusammenstellung eines Teams von Grund auf neu. Bei der Arbeit mit einem Team bereits gebildet, um Faktoren zu berücksichtigen, sind nicht direkt abhängig von Technologien, die die beste FW in der Welt, nicht die beste Wahl, die die Lösung des Nachbarn ist nicht immer die richtige Lösung macht bestimmen kann, für einen. Deshalb müssen wir vorsichtig sein mit unseren Kollegen, wenn Sie Ihre besten Absichten wir "FW" empfehlen und sie wissen wahrscheinlich nicht, in welchem ​​Kontext die Sie benutzen. Schließlich sollten wir realistisch sein und wissen, dass wahrscheinlich am Ende des Auswahlverfahrens mehr als eine FW, die verwendet werden können und die Definition wird letztlich eine Frage der Präferenz mit einem Maß an Unsicherheit. Die endgültige Antwort wird erst wissen, nachdem er in der ersten Projektphase fortgeschritten und kann Fehler machen und müssen ihre Entscheidung zu überdenken. Aus diesem Grund ist es wichtig, wie die erste nicht-kritischen Projekt-Erfahrung zu wählen.

Die Punkte dann werde ich nicht benennen einen besonderen Auftrag.

Punkte zu beachten bei der Auswahl eines FW
Kenntnisse über Computer

Es ist kritisch zu beurteilen, wo das Team ist komfortables Arbeiten mit. Das ist, wenn ich alle Java-Programmierer wohl am besten zu einer Java-FW auf diese Weise finden kann das Team schnell lernen, die FW und nicht Zeit damit verschwenden, das Studium der Details einer anderen Sprache. Auf der anderen Seite FW gibt es gute fast allen Sprachen, so dass es kein Problem sein sollte, um dies zu beheben. Die Ausnahme von dieser Regel wäre, wenn wir mit veralteten Sprache wie Cobol oder Clipper arbeiten. Aber hier stehen wir vor einem großen Problem ist eine technologische Modernisierung von Systemen.

Brauchen wir etwas, das nur die Vorlage löst oder müssen auf allen Ebenen zu arbeiten?

Es ist wichtig, in welchem ​​Maße der Freiheit zu bestimmen, wann wir wählen. Das heißt, dies ist ein Fall, in dem wir bewaffnet das System und dass wir nur geben oder Web-Präsentation ist ein Fall, in dem wir von, wie man Formulardaten übermitteln fortbestehen wählen können. Abhängig von diesem stimmen wir zu etwas, das alle unsere Anforderungen Lösungen oder einfach auf das, was wir brauchen, ist die Web-Präsentation zu lösen Fokus verwenden. Basierend auf diesem können wir teilen die FW in zwei Gruppen aufgeteilt und somit nicht von unserem Interesse ausgeschlossen werden. Die Gruppen sind:

Frameworks vollen Stapel

Sind diese mit einer Komplettlösung von der Präsentations-Schicht auf Persistenzschicht von Informationen. Die neueren sind auf dem MVC-Pattern basieren. Einige Beispiele hierfür sind:

  • Rails in Rubin und man könnte sagen, dass ist der Star des Augenblicks
  • Groovy Grails
  • Php CakePHP
  • Spring Roo und Java SEAM
  • Python Django

Itemize jeder ist nicht unsere Absicht, einfach beschränke mich auf zu kommentieren, dass die meisten auf den Grundsätzen der CoC (Konvention über Konfiguration), trocknen lassen (nicht Repeat Yourself) und basieren ihre grundlegende Zusammensetzung besteht aus einem Prozessor für Vorlagen Design-Ansicht (die dynamische Seiten erzeugen), einen Dispatcher, dass nach bestimmten Konventionen HttpRequests entscheidet der Service-Anfrage versenden. So verwalten Sie die Daten ein ORM-Framework, die dynamische Erstellung von Abfragen und eine Reihe von Funktionen, die den Job zu vereinfachen bietet.

Einzelausstellung:

Das sind diejenigen, die nur auf der Präsentations-Schicht ausgerichtet sind.

Beispiele dieser Art sind:

  • GWT-Google Web Tookit, die eine 100% JavaScript erzeugt, aber das ist in Java programmiert
  • JSF: Java Server Faces ist im Rahmen der offiziellen Java-Komponenten
  • ASP.NET: dass die Option innerhalb von Microsoft ist

Support (Gemeinde, Hersteller, Bücher, Zertifizierung, Zukunftsaussichten)

Ein wichtiger Punkt, vor allem in OS-Projekten ist zu sehen, die Community rund um den Rahmen verwendet wird. Es ist wichtig zu untersuchen, ob es eine Firma investieren Ressourcen in der Produktentwicklung oder ist einzig und allein von der Gemeinde vertrieben. Im letzteren Fall ist, wann und in Abhängigkeit von der Größe der Gemeinde, dass es abhängig von der Unterstützung, die wir unterstützt "Grösse zählt". Denn dies ist der beste Rahmen Suchseite berichten, dass viele Bugs gibt es, wie schnell gelöst werden, wie viele Entwickler gibt es zu korrigieren Tickets. Nach dieser Linie gibt es zu sehen, wie oft eine neue Version herauskommt und wenn es Versionen entwickelt, um eine stabile Version oder Versionen zu erzeugen sind nur herauskommen, wenn neue Features. Da wir zu lernen, die Rahmenbedingungen müssen Sie die Qualität der Dokumentation dieser Studie nutzen, um so viele Bücher veröffentlicht zu sehen (zB Amazon) ist zu dem Thema und wenn Sie bieten eine Art von Zertifizierung und / oder Ausbildung.

Existenz von erfolgreichen Projekten

Da unsere Absicht ist, die FW für ein Produkt, das schließlich in die Produktion gehen Einsatz wahrscheinlich nicht wollen, Meerschweinchen werden. Wenn die FW ist ein bisschen ernst, dann sollten Sie auf ihrer Webseite haben, die sich auf Systeme, die mit dieser umgesetzt werden. Keine schlechte Idee, wenn möglich, einen Blick auf diese zu nehmen und sehen, wie gut sie funktionieren. Es wäre toll, in einem Blog eines dieser Projekte, in denen sie diskutieren, die Erfahrungen bei der Systementwicklung zu finden.

Integration mit bestehenden Plattform

Wenn das Projekt ist Teil eines komplexen Ökosystems, dann müssen wir berücksichtigen, die Möglichkeiten der Integration, dass die FW hat und ob diese akzeptabel innerhalb der Architektur unserer Produkte sind. Zum Beispiel, wenn wir mit einem System, JEE wichtig, Einrichtungen zu EJB Dienst aufzurufen etablieren interagieren gibt mir die FW. Natürlich ist es immer möglich, eine Schicht, die für die Interaktion zu entwickeln, aber wenn es nativ unterstützt FW sparen nicht nur Arbeit, sondern sind die Wiederverwendung von etwas, das getestet und ist von anderen Benutzern.

Learning Curve

Der Punkt heute ist irreführend, weil moderne FW eine sehr schnelle Lernkurve haben zunächst aber auf Expertenebene zu erreichen, ist sehr zeitaufwendig wie jede andere Rahmenbedingungen. Wenn wir hinzufügen, daß die meisten FW OS mit der Dokumentation von schlechter Qualität, es gibt wahrscheinlich keine Unterstützung vor Ort und ermöglichen uns viele Meilen (zumindest wenn der Süden wie mich) zu reisen. Das macht die Lernfähigkeit des Gerätes ist ein wichtiger Faktor. In einigen Fällen um ein Problem zu lösen wird notwendig sein, den Quellcode der FW-Studie. Sollten wir das Glück, dass der Haushalt uns an das Team und / oder Support-Vertrag dann zweifle nicht daran, sie zu trainieren. Kopfschmerzen und Zeit kann man es sicher zu gewinnen.

Testen, testen und testen

Zwangsläufig, um zu bestimmen, die FW haben die Allokation von Ressourcen und führen Sie einige Tests vor dem Erreichen einer Schlussfolgerung zulässig und begründet. Es ist nicht notwendig zu beweisen, alle versichert, dass wir mit den Besten zu sein. Wenn wir uns erinnern, dass wir Recht haben auf der Suche nach dem Zusammenhang, dass sollten wir nutzen und insgesamt beste Bewertung. Mit einem guten ersten Analyse sollten wir uns wahrscheinlich nicht versuchen, mehr als zwei oder drei FW. Für den Test werden soweit wie möglich sollten wir wählen ein Projekt zur E-Typ, mit dem wir FW bewerten umsetzen wird ..

Wie vergleichen wir die FW?

Zum Vergleich der FW habe ich ein Tool, das hat mir geholfen, Zeit zu beurteilen hat und kann hilfreich sein, auch für Sie. Das Tool ist eine einfache Tabelle, die die meisten Punkte gemacht widerspiegelt. In dieser Tabelle betrachten wir die FW gibt eine Wertung für jeden Punkt, wo wir eine maximal zulässige und die maximale Summe aller Punkte addieren sich zu 100 haben würde. Durch die Definition von unterschiedlichen maximalen Punkte sind vorrangig für Produkte nach unseren Kontext beurteilt werden. Zum Beispiel, wenn wir in einem Fall, wo haben wir eine Reihe von bestehenden Systemen, mit denen wir interagieren sicherlich die Fähigkeit zur Integration der FW ist einer der wichtigsten Punkte zu bewerten, während, wenn wir nicht mit anderen Systemen zu interagieren, wir Zeit haben Tyrannen und schon bildeten ein Team mit wenig Web-Erfahrung dann die Lernkurve ist ein Wendepunkt in unserer Wahl.

Zur Klärung dieser Stelle wollen wir uns ein Beispiel an:

Max

FW 1

FW 2

FW 3

FW 4

Unterstützung

25

15

10

20

5

Erfolgreiches Projekt

10

5

10

10

0

Integration

50

25

40

35

45

Learning Curve

15

15

10

10

5

Total:

100

60

70

75

55

Die Lesung könnte der obigen Tabelle ist, dass wir mit der FW2 und FW4 zu definieren, welche von diesen beiden ist, dass wir zu testen. Durch die Studie durchgeführt redijimos mindestens die Hälfte der Höhe der FW zu studieren und habe eine Tabelle, nach unserer Wahl rechtfertigt.

Natürlich je mehr Sie weitere Zeilen der Tabelle haben mehr Informationen, um die Entscheidung zu begründen.

Nur für den Fall klargestellt, dass die maximale zugeordnet Beispiele sind und Sie sollten Ihren eigenen entsprechend ihren Bedürfnissen zu definieren.

Zusammenfassend ...

Zusammenfassend bei der Auswahl eines FW folgen müssen drei Schritte:

  1. Zunächst bewerten wir die Kenntnisse über die Ausrüstung und bestimmen, was Sie, wenn Sie FW in voller Stapel oder einzelne Präsentation sein soll.

  2. Sobald wir diese und die Kenntnis der Sprache der Vorliebe für die Teilmenge der FW zu bewerten suchen. Zur Erleichterung der Auswertung einer Form, wie im vorherigen Abschnitt gesehen.

  3. Schließlich mit den besten Platz FW führte die Tests, die mit einem Projekt in jedem der FW umgesetzt fertig sind.

Nach all dem wissen wir, was die FW zu benutzen. Es scheint eine Menge Arbeit, nicht wahr? Wenn sicher ist, aber es ist der einzige Weg, eine Entscheidung zu minimieren das Risiko, Fehler zu machen zu machen ... und wenn die Technologie-Entscheidungen eines Unternehmens hängt von uns ist gut, Werkzeuge haben, um unsere Entscheidungen zu rechtfertigen und insbesondere auf den Erfolg unserer gewährleisten zu arbeiten.

Blogger Beitrag Digg Reddit Google Reader Anteil
Anzeige

Hinterlasse einen Kommentar

Spam Schutz durch WP Captcha-freie