2009-09-28 2 views
8

Ich habe kürzlich Django für eine sehr kleine CMS-style Website verwendet. Ich war so beeindruckt davon, wie schnell und einfach es war, ein Django-Projekt zu entwickeln. Ich überlege nun, es für ein wesentlich größeres Projekt zu verwenden.Soll Django für große, komplexe Sites verwendet werden?

Bevor ich mich jedoch für die Idee begeistern konnte, wollte ich sie nur von jemandem ausführen lassen, der tatsächlich eine sehr große Django-Website entwickelt hat (mit vielen Funktionen und hohem Traffic).

Ich denke daran, dass ich vor kurzem hauptsächlich C# Asp.Net verwendet habe - Gibt es irgendwelche Fallstricke, die ich wissen sollte?

Antwort

5

Es wird eine Menge auf genau angewiesen, was Sie mit „großen“ und „komplex“.

Soweit "komplex", schauen Sie sich Pinax an. Jede Menge Features, die aus einfachen Django-Apps bestehen, die miteinander verbunden sind, und die immer noch als Framework betrachtet werden, das Sie als Ausgangspunkt für den Aufbau einer Social-Software-Site verwenden würden. Aber ich bin sicher, dass Sie immer noch eine Version von "komplex" finden können, die nicht gut mit Djangos Architektur harmoniert.

Die Handhabung großer Mengen von Datenverkehr und großen Datenmengen ist eine andere Sache. Letztendlich, wenn du groß genug wirst, wird Django nicht damit fertig werden. Aber wirklich, auch wird keine Rahmen. Jacob-Kaplan Moss (einer der Django-Entwickler) hat a great article umreißt die Geschichte der Web-Entwicklung, die dazu führte, wo Django ist. Er spricht ziemlich überzeugend dafür, warum Django oder ein anderes Framework nicht sowohl eine schnelle Entwicklung als auch eine enorme Skalierbarkeit aufweisen kann, aber warum es sich lohnt, mit einem zu beginnen. Im Grunde genommen haben zwei Websites mit hohem Datenverkehr nicht die gleichen Probleme mit der Skalierbarkeit: Sie alle benötigen einen benutzerdefinierten Ansatz, der genau auf die Art der Daten und den Datenverkehr abgestimmt ist, mit denen sie zu tun haben. Aber da es schwer ist, genau vorherzusagen, wo diese Engpässe liegen, ist es eine gute Idee, mit einem schnellen Entwicklungsrahmenwerk zu beginnen und Komponenten zu ersetzen, wenn Sie auf die Notwendigkeit stoßen.

5

Wie erwähnt, kommt es wirklich darauf an, was "groß" und "komplex" eigentlich bedeuten. Wenn Sie planen, ein weiteres eBay zu bauen, lautet die Antwort "wahrscheinlich nicht".

Diese Frage wird gestellt Los. Ehrlich gesagt, gibt es viele Antworten da draußen. This thread ist ziemlich gut. Es gab auch eine sehr gut besuchte Präsentation auf der DjangoCon dieses Jahr unter Scaling Django. Es liegt an Ihnen, Ihre Website so zu gestalten, dass sie unabhängig von der verwendeten Technologie skaliert werden kann.

Meine Antwort wäre: Wenn Ihre Website Django entwachsen wird (oder einen anderen Rahmen, was das betrifft), dann ist es großen Erfolg und Sie werden wahrscheinlich haben genug Kapital ein gigantisches Team zu mieten, um die gesamte neu zu schreiben Ding.