Frage

Es gibt viele Web-Anwendungs-Frameworks diese Tage zur Verfügung, für so ziemlich jede Sprache gibt, . Ihrer Erfahrung nach, was sind ihre Stärken, Schwächen und einzigartigen Eigenschaften? Unter der Annahme, den Luxus der Wahl, welche Faktoren würden Sie führen eine andere andere betrachten über?

Ich bin am meisten interessiert direkte Erfahrung der Menschen mit einem oder mehreren Gerüsten, und nicht als erschöpfendem Vergleich von allem da draußen. Hoffentlich wird die SO-Community hat Programmierer, die haben gute und schlechte Erfahrungen mit Dingen wie Rails , ASP.NET , Django , Turbogears oder JSF . Es wäre auch toll zu hören, wenn jemand eine des wenigen Mainstream-Frameworks wie Meer oder Weblocks .

Programmiersprache ist eine offensichtliche Unterschied, aber ein Java vs Ruby-Flamewar wird nicht viel Spaß machen, und die meisten dieser Rahmenbedingungen scheinen zumindest so viel eine Investition in Technologie, Tools und Komplexität der Sprache ihrer Wahl zu sein; so ich bin mehr daran interessiert, Dinge wie:

  • Entwicklung Geschwindigkeit und Komfort
  • Zutrittsschranken - sowohl in Bezug auf Entwickler Ausbildung und der Infrastruktur erforderlich
  • Lock-in-- wie viel Code könnten Sie halten, wenn Sie Frameworks wechseln hatte
  • Flexibilität - ist der Rahmen diktieren Ihre Architektur oder Design? (Ob das wäre eine gute oder eine schlechte Sache sein, ist wahrscheinlich am besten links in eine separate Diskussion.)
  • Performance, Skalierbarkeit und Stabilität - offensichtlich auf die Entwickler je
War es hilfreich?

Lösung

Ich werde kurz jeden Bereich Adresse für drei populäre Python-Frameworks. Dies ist nur auf der Grundlage meiner persönlichen Erfahrungen und Beobachtungen.

Entwicklungsgeschwindigkeit und Komfort

Turbogears , Pylone und Django , ist die Entwicklungsgeschwindigkeit in etwa gleich. Als modernen Frameworks ist es einfach an einem neuen Standort zu beginnen und starten Sie werfen zusammen Seiten. Python ist bekanntlich schnell und debuggen zu entwickeln, und ich würde eine kürzere Entwicklungszeit als jede andere Einrichtung jeden Python-Framework setzen habe ich mit (einschließlich PHP, Perl, Perl und C # / ASP.Net) gearbeitet habe.

Zutrittsschranken - Entwickler Ausbildung und Infrastruktur

Wenn Sie Python kennen und bereit sind, eine 20 Minuten Video-Tutorial zu sehen, Sie eine ziemlich vollständige wiki-Typ Website von Grund auf neu erstellen können. Oder Sie können eine rel="noreferrer"> (einschließlich Installation ). Dies sind Beispiele, aber Turbogears die beide anderen Frameworks nahezu identisch Tutorials als auch.

Der Test / Entwicklungs-Infrastruktur, die mit diesem Frameworks aus der Box kommt in der Regel genug, um die meisten Websites zu vervollständigen. An jedem Punkt können Sie Komponenten auslagern Produktionsumgebung Anforderungen gerecht zu werden. Zum Beispiel ist SQLite fein für den Aufbau Ihrer Modelle und Laden von Testdaten, aber Sie wollen MySQL installieren (zum Beispiel), bevor sie veröffentlicht werden oder die Speicherung großer Datenmengen.

In allen Fällen sind die Anforderungen sehr gering und diktierten vollständig durch Ihre Skalierbarkeit Anforderungen und nicht irgendwelche Besonderheiten des Rahmens. Wenn Sie komfortabel mit einer bestimmten Template-Sprache oder ORM sind, wird es wahrscheinlich Stecker richtig in.

Lock-in-

Dies ist eine verallgemeinerte Problem in allen Frameworks. Wenn Sie eine Sprache auswählen, begrenzen Sie Ihre Code-Wiederverwendung Optionen. Wenn Sie eine Templater auswählen, werden Sie wieder verriegelt (obwohl das einfacher ist, in der Regel zu ändern, als andere Dinge). Das gleiche gilt für Ihre ORM, die Datenbank und so weiter. Es gibt nichts, diese Frameworks speziell tun, dass helfen oder Lock-in behindern.

Flexibilität

Es ist alles mit diesen drei Frameworks über MVC. Wie Sie gesagt haben, das ist eine ganz andere Diskussion!

Performance, Skalierbarkeit und Stabilität

Nun, wenn Sie guten Code zu schreiben, Ihre Website wird eine gute Leistung! Auch dies ist ein Problem für alle von und ist wahrscheinlich weit außerhalb der Anwendungsbereich dieser Antwort.

Andere Tipps

Django vs Struts.

Entwicklungsgeschwindigkeit und Komfort.

Django - und läuft in der Zeit erforderlich, um das Modell zu bauen (in Python), definieren Sie die Admin-Mappings (2-3 Zeilen Code pro Modellklasse) und HTML-Templates erstellen mit den Standard-Master-Detailansichten zu arbeiten.

Struts - hat eine Datenbank in SQL zu definieren, dann ORM-Zuordnungen in iBatis definieren. Dann definieren, zu testen und verschiedene Anwendungskomponenten bauen, Action-Klasse und JSP-Vorlage Seiten. Oh, und ich brauche EJBs zu definieren Daten von Anwendung zu JSP bewegen. Es ist alles bekam zu kompilieren und ich habe durch zahlreiche Details zu arbeiten, nur um etwas zu bekommen, das die Kompilierung Regeln paßt.

Zutrittsschranken - sowohl in Bezug auf Entwickler Ausbildung und der Infrastruktur erforderlich

Konstante über alle Frameworks und Sprachen. Das ist so ziemlich ein tun Element nicht. Keine Sprache oder Rahmen ist von Natur aus leicht zu trainieren. Alle Web-Frameworks haben ähnliche Anforderungen an die Infrastruktur.

Lock-in- - wie viel Code könnten Sie halten, wenn Sie Frameworks wechseln mussten

Das ist nicht viel Sinn machen. Wenn Sie von Tomcat zu einem der Tomcat-Derivate wechseln, können Sie eine Menge von Java-Code erhalten. Andernfalls Sie im Allgemeinen nicht viel Code erhalten, wenn Sie Rahmen wechseln.

Flexibilität - ist der Rahmen diktiert Ihre Architektur oder Design? (Ob das eine gute oder eine schlechte Sache sein würde, ist wahrscheinlich am besten links in eine separate Diskussion.)

Eigentlich, das ist nicht eine separate Diskussion. Das ist der Punkt. Frameworks diktieren Ihre Architektur - und das ist eine gute Sache. Tatsächlich ist die Framework-Code Sie nicht schreiben, testen, debuggen oder Support. Es ist eine gute Sache, dass die Anwendung von Rahmen auf eine bewährte, tragfähige Struktur beschränkt ist.

Performance, Skalierbarkeit und Stabilität - offensichtlich auf die Entwickler je

Die Leistung ist die Sprache (nicht-Framework). Es ist Design. In einem Ausmaß, seine auch Implementierung Konfiguration.

Die Skalierbarkeit ist Framework (nicht Sprache). Es ist Design und Konfiguration.

Die Stabilität ist auf der ganzen Linie: Betriebssystem, Sprache, Rahmen, Design, Programmierung, QA und Implementierung Konfiguration

.

Dies ist eine unglaublich subjektive Frage .. und das ist ein Tag, Sie sollen Ihre Frage hinzufügen. Da mehrere Kommentare bereits vorgeschlagen haben, haben angegeben Sie bereits eine ziemlich gute Führung; was fragst du eigentlich? Es gibt eine Milliarde Meinungen über diese Art der Sache und auf jeden Fall keine richtige Antwort!

Persönlich, begann ich mit .html, auf php bewegt, versucht Rubin (es hasste), entdeckt Python / Django .. und haben seitdem glücklich. Das ist ein sehr einzigartiger Weg, obwohl zu nehmen (vermutlich) so Ihre Ergebnisse können variieren:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top