Frameworks in bezug auf Projekt größe

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
Manchotix
User
Beiträge: 54
Registriert: Samstag 14. Januar 2012, 19:54

Nabend zusammen,

ich wollte mal so die Frage in denn Raum stellen wie es mit den Frameworks und ihre nutzung / tauglichkeit auf Projekt größen aussieht.

Damit ist gemeint das Flask, Bottle und der gleichen nur für kleine Projekte gedacht ist z.b. nur eine Applikation pro einem Projekt, so wird jedenfalls immer geschrieben und Django, Pylons für sehr umfangreiche Projekte gedacht ist, mit mehreren Applikationen.

Da ich aber mit Bottle unheimlich viel Spaß habe ist mir halt die Frage aufgekommen ob ich für falls ich mal ein großes Projekt mache auch Bottle verwenden kann und wie halt eure Meinung dazu ist.

Größen einschätzung:
Kleines Projekt: Blog oder simple Webseite
Großes Projekt: so in Größe von Bitbucket

mfg Manchotix
- Über Fehler sollte man sich freuen als über das richtige Ergebnis denn wir Menschen können nur aus den Fehlern lernen-
Sirius3
User
Beiträge: 17752
Registriert: Sonntag 21. Oktober 2012, 17:20

Hallo Machotix,
die Frage ist nicht ob klein oder groß, sondern ob ich eine Benutzerverwaltung, Rechtevergabe, Sessions, Datenbankanbindung, Admintools, usw. brauche oder nicht.
Bei großen Projekten ist die Antwort wahrscheinlich immer „ja“ und das haben die großen Frameworks alles schon dabei, während man sich für die kleinen Frameworks sich eigene Lösungen zusammen suchen muß. Bei großen Frameworks wird man von anfang an schon zu einer gewissen Modularisierung gezwungen, bei kleinen nicht, was einem aber früher oder später wieder auf die Füße fällt.
Da das Wechseln eines Frameworks mit viel Arbeit verbunden ist, sollte man sich am Anfang wirklich die Frage stellen, welches für meine Zwecke am sinnvollsten ist. Bei keinem Framework kommt aber irgendwann die Meldung „maximum size exceeded“.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Nur weil man ein großes Projekt hat macht ein großes Framework noch lange nicht Sinn. Gerade Django ist z.B. bekannt dafür dass das ORM nicht ganz so gut ist wie SQLAlchemy oder dass die Template Engine wesentlich langsamer ist als z.B. Jinja2. An solche Problem stösst du bei einem großem Projekt eher als bei einem kleinen, bei einem Framework wie Django wechselst du aber nicht mal einfach das ORM oder die Template Engine, bei kleineren Frameworks wie Flask ist soetwas nicht nur eher möglich sondern solche Flexibilität Teil des Design des Frameworks.

Ich denke dass die Frage des richtigen Frameworks wesentlich mehr von deinen eigenen Fähigkeiten, als vom Projekt selbst abhängt. Als Anfänger ist bei größeren Projekten Django möglicherweise hilfreich weil es viele Entscheidungen für dich trifft, wenn es etwas besser um deine Fähigkeiten steht und du eine genauere Vorstellung davon hast was du haben willst, könnte ein Framework welches dir mehr Entscheidungen überlässt hilfreicher sein.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

DasIch hat geschrieben:Nur weil man ein großes Projekt hat macht ein großes Framework noch lange nicht Sinn. Gerade Django ist z.B. bekannt dafür dass das ORM nicht ganz so gut ist wie SQLAlchemy oder dass die Template Engine wesentlich langsamer ist als z.B. Jinja2. An solche Problem stösst du bei einem großem Projekt eher als bei einem kleinen, bei einem Framework wie Django wechselst du aber nicht mal einfach das ORM oder die Template Engine, bei kleineren Frameworks wie Flask ist soetwas nicht nur eher möglich sondern solche Flexibilität Teil des Design des Frameworks.
Na jetzt ohne zu übertreiben, aber die Template-Engine lässt sich in Django ziemlich ändern. Nicht global, aber für den eigenen Code auf jeden Fall. Das ORM theoretisch auch, so dass man stattdessen SQLAlchemy nutzen kann, nur muss man sich dann vom Admin verabschieden.

Aber wie schon die Vorposter sagten: es gibt keine maximale Seitengröße die nur so oder so realisierbar ist. Ist oftmals eine Frage der Anforderungen. Ich würde jetzt auch nicht auf Teufel-komm-raus versuchen Websockets mit Django zu machen, da gibt es andere Tools die die Aufgabe einfacher lösen. Und genau so sollte man das auswählen: Welches Tool erlaubt mir, die Aufgabe am einfachsten zu lösen?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten